ग्रोवर का एल्गोरिथ्म: सूची कहां है?


15

ग्रोवर के एल्गोरिथ्म का उपयोग अन्य चीजों के अलावा, आइटम की अनियंत्रित सूची में आइटम y को खोजने के लिए किया जाता है [x0,x1,...,xn1] लंबाई n । भले ही इस विषय के बारे में यहाँ बहुत सारे प्रश्न हैं, फिर भी मुझे यह बात याद आती है।

एक सूची में खोज, शास्त्रीय तरीका

आम तौर पर, मैं एक खोज समारोह इस तरह से डिजाइन होगा

search([x0,x1,...,xn1],y)=iNsuch that xi=y
तो मैं इनपुट के रूप में सूची और वांछित आइटम देता हूं, और मुझे आउटपुट के रूप में सूची में आइटम की स्थिति प्राप्त होती है। मुझे लगता है मैं समझ चुके हैं कि के बारे में जानकारीy ओरेकल गेट के माध्यम से एल्गोरिथ्म में अंतर्निहित हैO , इसलिए हमारे समारोह हो जाता
searchy([x1,x2,...,xn])=iNsuch that xi=y
चलो एक व्यावहारिक उदाहरण बनाते हैं। एकमानक 52-कार्ड डेकसे 8 कार्ड के अनुक्रम में1 हुकुम के इक्का को खोजने पर विचार करें:

shuffled deck

लंबाई की सूची 8 है [x0=J, x1=10, x2=4, x3=Q, x4=3, x5=1, x6=6, x7=6]

वांछित तत्व x5 । मैं प्राप्त करना चाहिए search(cards)=5 । प्रत्येक कार्ड के साथ एन्कोड किया जा सकता log252=6 बिट्स, सूची है 8 इसलिए हम जरूरत तत्वों 6×8=48 बिट्स सूची एन्कोड करने के लिए। इस स्थिति में, oracle O फ़ंक्शन को लागू करेगा:

f(x)={1,x=10,otherwise

हालांकि, ग्रोवर के एल्गोरिथ्म का इनपुट 48 क्विट की स्थिति नहीं है ।

(एनबी: शफ़ल डेक की छवि यहां से ली गई है )

ग्रोवर और उसके oracle

कई स्रोत (जैसे। यहाँ - आलेखीय रूप से समझाया गया है) कहते हैं कि एल्गोरिथ्म का इनपुट अलग है: इनपुट खोज स्थान S={0,1,2,...,N}={0,1,2,...,7} से लिया गया एक राज्य है , एन } = { 0 , 1 , 2 , , 7 } जहां N सूची के तत्वों की संख्या है। प्रत्येक संख्या सूची में एक तत्व की स्थिति से मेल खाती है।

के इनपुट search() अब एक है log28=3 qubit वेक्टर |ψ , जो खोज स्थान S में सभी वस्तुओं का एक सुपरपोजिशन होना चाहिएS

हम जानते है

  • |03qubits=|000 से मेल खातीJ ;
  • |13qubits=|001 से मेल खाती है10 ;
  • |23qubits=|010 से मेल खाती है4 ;
  • |53qubits=|101 मेल खाती है करने के लिए1 जो वांछित तत्व है;
  • और इसी तरह...

इस मामले में हमारे पास

