ग्रोवर के एल्गोरिथ्म में एक ओरेकल क्वबिट क्यों आवश्यक है?


10

मैं ग्रोवर के एल्गोरिथ्म में एक oracle qubit की आवश्यकता के बारे में थोड़ा भ्रमित हूं।

मेरा सवाल यह है कि क्या यह इस बात पर निर्भर करता है कि आप अपने ओरेकल को कैसे लागू करते हैं या नहीं, आपको ऑरेकल क्वबिट की जरूरत है या नहीं? या, यह एक अलंकृत qubit के लिए कोई कारण है? (जैसे, कुछ समस्याएँ मौजूद हैं, जिन्हें बिना oracle qubit के हल नहीं किया जा सकता है, या oracle qubit के साथ समस्या के बारे में सोचना आसान है, या यह एक कन्वेंशन है, आदि)

कई संसाधन ग्रोवर के एल्गोरिथ्म को एक ओरेकल क्वबिट के साथ जोड़ते हैं, लेकिन मैंने पाया कि कुछ ऐसे मामले हैं जिन्हें आपको ऑरेकल क्वेट की आवश्यकता नहीं है।

उदाहरण के लिए, यहां आईबीएम क्यू सिम्युलेटर में ग्रोवर के एल्गोरिथ्म के दो कार्यान्वयन हैं। एक ओरेकल क्वबिट का उपयोग कर रहा है, और दूसरा नहीं है। दोनों ही मामलों में, मैं ०१>> | ०१>, | ०१>, | १०>, और ११> के स्थान से खोजना चाहूंगा। दोनों ही मामलों में, अलंकृत सफलतापूर्वक फ़्लिप करता है | 11> से - 11 |

・ एक अलंकृत क्वेट ( आईबीएम क्यू सिम्युलेटर से लिंक ) के साथ यहाँ छवि विवरण दर्ज करें

・ बिना ओरेकल क्वाबिट ( लिंक आईबीएम क्यू सिम्युलेटर ) यहाँ छवि विवरण दर्ज करें

जवाबों:


5

क्वांटम सर्किट को परिभाषित करने के दृष्टिकोण से, ऑरेकल क्वबिट सख्ती से आवश्यक नहीं है। उदाहरण के लिए, ग्रोवर की खोज में, आप सामान्य रूप से इस प्रकार की क्रिया को परिभाषित कर सकते हैं

यू|एक्स|y=|एक्स|y(एक्स),
कहाँ पे (एक्स) 1 अगर लौटाता है एक्सचिह्नित आइटम है। हालाँकि, हम हमेशा इसे एक विशेष तरीके से प्रयोग करते हैं(|0-|1)/2ओरेकल क्वबिट पर। यह केवल चिह्नित वस्तु पर एक चरण को लागू करने का शुद्ध प्रभाव है। दूसरे शब्दों में, यह पूरी तरह से एक नए एकात्मक के कार्यान्वयन के बराबर है
यू~|एक्स=(-1)(एक्स)|एक्स

हालांकि, जहां यह एक फर्क पड़ता है वह व्यावहारिक वास्तविकता है। किसी आइटम के लिए खोज करना, हमें वास्तव में किसी प्रकार के सर्किट की आवश्यकता होगी जो कि इनपुट के आधार पर चिह्नित आइटम को पहचानता हैएक्स। उस बिंदु पर, ओरेकल बिट पर उत्तर को आउटपुट करने के बारे में सोचना आसान है, बजाय किसी तरह सीधे एकात्मक निर्माण के जो कि ऑरेकल क्वबिट का उपयोग किए बिना चरण देता है। वास्तव में, मुझे संदेह है अगर मैंने आपसे एक सामान्य संस्करण डिजाइन करने के लिए कहायू~, तुम साथ आओगे यू समाधान के रूप में अतिरिक्त qubit के साथ।


यह वास्तव में बहुत आसान है कि अतिरिक्त मात्रा से बचा जाए, यह मानकर कि इसका उपयोग दैवीय गणना के दौरान कार्यक्षेत्र के रूप में नहीं किया जाता है। किसी भी CNOT को अतिरिक्त क्वाइब पर खोजें, और CNOT के नियंत्रण पर उन्हें Z गेट से बदलें। इसी तरह, CCNOT को दो नियंत्रणों CCNOT के बीच एक cz के साथ अतिरिक्त qubit पर बदलें। आदि
क्रेग गिदनी

@ क्रेगगिडनी यह एक उचित बिंदु है, हालांकि मुझे लगता है कि आपके कथन में निर्मित और अधिक धारणाएं हैं (इसे गैर-सामान्य बनाते हैं, भले ही उन मामलों में से अधिकांश जिन्हें हम उन्हें संतुष्ट करने के बारे में जानते हैं): (1) कोई मध्यवर्ती एंकिल के दौरान इस्तेमाल नहीं किया जाना चाहिए समारोह मूल्यांकन; (2) ओरेकल के सर्किट को एक गेट सेट में विघटित किया जाना चाहिए, जहां ऑर्क्ली क्वबिट पर अभिनय करने वाले एकमात्र बहु-क्वैच गेट हैं (मल्टी) -कंट्रोल-नॉट जो ओरेकल क्वेट को लक्षित करते हैं; (3) कोई अन्य फाटक ऑर्बिट क्वाइल पर कार्य नहीं कर सकता (यानी आप इनपुट और आउटपुट पर हैडमार्ड का उपयोग करके गलत तरीके से कार्य करने वाले c-nots को उल्टा नहीं कर सकते)।
दफ्तुवली

वह सही है।
क्रेग गिदनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.