জটিল ফিউরিয়ার রূপান্তর গণনা জটিলতা?


18

এন পূর্ণসংখ্যার কোনও ভেক্টরের মানক বিচ্ছিন্ন ফুরিয়ার রূপান্তরকরণের জটিলতা (স্ট্যান্ডার্ড ইন্টিজার র‌্যামে) কী?n

দ্রুত ফুরিয়ার রূপান্তরগুলির জন্য ধ্রুপদী অ্যালগরিদম , কুলি এবং টুকির সাথে অনুপযুক্ত [1] হিসাবে চিহ্নিত করা হয় সাধারণত O(nlogn) সময়ে চলমান হিসাবে বর্ণনা করা হয় । তবে এই অ্যালগরিদমে কার্যকর করা বেশিরভাগ গাণিতিক ক্রিয়াকলাপগুলি unityক্যের জটিল n তম শিকড় দিয়ে শুরু হয় , যা (বেশিরভাগ n ) অযৌক্তিক, তাই স্থির সময়ে সঠিক মূল্যায়ন যুক্তিসঙ্গত নয় is একই সমস্যা উদ্ভট O(n2) -কালীন অ্যালগরিদম (unityক্যের জটিল শিকড়গুলির ভ্যান্ডারমনড ম্যাট্রিক্স দ্বারা গুণক ) নিয়ে উত্থিত হয় ।

এমনকি ডিএফটি-র আউটপুটকে কীভাবে উপস্থাপন করা যায় তা কোনও স্পষ্ট নয় (কোনও কার্যকর আকারে)। অন্য কথায়, এটি পরিষ্কার নয় যে ডিএফটি গণনা করা আসলেই সম্ভব!

সুতরাং ধরুন আমাদের প্রতিটি আউটপুট মানেই নির্ভুলতার b বিট প্রয়োজন need এন এবং বি এর ফাংশন হিসাবে আলাদা ফুরিয়ার রূপান্তর গণনা করার জটিলতা কী ? nb (সংক্ষিপ্ততার জন্য, 2 এরn শক্তি বলে নির্দ্বিধায় মনে করুন ))2

নাকি সাহিত্যে "এফএফটি" এর প্রতিটি উদাহরণের অর্থ "দ্রুত সংখ্যা-তাত্ত্বিক রূপান্তর "? [2]

গাউসীয় নির্মূলকরণ এবং ইউক্লিডিয়ান সবচেয়ে সংক্ষিপ্ত পথগুলির জটিলতায় আমার সম্পর্কিত প্রশ্নগুলি দেখুন ।

[1] এটিকে সত্যিই বলা উচিত (এর কিছু উপসর্গ) গাউস-রঞ্জে-কনিগ-ইয়েটস-স্টাম্পফ-ড্যানিয়েলসন-লানকসোস-কুলি-টুকি অ্যালগোরিদম।

[2] এবং যদি তাই হয় তবে বেশিরভাগ পাঠ্যপুস্তকগুলি কেবল জটিল সংখ্যার অ্যালগোরিদমকেই বর্ণনা করে?


1
আমি মনে করি এটিই তাঁর বক্তব্য: তাত্ত্বিকভাবে আপনাকে সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই b, তবে কোনও বাস্তব বাস্তবায়নের ক্ষেত্রে আপনাকে এটি এবং ত্রুটিটি যা হতে পারে তা নিয়ে চিন্তা করতে হবে।
সুরেশ ভেঙ্কট

1
প্রকৃতপক্ষে এটি একটি ভাল প্রশ্ন প্রতিটি অতিরিক্ত বিট সংকেত শক্তিতে 3dB করে ( দ্বারা গুণিত 2)। তাই আমি মনে করি মধ্যবর্তী শব্দের আকারগুলি যদি প্রসারিত করা যায় তবে প্রশ্নটি সবচেয়ে কার্যকর হবে!
বনাম

3
গণনাযোগ্য বিশ্লেষণ এটি এবং সম্পর্কিত প্রশ্নগুলি বিবেচনা করেছে। এই কাগজটি ওয়াইরুচের ধরণ II কার্যকারিতার কাঠামোর মধ্যে ফুরিয়ার রূপান্তরকরণের জন্য আবদ্ধ একটি জটিলতা তৈরি করে। সীমাবদ্ধ এটি হ'ল এটি (অসীম, বাস্তব-মূল্যবান) ইনপুট উপস্থাপনে লিনিয়ার। ইনপুট এবং আউটপুট উভয়ই এই সিস্টেমে সংক্ষিপ্ত নির্ভুলতা পরামিতিগুলি সংজ্ঞায়িত করা হয়েছে, সুতরাং এটি র্যাম মডেলের মধ্যে অনুবাদ করার কোনও উপায় থাকতে পারে।
অ্যারন স্টার্লিং