search(|ψ)=|53qubits
लेकिन इस मामले में, हमारे ओरेकल समारोह को लागू करने के लिए होता है
f(|ψ)={1,|ψ=|53qubits0,otherwise

ओरेकल बिल्डिंग को पता है कि हमें आवश्यकता है स्थिति 5. बिंदु एल्गोरिथ्म निष्पादित करने के लिए करता है, तो हम पहले से ही आदेश ओरेकल के निर्माण के लिए तत्व के लिए खोज की है पर है?


मुझे ग्रोवर के एल्गोरिथ्म के लाभ को समझने में कठिनाई होती है। मान लीजिए कि मेरे पास सूची में एन आइटम हैं। ओरेकल के प्रत्येक कॉल पर, क्या उसने सभी एन संभावनाओं का मूल्यांकन किया था? भले ही मूल्यांकन बहुत तेज़ हो लेकिन अगर हमें अभी भी सभी कॉन्फ़िगरेशन पर पुनरावृति की आवश्यकता है, तो ओरेकल मूल्यांकन की जटिलता ओ (एन) है। तो ग्रोवर का एल्गोरिथ्म गूंगा खोज से तेज नहीं लगता है। क्या ये सही है?
सनरपिट मरुकट

@SanparithMarukatat यह सही नहीं है। आपकी सूची की वस्तुएं खोज में शामिल राज्य के सुपरपोज़िशन की शर्तें हैं। जब ओरेकल इस राज्य पर काम करता है, तो यह एक एकल ऑपरेशन के रूप में गिना जाता है। ओरेकल की क्षमता आपके सुपरपोज़िशन के खोजे गए शब्द को चिह्नित करने के लिए ग्रोवर की अंतर्दृष्टि का एक बुनियादी हिस्सा है। ग्रोवर के एल्गोरिथ्म को समझने के लिए, मैं आपको पहले यह समझने की सलाह देता हूं कि यह वांछित स्थिति का अंकन कैसे होता है। बाद में, राज्य की भूमिका को समझना सुनिश्चित करें Oracle में। |
आर चोपिन

If you understand that, then you should study the operator that is able to increase the amplitude of the desired term in the superposition while at the same time decreasing the amplitude of the undesired terms of the superposition. To me the easiest way to approach Grover's is to look at the inverse-about-mean operator. (Some people take the geometric view, but I don't find it as clear.)
R. Chopin

जवाबों:


10

यदि आपके पास सूची में 8 आइटम हैं (जैसे आपके कार्ड के उदाहरण में), तो ओरेकल का इनपुट 3 (क्व) बिट्स है। डेक में कार्ड की संख्या (52) अप्रासंगिक है, आपको केवल 8 कार्ड को एनकोड करने के लिए 3 बिट्स की आवश्यकता है।

आप सोच सकते हैं कि 3 बिट्स आपके द्वारा खोजे जा रहे कार्ड की सूची में स्थिति को कूटबद्ध करते हैं; तब आपको स्थिति का पता नहीं चलता है, लेकिन दैवज्ञ जानता है। इसलिए यदि आप हुकुम का इक्का खोज रहे हैं, तो ताबीज जानता है कि हुकुम का इक्का 6 वां कार्ड है (या शून्य से 5 वीं गिनती) और फ़ंक्शन को लागू करता है

