ग्रोवर के एल्गोरिथ्म के लिए ओरेकल कंस्ट्रक्शन


16

माइक और इके की "क्वांटम कम्प्यूटेशन और क्वांटम सूचना" में, ग्रोवर के एल्गोरिथ्म को बहुत विस्तार से समझाया गया है। हालांकि, पुस्तक में, और ग्रोवर के एल्गोरिथ्म के लिए मैंने ऑनलाइन सभी स्पष्टीकरणों में पाया है कि ग्रोवर के ओरेकल का निर्माण कैसे किया जाता है, इसका कोई उल्लेख नहीं है, जब तक कि हम पहले से ही नहीं जानते कि यह कौन सा राज्य है जिसे हम खोज रहे हैं, उद्देश्य को हराते हुए। कलन विधि। विशेष रूप से, मेरा प्रश्न यह है: कुछ f (x) दिया गया है जैसे कि कुछ x मान के लिए, f (x) = 1, लेकिन अन्य सभी के लिए, f (x) = 0, कैसे एक ओरेकल का निर्माण करता है जो हमें मिलेगा हमारी प्रारंभिक, मनमानी अवस्था | x> | y> to | x> | y + f (x)> जितना संभव हो उतना स्पष्ट विवरण (शायद एक उदाहरण?) बहुत सराहना की जाएगी। अगर किसी भी मनमाने कार्य के लिए ऐसा निर्माण हडामर, पौली, या अन्य मानक क्वांटम फाटकों के साथ संभव है,


एनएन

2
लेकिन क्या होगा अगर ओरेकल दिए जाने के बजाय, हमें कुछ एफ (एक्स) दिया जाए? कल्पना कीजिए कि हम 3-सैट समस्या को हल कर रहे हैं और समाधान के लिए गति प्रदान करने के लिए ग्रोवर का उपयोग करना चाहते हैं। हम प्रश्न (3-SAT सत्य खंड) में f (x) जानते हैं, लेकिन जरूरी नहीं कि 3-SAT में प्लग किए जाने पर कौन सा बिट x सही परिणाम देगा। सही बिट स्ट्रिंग को खोजने के लिए 3-SAT फ़ंक्शन से एक ओरेकल बनाने का कोई तरीका नहीं होना चाहिए? यदि ऐसा नहीं है, और जैसा कि आप सुझाव देते हैं, किसी और द्वारा प्रदान की जाने वाली चीज, ग्रोवर का एल्गोरिथ्म बल्कि कृत्रिम लगता है, केवल आपको दिया गया एक अभ्यास है।
विल

जवाबों:


20

ओरेकल मूल रूप से उस विधेय का एक कार्यान्वयन है जिसे आप संतोषजनक समाधान के लिए खोजना चाहते हैं।

उदाहरण के लिए, मान लीजिए कि आपके पास 3-सत समस्या है:

(¬x1 ∨ ¬x3 ∨ ¬x4) ∧
    (x2 ∨ x3 ∨ ¬x4) ∧
    (x1 ∨ ¬x2 ∨ x4) ∧
    (x1 ∨ x3 ∨ x4) ∧
    (¬x1 ∨ x2 ∨ ¬x3)

या, तालिका में प्रत्येक पंक्ति के साथ 3-खंड, x अर्थ "यह चर असत्य", ओ का अर्थ "यह चर सत्य" है, और स्थान का अर्थ "खंड में नहीं" है:

1 2 3 4
-------
x   x x
  o o x
o x   o
x o x

अब एक परिपथ बनाइए जो गणना करे कि इनपुट इस तरह है:

समाधान चेकर

अब, अपने सर्किट को एक ओरेकल में बदलने के लिए, जेड गेट के साथ आउटपुट बिट को हिट करें और आपके द्वारा किए गए किसी भी कचरे को अनल्यूट करें (यानी गणना सर्किट को रिवर्स ऑर्डर में चलाएं):

ओरेकल सर्किट

यही सब है इसके लिए। विधेय की गणना करें, परिणाम को Z से मारें, विधेय को असम्बद्ध करें। वह एक दैवज्ञ है।

अलंकृत चरणों के साथ अलग-अलग प्रसार कदम, और आप अपने आप को एक ग्रोवर खोज लिया है :

ग्रोवर खोज

... हालाँकि आपको शायद कम समाधानों के साथ एक उदाहरण चुनना चाहिए, इसलिए प्रगति क्रमिक है (मेरे उदाहरण के अनुसार प्रति चरण 90-डिग्री से अधिक राज्य-समाधान-राज्य विमान के साथ घूमने के बजाय)।


धन्यवाद, यह बेहद मददगार था। अविश्वसनीय रूप से स्पष्ट, मैंने जो कुछ भी पूछा, उसका उत्तर दिया (और यहां तक ​​कि सामान्य क्वांटम गेट्स का भी इस्तेमाल किया!) क्या कोई कारण है कि आप अपने सभी शुरुआती कोटे को बदलने का फैसला करते हैं। 1> राज्य को केवल डालने के बजाय हैडर्ड गेट्स के साथ सुपरपोजिशन में डाल दें। > राज्य Hadamards के माध्यम से (यानी वहाँ इस के लिए एक फायदा है) के माध्यम से होता है? इसके अलावा, आपके विसरण चरणों के लिए क्या ऑपरेशन है? नियंत्रित X जैसा दिखता है, लेकिन क्या आप उपयोग कर रहे हैं। 1> 's या | 0> का नियंत्रण है?
विल

(12|0-12|1)n

शानदार जवाब, और algassert.com/quirk के लिंक के लिए धन्यवाद !
Frédéric Grosshans
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.