शास्त्रीय असतत फूरियर रूपांतरण का परिचय:
DFT जटिल संख्याओं के अनुक्रम को { x n } : = x 0 , x 1 , x 2 , में रूपांतरित करता है । । । , X एन - 1 जटिल संख्याओं का एक और दृश्य में { एक्स कश्मीर } : = एक्स 0 , एक्स 1 , एक्स 2 , । । । द्वारा परिभाषित किया गया है जो एक्स कश्मीर = एन - 1 ΣN{xn}:=x0,x1,x2,...,xN−1{Xk}:=X0,X1,X2,... हम आवश्यक रूप से उपयुक्त सामान्यीकरण स्थिरांक से गुणा कर सकते हैं। इसके अलावा, चाहे हम सूत्र में प्लस या माइनस साइन लें या नहीं, यह हमारे द्वारा चुने गए कन्वेंशन पर निर्भर करता है।
Xk=∑n=0N−1xn.e±2πiknN
मान लीजिए, यह दिया गया है कि और x = ( 1 2 - i - i - 1 + 2 i ) ।N=4x=⎛⎝⎜⎜⎜12−i−i−1+2i⎞⎠⎟⎟⎟
हमें कॉलम वेक्टर खोजने की आवश्यकता है । सामान्य विधि पहले से ही विकिपीडिया पृष्ठ पर दिखाई जाती है । लेकिन हम उसी के लिए एक मैट्रिक्स नोटेशन विकसित करेंगे। X को मैट्रिक्स द्वारा पूर्व गुणा x द्वारा आसानी से प्राप्त किया जा सकता है :XXx
M=1N−−√⎛⎝⎜⎜⎜11111ww2w31w2w4w61w3w6w9⎞⎠⎟⎟⎟
जहां है ई - 2 π मैंw । मैट्रिक्स का प्रत्येक तत्व मूल रूप सेwij है। 1e−2πiNwij बस एक सामान्यीकरण स्थिरांक है।1N√
अंत में, निकला: 1X।12⎛⎝⎜⎜⎜2−2−2i−2i4+4i⎞⎠⎟⎟⎟
अब, थोड़ी देर के लिए वापस बैठें और कुछ महत्वपूर्ण गुणों पर ध्यान दें:
- मैट्रिक्स सभी स्तंभ एक दूसरे के लिए ऑर्थोगोनल हैं।M
- सभी कॉलम में 1 परिमाण है ।M1
- यदि आप बहुत से शून्य (बड़े प्रसार) वाले स्तंभ वेक्टर के साथ को गुणा करते हैं, तो आप केवल कुछ शून्य (संकीर्ण प्रसार) वाले स्तंभ वेक्टर के साथ समाप्त होंगे। आक्षेप भी सही है। (चेक!)M
यह बहुत आसानी से देखा जा सकता है कि शास्त्रीय डीएफटी में एक समय जटिलता । ऐसा इसलिए है क्योंकि एक्स की प्रत्येक पंक्ति को प्राप्त करने के लिए , एन संचालन करने की आवश्यकता है। और X में N रो हैं ।O(N2)XNNX
फास्ट फूरियर रूपांतरण:
अब, फास्ट फूरियर ट्रांसफॉर्म पर नजर डालते हैं। तेजी से फूरियर रूपांतरण गणना समय को कम करने के लिए फूरियर रूपांतरण की समरूपता का उपयोग करता है। सीधे शब्दों में, हम आकार के दो फूरियर रूपांतरण के रूप में आकार N / 2 के फूरियर रूपांतरण को फिर से लिखते हैं - विषम और समान शब्द। फिर हम समय-समय पर तेजी से कम करने के लिए इसे बार-बार दोहराते हैं। यह देखने के लिए कि यह कैसे काम करता है, हम फूरियर रूपांतरण के मैट्रिक्स की ओर मुड़ते हैं। जब हम इससे गुज़रते हैं , तो नज़र उतारने के लिए आपके सामने DFT 8 का होना मददगार हो सकता है । ध्यान दें कि एक्स्पोनेंट्स सापेक्ष लिखा गया है 8 , के बाद से डब्ल्यू 8 = 1 ।NN/2DFT88w8=1
ध्यान दें कि पंक्ति कैसे पंक्ति j + 4 के समान है । यह भी ध्यान दें कि कॉलम j कैसे
कॉलम j + 4 के समान है । इससे प्रेरित होकर, हम फूरियर को उसके सम और विषम कॉलम में विभाजित करने जा रहे हैं।jj+4jj+4
पहले फ्रेम में, हमने th row और k th कॉलम: w j k का वर्णन करके पूरे फूरियर ट्रांसफॉर्म मैट्रिक्स का प्रतिनिधित्व किया है । अगले फ्रेम में, हम विषम और यहां तक कि कॉलम को अलग करते हैं, और उसी तरह वेक्टर को अलग करते हैं जिसे बदलना है। आपको खुद को यह समझाना चाहिए कि पहली समानता वास्तव में एक समानता है। तीसरे फ्रेम में, हम उस डब्ल्यू जे + एन / 2 = - डब्ल्यू जे ( डब्ल्यू एन / 2 = - 1 ) को देखते हुए थोड़ा समरूपता जोड़ते हैं
।jkwjkwj+N/2=−wjwn/2=−1
ध्यान दें कि दोनों विषम पक्ष और समकोण पक्ष में शब्द है । लेकिन यदि w एकता की आदिम मूल जड़ है, तो w 2 एकता की आदिम N / 2 nd जड़ है। इसलिए, matrices जिसका j , k th प्रविष्टि w 2 j k है , वास्तव में सिर्फ DFT ( N / 2 ) है ! अब हम DFT N को एक नए तरीके से लिख सकते हैं : अब मान लें कि हम फ़ंक्शन के फूरियर रूपांतरण की गणना कर रहे हैं f ( x )w2jkww2N/2jkw2jkDFT(N/2)DFTNf(x)। हम एक समीकरण है कि JTH अवधि की गणना करता है, जैसा कि ऊपर जोड़तोड़ लिख सकते हैं च ( जे ) ।f^(j)
नोट: छवि में QFT इस संदर्भ में केवल DFT के लिए है। इसके अलावा, एम उस चीज को संदर्भित करता है जिसे हम एन कह रहे हैं।
यह की हमारी गणना को DFT ( N / 2 ) के दो अनुप्रयोगों में बदल देता है । हम इसे डीएफटी ( एन / 4 ) के चार अनुप्रयोगों में बदल सकते हैं , और इसके बाद। लंबे समय के रूप के रूप में एन = 2 n कुछ के लिए n , हम के बारे में हमारी गणना करना बंद कर सकता एफ टी एन में एन
की गणना एफ टी 1 = 1 । यह हमारी गणना को सरल करता है।DFTNDFT(N/2)DFT(N/4)N=2nnDFTNNDFT1=1
फास्ट फूरियर के मामले में समय जटिलता को कम कर देती है ( इसे स्वयं साबित करने का प्रयास करें)। यह शास्त्रीय डीएफटी पर बहुत बड़ा सुधार है और आपके आईपॉड जैसे आधुनिक दिन के संगीत प्रणालियों में उपयोग किए जाने वाले अत्याधुनिक एल्गोरिदम के लिए बहुत अधिक है!O(Nlog(N))
क्वांटम फूरियर रूपांतरण के साथ क्वांटम गेट्स:
एफएफटी की ताकत यह है कि हम अपने लाभ के लिए असतत फूरियर रूपांतरण की समरूपता का उपयोग करने में सक्षम हैं। QFT का सर्किट अनुप्रयोग समान सिद्धांत का उपयोग करता है, लेकिन सुपरपोज़िशन की शक्ति के कारण QFT और भी तेज़ है।
क्यूएफटी एफएफटी से प्रेरित है इसलिए हम समान चरणों का पालन करेंगे, लेकिन क्योंकि यह एक क्वांटम एल्गोरिथ्म है इसलिए चरणों का कार्यान्वयन अलग होगा। यही है, हम पहले विषम और यहां तक कि भागों के फूरियर रूपांतरण को लेते हैं, फिर चरण द्वारा विषम शब्दों को गुणा करते हैं ।wj
एक क्वांटम एल्गोरिथ्म में, पहला कदम काफी सरल है। अजीब और यहां तक कि शब्द एक साथ सुपरपोजिशन में हैं: विषम शब्द वे हैं जिनका कम से कम महत्वपूर्ण बिट , और यहां तक कि 0 के साथ भी । इसलिए, हम QFT ( N / 2 ) को विषम और यहां तक कि दोनों शब्दों को एक साथ लागू कर सकते हैं। हम इसे लागू करते हैं हम केवल QFT ( N / 2 ) को n - 1 सबसे महत्वपूर्ण बिट्स पर लागू करेंगे, और हैडमार्ड को कम से कम महत्वपूर्ण बिट पर लागू करके विषम और यहां तक कि पुन: संयोजन करेंगे।10QFT(N/2)QFT(N/2)n−1
अब चरण गुणा को पूरा करने के लिए, हमें चरण w j द्वारा प्रत्येक विषम पद को गुणा करना होगा । लेकिन याद रखें, बाइनरी में एक विषम संख्या 1 के साथ समाप्त होती है जबकि एक 0 के साथ भी समाप्त होती है । इस प्रकार हम नियंत्रित चरण शिफ्ट का उपयोग कर सकते हैं, जहां कम से कम महत्वपूर्ण बिट नियंत्रण है, यहां तक कि चरण द्वारा केवल विषम शब्दों को गुणा करने के लिए, यहां तक कि कुछ शर्तों के बिना कुछ भी करने के लिए। याद रखें कि नियंत्रित चरण शिफ्ट CNOT गेट के समान है कि यह केवल लक्ष्य पर एक चरण लागू करता है यदि नियंत्रण बिट एक है।jwj10
नोट: छवि में M से तात्पर्य है जिसे हम N कह रहे हैं।
प्रत्येक नियंत्रित चरण शिफ्ट के साथ जुड़ा हुआ चरण बराबर होना चाहिए
जहाँ j k -th बिट से j = 2 k से जुड़ा होता है । इस प्रकार, नियंत्रण के रूप में कम से कम महत्वपूर्ण बिट के साथ, पहले n - 1 qubits में से प्रत्येक के लिए नियंत्रित चरण बदलाव लागू करें । नियंत्रित चरण शिफ्ट और हैडमार्ड परिवर्तन के साथ, QFT N को QFT ( N / 2 ) में घटा दिया गया है ।wjjkj=2kn−1QFTNQFT(N/2)
नोट: छवि में, एम उस को संदर्भित करता है जिसे हम एन कह रहे हैं।
उदाहरण:
निर्माण करें । एल्गोरिथ्म का पालन करते हुए, हम QFT 3 को QFT 2
और कुछ क्वांटम गेट्स में बदल देंगे । फिर इस तरह से जारी रखते हुए हम QFT 2 को QFT 1 में
बदल देते हैं (जो कि सिर्फ एक हैमर्ड द्वार है) और दूसरा कुछ द्वार। नियंत्रित चरण फाटकों को R ed द्वारा दर्शाया जाएगा । फिर QFT 2 से छुटकारा पाने के लिए एक और पुनरावृत्ति के माध्यम से चलाएं । अब आपको QFT के लिए सर्किट की कल्पना अधिक आसानी से करने में सक्षम होना चाहिए । इसके अलावा, आप देख सकते हैं कि QFT N को ले जाने के लिए आवश्यक गेटों की संख्या ठीक लॉग हैQFT3QFT3QFT2QFT2QFT1RϕQFT2QFTQFTN
∑i=1log(N)i=log(N)(log(N)+1)/2=O(log2N)
सूत्रों का कहना है:
https://en.wikipedia.org/wiki/Discrete_Fourier_transform
https://en.wikipedia.org/wiki/Quantum_Fourier_transform
क्वांटम यांत्रिकी और क्वांटम कम्प्यूटेशन MOOC (UC बर्कलेएक्स) - व्याख्यान नोट्स: अध्याय 5
PS: यह उत्तर इसके प्रारंभिक संस्करण में है। जैसा कि @DaftWillie टिप्पणियों में उल्लेख करता है, यह " किसी भी अंतर्दृष्टि के बारे में बहुत कुछ नहीं बताता है जो अन्य संभावित एल्गोरिदम के संबंध में कुछ मार्गदर्शन दे सकता है "। मैं मूल प्रश्न के वैकल्पिक उत्तर को प्रोत्साहित करता हूं। मुझे व्यक्तिगत रूप से थोड़ा पढ़ने और संसाधन-खुदाई करने की आवश्यकता है ताकि मैं प्रश्न के उस पहलू का उत्तर दे सकूं।