f(x)={1,if x = 5, or binary '101'0,otherwise

1


Yes sorry, that 6 was from a previous edit
incud

2
Thank you for your answer. I fixed the miswriting. What's the point of executing the algorithm if in order to build the oracle I need to know the position of the searched element?
incud

1
@incud वास्तव में इसका कोई मतलब नहीं है। मैंने जवाब अपडेट कर दिया है।
kludg

"Grover's algorithm is just searching for what the oracle knows": not necessarily. The oracle may be checking for only some specific property of the input, so that the result one gets at the end contains more information than that encoded in the oracle itsef. A typical example is searching in a phone book. The oracle "asks" for a record attached to a specific name, but once the correct record is found, one also gains the additional information of the phone number attached to that record, which was not encoded at all in the oracle
glS

4

While it is perhaps easiest for us to think about the function of the oracle as already having computed all these values, that's not what it's doing. In the case you described, the oracle has 8 possible inputs (i.e. encoded in 3 (qu)bits), and the oracle does all the computation that you need on the fly. So, the moment you try to evaluate the oracle for some value x, the oracle looks up (in this instance) the card that the value of x corresponds to, and then checks if that card is the marked card. The idea being that each time you call the oracle, it goes through that process once. Overall, you evaluate the function a number of times that's equal to the number of times you call the oracle. The aim of any search algorithm is to call that oracle as few times as possible.

मामले में यह थोड़ा गोलाकार लगता है (इनपुट दिया गया है एक्स, जो कार्ड से मेल खाती है), याद रखें कि आपका लुक-अप टेबल किस लिए है एक्सकिस कार्ड से ऑर्डर किया जा सकता है जो एक अलग, सरल, बहुत तेजी से खोज प्रश्न है।

अधिक यथार्थवादी उपयोग परिदृश्य की तुलना में आपके उदाहरण में मुख्य अंतर हैं:

  • खोज स्थान आमतौर पर बड़े पैमाने पर है। सभी मूल्यों को प्रीकोम्प्यूट करने की कोई वास्तविक संभावना नहीं है। वास्तव में, यह वही है जो हम बचने की कोशिश कर रहे हैं।

  • आमतौर पर, हम वास्तव में 'हुकुम का इक्का खोजें' नहीं कहते हैं। इसके बजाय, वहाँ एक है(एक्स) अगर परीक्षण करने के लिए मूल्यांकन करने के लिए गैर-तुच्छ है एक्स is the 'marked' item or not. The fact that the oracle can take quite a long time to evaluate, even for a single entry, is what makes the oracle the costly part to implement (and all other gates are given for free) and why you need to minimise the number of calls.

So, really, the way a classical search would work on your problem is: pick an x at random. Evaluate y=f(x). If y=1, return x, otherwise repeat. While the net effect of f(x) is 'is the input x0, the marked entry?', that is not the actual calculation that it does.


2

प्रश्न अंततः है: "क्या एल्गोरिथ्म को निष्पादित करने का बिंदु है अगर हमने पहले से ही तत्व का निर्माण करने के लिए खोज की है?"

जब भी किसी ने दैवज्ञ का निर्माण किया, वह दैवज्ञ का उपयोग करने वाला व्यक्ति नहीं रहा होगा।

ग्रोवर के एल्गोरिथ्म की आवश्यकता है कि ओरेकल की तुलना में अधिक बार नहीं किया जाना चाहिए सूची का आकार। स्वाभाविक रूप से हम संबंधित डेटाबेस लुकअप की उम्मीद नहीं कर सकते हैं, जैसा कि पहले प्रस्तावित किया गया था, जिसके खिलाफ मैं प्रतिष्ठा की कमी के लिए टिप्पणी नहीं कर सकता, 5 मिलियन कुंजियों को हम अपनी इच्छित सामग्री को वापस करेंगे यदि हमारी सामग्री उन 5 मिलियन कुंजियों में से किसी को संबोधित नहीं करती है, लेकिन 9 मिलियन कुंजी, जो हमारे नमूने में नहीं होती है। फिर ग्रोवर का एल्गोरिथ्म कैसे करता है?

हम तांडव पूछते हैं: यह पहले से ही इस सवाल का जवाब क्या है? यहां तक ​​कि माटस और उमर रनटाइम के दौरान "ऑर्केल-फॉर-ए-ए-खास-अल्फाबेट-सिंबल" पूछते थे कि स्ट्रिंग में इसके सिंबल की स्थिति (पोज़) क्या हैं जो पहले ही संकलित हो चुकी हैं? ऑरेकल हमारी क्वेरी का जवाब केवल एक परामर्श के बाद देगा, लेकिन इस कहानी में, यह उदाहरण के लिए केवल बाइनरी स्ट्रिंग के रूप में उत्तर नहीं लिख सकता है और इसे हमें एक शास्त्रीय संचार चैनल पर भेज सकता है। यह हमारे लिए एक सुपरपोजिशन में इसका उत्तर छिपाएगा।

I let fancy or metaphor run away in this next bit: we don't quite hear the answer the first time, and we have to ask the oracle to repeat the same answer over and over again until we are sure what the oracle has said, except we start to hallucinate from misinformation in the diffusion process if we ask too many times.


2

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

(एक्स)={1,एक्स[0,...,3]+एक्स[4,...,7]=10100,अन्यथा

इसका तात्पर्य यह है कि आपके पास एक 8-qubit खोज है जहाँ आप पहली चार qubit लेते हैं और उन्हें दूसरी चार qubits में जोड़ते हैं और M को फ्लिप करते हैं यदि जोड़ 10 (बाइनरी में 1010) करता है। इस ओरेकल और आपके द्वारा प्रदान किए गए के बीच का अंतर यह है कि यह ऑरेकल एक पैटर्न का परीक्षण करता है (ऑपरेंड को 10 में जोड़ें) जबकि आपका परीक्षण समानता का परीक्षण करता है (यह इंडेक्स 5 है)। यह अलंकरण का निर्माण करना अधिक कठिन है, लेकिन यह ग्रोवर की वास्तविक शक्ति का लाभ उठाता है, जो कि संक्षेप में, एक क्रूर-बल खोज है जहां आपका दैवीय खोज स्थान को परिभाषित करता है।

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