3
পূর্ণসংখ্যার গুণমান সম্পর্কিত স্নেহেজ এবং স্ট্র্যাসেনের কাগজে মেথড এটি দেখুন। এটি আবদ্ধ নির্ভুলতার সাথে জটিল ফুরিয়ার ট্রান্সফর্ম ব্যবহার করে। আমি মনে করি, এটি নথ ভলওয়ে বর্ণিত হয়েছে। 2.
মার্কাস ব্লজার

2
মার্কাস, অ্যারন: উত্তরে রূপান্তর করবেন?
সুরেশ ভেঙ্কট

উত্তর:


9

দীর্ঘ উত্তর পূর্ণসংখ্যার গুণনের জন্য এই উত্তরটি Schöhahage এবং Strassen রচিত প্রথম অ্যালগরিদমের ("মেথোড এ") বিশ্লেষণের বৈকল্পিক।

ধরে আমরা দৈর্ঘ্যের একটি FFT গনা করতে চান । আপনার ইনপুটটি এমনভাবে স্কেল করুন যে সমস্ত মান 1 এর চেয়ে ছোট হয় আসুন প্রথমে ধরে নেওয়া যাক আমরা এম- বিট ফিক্সড পয়েন্ট গাণিতিক ( বাইনারি পয়েন্টের পরে মি বিট) গণনা করব । যাক δ = 2 1 / 2 - মি ( "জটিল") অন্তত অবস্থানের ইউনিট হও। আসুন ω = Exp ( 2 π i / K )K=2kmmδ=21/2mω=exp(2πi/K)

1) এক জন্য Compute অনুমান যেমন যে | ω - ω | ( 2 - 1 ) δ জন্য সব 0 কে - 1 । এটি সময়ে হে ( কে এম ( এম ) ) এ সম্পন্ন করা যেতে পারে যেখানে এম ( এম ) সময়টি এম- বিট সংখ্যাগুলিকে গুণিত করার জন্য প্রয়োজন । (দেখুন নথ দ্বিতীয় খণ্ড, দ্বিতীয় তৃতীয় সংস্করণ, পৃষ্ঠা 309)।ωj|ωjωj|(2k1)δ0jK1O(KM(m))M(m)m

যদি মান পূর্ণসংখ্যার র‌্যামের অর্থ লোগারিদমিক ব্যয় হয় তবে । যদি মান পূর্ণসংখ্যার র‌্যামের অর্থ র‌্যাম শব্দ হয় তবে এম ( এম )M(m)=O(mlogm) । (Schönhage এবং Strassen "পদ্ধতি একটি" শো কিভাবে রৈখিক সময় গুণ কমাতে মি থেকে -বিট সংখ্যার মি গুণ হে ( লগ মি ) বিট নম্বর। আধুনিক ইউনিট খরচ এ কাজ করা যেতে পারে।)M(m)=O(m)mmO(logm)

2) ধ্রুপদী কুলি-টুকি এফএফটি ফর্মটির ক্রিয়াকলাপগুলি । আমরা এম- বিট নির্দিষ্ট পয়েন্ট গণিত ব্যবহার করি , এই পছন্দগুলি একটি = t r u n c a t e ( b + ω j c ) হয়ে যায় । আমরা জানি তাহলে ' এবং ' এর একটি ত্রুটি পর্যন্ত ε , আমরা পেতে একটি ' এর একটি ত্রুটি আপ 2 ε + + 2a=b+ωjcma=truncate(b+ωjc)bcϵa2ϵ+2kδ

3) আনয়ন ব্যবহার করে, এটি দেখতে যে আমরা ত্রুটি সহ চূড়ান্ত ফলাফল পেতে সহজ । স্পষ্টতা পেতে শেষ পর্যন্ত, মি + + লগ + + + + হে ( 1 )(2k1)2kδbmk+logk+b+O(1)

4) সুতরাং চূড়ান্ত চলমান সময় হ'ল O(KkM(k+b))

এটি ভাসমান পয়েন্ট সংখ্যাগুলির সাথেও কাজ করা উচিত: 1) স্থির পয়েন্ট পাটিগণিত দিয়ে এখনও করা যেতে পারে, 2) ভাসমান পয়েন্ট সংখ্যাগুলির ক্ষেত্রেও এটি সত্য।


নির্দিষ্ট পয়েন্ট গণিতের ক্ষেত্রে, আমি মনে করি, এটি আরও দ্রুত করা যায়। প্রথমে আমরা ব্লুস্টেইনের কৌশলটি ব্যবহার করে বহুবচনগুলির গুণনের জন্য এফএফটির গণনা হ্রাস করি। পছন্দসই নির্ভুলতা পেতে প্রয়োজনীয় সহগের দৈর্ঘ্য হওয়া উচিত । তারপরে আমরা বহুসংখ্যার গুণকে দীর্ঘ পূর্ণসংখ্যার গুণকে হ্রাস করি (সংযোজন একটি দীর্ঘ নম্বরে কোফিসিয়েন্টস এবং দৈর্ঘ্য শূন্য ব্লক তাদের আলাদা হে ( + + ) ।) পূর্ণসংখ্যার দৈর্ঘ্য হল হে ( কে ( K + + ) )O(k+b)O(k+b)O(K(k+b))


তাই বিন্দু থেকে (4) K = ঢ ও b = হে (লগ ঢ) সেটিং, এবং অভিমানী আমরা শব্দ র্যাম চলমান করছি, আমরা একটি চলমান সময় পান । রাইট? O(nlog2n)
জেফি

হ্যাঁ. দ্বিতীয় অ্যালগরিদম এমনকি , ধরে নিই যে নির্ভুলতা হে ( কে + বি ) যথেষ্ট। (এটি পর্যাপ্ত নয় কেন আমি কোনও বিন্দু দেখতে পাচ্ছি না, তবে আমি বিশদটি O(nlogএন)হে(+ +)
জানাইনি

2
বিটিডাব্লু, যদি ( লগ এন ) এর মতো ছোট হয় তবে প্রথম অ্যালগরিদম এম ( ( লগ এন ) ) = 1 থেকে চলমান সময়কে ( এন লগ এন ) দেয় । bO(logn)O(nlogn)M(O(logn))=1
মার্কাস ব্লুজার

আমি "অ্যালগোরিদমের ডিজাইন এবং বিশ্লেষণ" সম্পর্কিত আহো, হপকক্রফ্ট এবং আলম্যান বইটি দেখতে পেয়েছি এবং তারা বিট মডেলটিতে আলগোরিদিম এবং কিছু বিশদভাবে সম্পর্কিত বিষয়ে আলোচনা করেছেন।
চন্দ্র চেকুরি

তবে যতদূর আমার মনে আছে, তারা কেবল বিট-মডেলটিতে "নম্বর-তাত্ত্বিক এফএফটি" আলোচনা করে।
মার্কাস ব্লুজার

8

এটি সম্পূর্ণ উত্তর নয়, তবে আমি আপনাকে কিছু প্রাসঙ্গিক কাগজগুলির দিকে নির্দেশ করতে পারি এবং সাহিত্য থেকে আপনার নির্দিষ্ট প্রশ্নের উত্তর বের করা কেন এতটা সহজ নয় তা আংশিকভাবে ব্যাখ্যা করতে পারি।

আমাকে জিজ্ঞাসা করেই শুরু করা যাক, আপনি কেন এই প্রশ্নের উত্তর জানতে চান? সাধারণত, লোকেরা যারা এই ধরণের ইস্যু সম্পর্কে নিজেকে যত্নবান বলে মনে করে তারা বাস্তবিকাই ব্যবহারিক প্রয়োগের জন্য উচ্চ-কর্মক্ষমতা এফএফটি বাস্তবায়নের মুখোমুখি হয়। এই জাতীয় লোকেরা তাদের বিশেষ হার্ডওয়্যার এবং সফ্টওয়্যার সীমাবদ্ধতার অধীনে কর্মক্ষমতা সর্বাধিক করার চেয়ে কিছু আদর্শিক গণ্য মডেলটিতে অ্যাসিম্পোটিক জটিলতার বিষয়ে কম যত্ন করে। উদাহরণস্বরূপ, পশ্চিমের দ্রুততম ফুয়ুরি ট্রান্সফর্মের বিকাশকারীরা তাদের কাগজে লিখেছেন:

সেরা পছন্দ হার্ডওয়্যার সম্পর্কিত বিবরণগুলির উপর নির্ভর করে যেমন রেজিস্ট্রার সংখ্যা, বিলম্বিতা এবং নির্দেশাবলীর থ্রুপুট, ক্যাশে আকার এবং সাহসীতা, প্রসেসরের পাইপলাইনের কাঠামো ইত্যাদি upon

এগুলি এমন বিষয় যা তাত্ত্বিকরা সাধারণত তাদের হাতগুলি খুব সহজেই কাটাতে চান না, তবে প্রকৃত বাস্তবায়নে এগুলি অত্যন্ত গুরুত্বপূর্ণ। যদি কোনও তাত্ত্বিক ঘোষণা করেন, "আমি র‌্যাম মডেলের মধ্যে পরম সেরা অ্যাসেম্পোটিক বিট জটিলতা খুঁজে পেয়েছি," অনুশীলনকারী বলতে পারে, "এটি দুর্দান্ত," তবে তার উদ্দেশ্যগুলির জন্য এই জাতীয় তাত্ত্বিক ফলাফল অকেজো হতে পারে।

এই কথাটি বলে, আমি মনে করি যে সংখ্যা বিশ্লেষণের সাহিত্যের দিকে নজর দেওয়া আপনার সেরা বাজি। উদাহরণস্বরূপ, তাসচে এবং জিউনার এফএফটি অ্যালগরিদমের সংখ্যাসূচক স্থিতিশীলতার দিকে ঘনিষ্ঠভাবে নজর দিয়েছেন। এই এখনও ঠিক কি আপনি চান নাও হতে পারে, কারণ অনুশীলনকারীদের মধ্যে সাধারণ ঐক্যমত্য যে সংখ্যাসূচক স্পষ্টতা একটি নির্দিষ্ট পরিমাণ অর্জন করা হবে বলে মনে হয়, সেরা ব্যবহারিক পদ্ধতির হয় precompute নির্দিষ্ট সংখ্যার উচ্চ নির্ভুলতা থেকে "অলসভাবে ঘোরানো ফেরানো কারণের" বলা। যদি আপনি কেবল একটি এফএফটি করছেন , তবে এটি দ্রুততম পদ্ধতির হতে পারে না কারণ আপনি প্রচুর সংখ্যক এফএফটি সংখ্যার তুলনায় আপনার এক-সময়ের পূর্বশক্তিটির ব্যয়কে সামঞ্জস্য করতে যাবেন না। তবুও, তাদের নিকৃষ্টতম রাউন্ডঅফ ত্রুটির বিশ্লেষণটি এখনও আপনার প্রশ্নের সাথে প্রাসঙ্গিক হওয়া উচিত।


11024100

1
I'm interested as a purely theoretical question, in the interest of correct and honest scholarship. It is quite common to read "and here we use an FFT, which as everyone knows runs in O(n log n) time" in the middle of an otherwise purely combinatorial algorithm, otherwise analyzed in terms of pointer traversals and O(log n)-bit integer arithmetic. If, in fact, integer convolution can be performed in O(n log n) time using a slight variant of the FFT, this is perhaps forgivable but still sloppy. If not, any poor schmuck who tries to implement the algorithm is going to get THE WRONG ANSWER.
Jeffε

And of course, I don't expect the answer to my question to have any impact in practice whatsoever.
Jeffε

2
জেফ, যতদূর সৎ স্কলারশিপের কথা বলা যায়, এফএফটি-র জন্য ও (এন লগ এন) রিং অপারেশন প্রয়োজন কি তা বলা যথেষ্ট নয়? এফএফটি অ্যালগরিদমের জটিলতা পরিমাপ করার প্রাকৃতিক উপায়। আমি সমস্ত কিছুকে গণনার একটি বিশেষ মডেলে রূপান্তর করার অনুপ্রেরণা দেখছি না। নির্ভুলতার বিটের সংখ্যা ট্র্যাক করে রাখার জন্য যেখানে এটি গুরুত্বপূর্ণ তা প্রমাণ করার চেষ্টা করছেন এমন কোনও উপপাদ্য রয়েছে? আপনার দরিদ্র লোকদের জন্য, আমি এটি কিনব না যে সে "ভুল উত্তর" পাবে। প্রকৃত বাস্তবায়নে, আপনি যে প্রশ্নটি এখানে জিজ্ঞাসা করছেন তা প্রধান উদ্বেগের খুব কমই।
টিমোথি চৌ

টিম: অবশ্যই, এটা বলার পক্ষে যথেষ্ট হে(এনলগএন)রিং অপারেশনগুলি যদি আপনি বিচ্ছিন্নভাবে এফএফটি বিশ্লেষণ করেন। তবে যদি এফএফটি বৃহত্তর অ্যালগরিদমের মাত্র একটি উপাদান হয় তবে বৃহত অ্যালগরিদমের চলমান সময়কে জানার জন্য এফএফটি সহ তার সমস্ত উপাদান সাবউরটাইনগুলির জন্য গণনার একটি ধারাবাহিক মডেল প্রয়োজন। উদাহরণস্বরূপ, "কুলি-টুকি এফএফটি অ্যালগরিদম ব্যবহার করে দুটি পূর্ণসংখ্যার ক্রমগুলি সমাধান করুন এবং তারপরে ফলক সহগগুলি একটি হ্যাশ টেবিলের মধ্যে সন্নিবেশ করুন" (সম্পূর্ণ জাল উদাহরণ তৈরি করতে) সমস্যা জিজ্ঞাসা করছে।
জেফি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.