मुझे लगता है कि ahelwer
इसका उत्तर कुछ तरीकों पर है जो हम एल्गोरिदम की जटिलता के बारे में सोचते हैं। हालाँकि - यह देखते हुए कि हमारे पास वास्तविक दुनिया में "oracles" नहीं है जिसे हम क्वेरी करना चाहते हैं, आपको आश्चर्य हो सकता है कि हम क्वेरी जटिलता या ऑर्केल्स के विचार के बारे में चिंता क्यों करेंगे। मैं इस पर कुछ परिप्रेक्ष्य देने की कोशिश करूंगा, और विशेष रूप से यह वर्णन करने के लिए कि आप "Deutsch-Josza oracle" के निर्माण के तरीकों के बारे में सोचने की कोशिश कैसे कर सकते हैं, जैसा कि आप महसूस नहीं कर रहे हैं कि आप धोखा दे रहे हैं।
(जैसा कि Norbert Schuch
इंगित करता है, Deutsch समस्या के लिए, जो कि Deutsch-Josza का प्राथमिक मामला है, अंतर्दृष्टि के लिए बहुत गुंजाइश नहीं है, लेकिन मुझे उम्मीद है कि oracles के बारे में आपका प्रश्न अधिक सामान्यतः लागू होता है। यही मैं यहां बात करूंगा।)
Oracles के बारे में एक अंतर्ज्ञान
एक दैवज्ञ की अवधारणा खुद को सरल बनाने की अनुमति देने का एक तरीका है कि हम कम्प्यूटेशनल समस्याओं के बारे में कैसे बात करते हैं।
एक दैवज्ञ की अवधारणा का मूल अनुप्रयोग काल्पनिक रूप से विचार करना था कि हम क्या कर सकते हैं यदि हम कठिन समस्याओं को, यहां तक कि असंभव समस्याओं को हल कर सकते हैं, बिना यह किए कि हम सिद्धांत रूप में भी कैसे कर सकते हैं। लेकिन इन दिनों कम्प्यूटेशनल जटिलता में - विशेष रूप से क्वांटम कम्प्यूटेशन में, जैसे कि Deutsch-जोज़ा, बर्नस्टीन-वाज़िरानी और अन्य ओरेकल समस्याओं के मामलों में - स्थिति अलग है: ओरेकल एक फ़ंक्शन का वर्णन करता है जो समस्या का आधार है। तथ्य यह है कि यह 'एक दैवज्ञ' है संरचना का एक तरीका है कि हम उस फ़ंक्शन का वर्णन कैसे करें जो समस्या के केंद्र में है: ऐसा नहीं है कि हमें कभी यह नहीं सोचना चाहिए कि फ़ंक्शन की गणना कैसे की जाती है, लेकिन यह जानकारी केवल भाग के रूप में प्रदान नहीं की गई है समस्या, और यह कि हम उस फ़ंक्शन से जुड़े समय या अन्य जटिलता से चिंतित नहीं हैं।
जब हम इस दृष्टिकोण को लेते हैं, तो हम वास्तव में ऐसे उत्तर प्राप्त कर सकते हैं जो गणना में बहुत कठिन प्रश्नों से संबंधित हैं। उदाहरण के लिए, आप हम नहीं जानते है कि या तो साबित करने के लिए कैसे पता कर सकते हैं पी ≠ एनपी या पी = एनपी , लेकिन हम उस कर सकते हैं दिखाने के दैवज्ञ देखते हैं कि एक ऐसी है कि हम चाहते हैं कि दिखा सकते हैं पी ए ≠ एनपी एक । एक समस्या का समाधान करने के लिए ओरेकल ए यहां क्या करता है, कंप्यूटर की मदद नहीं करता है (अधिक सटीक रूप से, एक नियतात्मक ट्यूरिंग मशीन या एक nondeterministic ट्यूरिंग मशीन) - यह उस समस्या का प्रतिनिधित्व करता है जिसे कंप्यूटर को हल करना चाहिए। तथ्य यह है कि हम कुछ उदाहरणों में दिखा सकते हैं कि पी ए ≠ एनपी एक , मतलब नहीं है कि पी है वास्तव में से अलग एनपी : यह सिर्फ मतलब है कि सिर्फ nondeterminism का उपयोग कर वास्तव में करने के लिए गणना की एक मॉडल के लिए एक महत्वपूर्ण संसाधन है - यह आप कुशलतापूर्वक कुछ समस्याओं को हल करने की अनुमति देता है, और वहाँ कोई रास्ता नहीं है सामान्य रूप से एक नियतात्मक कंप्यूटर पर कुशलतापूर्वक नंदवादवाद का अनुकरण करना। इसलिए यदि आप A की गणना से संबंधित समस्या को हल करना चाहते हैं , तो आपको किसी भी फ़ंक्शन की संरचना के बारे में कुछ जानकारी की आवश्यकता होगी जो कुशलतापूर्वक A की गणना कर सकता है ।
यह उन मुख्य चीजों में से एक है जिनके बारे में oracles हैं: वे आपको उन तरीकों के बारे में बात करने की अनुमति देते हैं जो गणना के मॉडल समस्याओं को हल कर सकते हैं या नहीं कर सकते हैं , जब आपको समस्या के बारे में सीमित जानकारी प्रदान की जाती है।
गैर-ओरेकल समस्याओं को हल करने के लिए oracle एल्गोरिदम का उपयोग करना
Deutsch-जोज़ा एल्गोरिथ्म, या बर्नस्टीन-वाज़िरानी एल्गोरिथ्म, सिद्धांतों में नहीं एल्गोरिदम हैं जो कोई अपने स्वयं के लिए करता है। (खैर, वास्तव में नहीं - अगला खंड देखें।) वे ऐसे तरीकों के लिए खड़े होते हैं जिससे आप एक समस्या को हल कर सकते हैं । वे किन समस्याओं का समाधान करते हैं? वे आपको किसी ऐसे फ़ंक्शन की कुछ विशेषताओं की खोज करने की अनुमति देते हैं, जिसमें आप रुचि रखते हैं - चाहे वह निरंतर / संतुलित हो, या वेक्टर वेक्टर पर कुछ स्केलर-मूल्यवान रैखिक फ़ंक्शन में क्या जुड़ा हुआ है।
आप उन पर क्या कार्य करते हैं? - आप उन्हें किसी भी फ़ंक्शन पर प्रदर्शन करते हैं जिसके लिए आप उत्तर में रुचि रखते हैं।
ऑर्कल-आधारित एल्गोरिदम के रूप में इनका वर्णन बिंदु के बगल में है। ओरेकल समस्याएं मूल रूप से आपको यह जानने की अनुमति देती हैं कि, एक आदर्श क्वांटम कंप्यूटर के साथ, आप समस्या को हल कर सकते हैं, भले ही आप फ़ंक्शन के बारे में बहुत कम जानते हों , बशर्ते कि आप वास्तव में व्यवहार में फ़ंक्शन का कुशलता से मूल्यांकन कर सकते हैं। वास्तव में इस तरह के एक फ़ंक्शन का मूल्यांकन करने के लिए, निश्चित रूप से आपको ऐसा करने के लिए कुछ विवरण की आवश्यकता होगी, और इसलिए आपको ओरेकल सेटिंग की तुलना में अधिक जानकारी है; लेकिन यह आपको एक ही एल्गोरिथ्म का उपयोग करने से नहीं रोकता है।
जब आपको ओरेकल सेटिंग की तुलना में अधिक जानकारी होती है, तो क्या होता है कि अचानक ऐसे अन्य तरीके हैं जिनसे आप समस्या को हल करने में सक्षम हो सकते हैं। विशेष रूप से, यह समस्या को कुशलतापूर्वक शास्त्रीय रूप से हल करना संभव हो सकता है । (यह के साथ के रूप में ही अवलोकन है पी ए ≠ एनपी एक : यह साबित होता है वहाँ समस्या है, जिसमें कर रहे हैं कि एनपी , जो किसी भी कुशल नियतात्मक एल्गोरिथ्म कम से कम की आवश्यकता होगी वास्तविक संरचनात्मक जानकारी हल करने के लिए सक्षम होने के लिए - ताकि जब आप एक विवरण प्रदान एक 'oracle' के बजाय एक कुशलता से कम्प्यूटेशनल फ़ंक्शन के लिए, यह संभव है कि समस्या अंदर होपी ।) इसका मतलब है कि क्वांटम एल्गोरिदम का शास्त्रीय एल्गोरिदम पर समान लाभ नहीं हो सकता है जो आपके द्वारा पेश की गई विशेष समस्या को हल करने में है - और वास्तव में यह हो सकता है कि शास्त्रीय दृष्टिकोण बेहतर है (विशेष रूप से हमारे पास वर्तमान में मौजूद उपकरणों के साथ)।
अंत में, सिर्फ इसलिए कि आपके पास कुछ हल करने के लिए क्वांटम एल्गोरिदम है, इसका मतलब यह नहीं है कि यह जरूरी है कि कुछ हल करने का सबसे अच्छा तरीका है। यह निश्चित रूप से Deutsch-Josza एल्गोरिथम का सच है: अलंकृत सेटिंग में भी, यादृच्छिकता का उपयोग करना लगभग उतना ही अच्छा है, और यह बहुत बेहतर है कि हमारे पास अभी तक बड़े विश्वसनीय क्वांटम कंप्यूटर नहीं हैं! लेकिन उसके बाद फिर से...
"कार्यान्वयन" एक अलंकृत
Deutsch-जोसा एल्गोरिदम को लागू करने का उद्देश्य " हैलो, वर्ल्ड! " को लागू करने के समान है - एक दबाने वाली अनसुलझी समस्या को हल करने के लिए नहीं, बल्कि एक उपकरण का उपयोग करने का अभ्यास करने के लिए जिसे आप उम्मीद करते हैं कि अन्य चीजें करने के लिए उपयोगी होगा।
कोडिंग का अभ्यास करने के लिए, आपको एक ऑरेकल को लागू करने के विचार के साथ, और कंप्यूटर के आइनेकल के मूल्यांकन के विचार के साथ बिल्कुल आराम और आरामदायक महसूस करना चाहिए । सिद्धांत रूप में, यह वह बिंदु है जो आप करना चाहते हैं। यहां तक कि अगर आप एक शास्त्रीय एमुलेटर का उपयोग कर रहे हैं, जिसमें शास्त्रीय कंप्यूटर वास्तव में सुपरपोजिशन की सभी शाखाओं का मूल्यांकन कर रहा है और इसलिए स्पष्ट रूप से एक समस्या का उत्तर ढूंढने के लिए यह दिखावा करने के लिए कि यह क्वांटम कंप्यूटर थोड़े अधिक गोल चक्कर में काम कर रहा है, इसलिए यह बनो - आप अभ्यास कर रहे हैं कि कैसे एक उपकरण का उपयोग करें जो अन्य चीजों के लिए उपयोगी हो सकता है, और जो एक दिन शास्त्रीय कंप्यूटर पर नहीं चलाया जाएगा।
तो आपको अपने ऑरेकल को लागू करने के बारे में कैसे जाना चाहिए?
(i) यदि आप वास्तव में इस विचार के लिए प्रतिबद्ध हैं कि आप केवल अभ्यास कर रहे हैं, तो आपको यह दिखावा करने की ज़रूरत नहीं है कि आप कुछ भी जादुई कर रहे हैं। ओरेकल फ़ंक्शन को लागू करने के लिए बस किसी भी तरह से आओ, भले ही यह आकस्मिक पर्यवेक्षक के लिए स्पष्ट रूप से स्पष्ट हो या नहीं कि परिणाम निरंतर या संतुलित है। आप बस एक एल्गोरिथ्म को साकार करने का अभ्यास करने की कोशिश कर रहे हैं - चिंता न करें कि कोई आप पर दोष लगाने का आरोप लगाएगा, कि आप कैंसर का इलाज करने का दिखावा कर रहे हैं लेकिन वास्तव में लेगो के साथ खेल रहे हैं। आप कैंसर का इलाज करने का नाटक नहीं कर रहे थे , और आप जानबूझकर पसंद करके लेगो के साथ खेल रहे हैं । गले लगाओ और बस करो।
f(x)=g(x,r)rg(x,r)xr, और जहाँ यह स्पष्ट नहीं है कि इसे शास्त्रीय रूप से कैसे हल किया जाए, गैर-तुच्छ है।
g(x,r)=x⋅rx,r∈{0,1}ng(x,r)f(x)f(x)r≠0
यह बोधगम्य है कि उपरोक्त निर्माण को कुछ हद तक विस्तृत / बाधित किया जा सकता है, एक निर्माण प्राप्त करने के लिए जिसे एक स्थिर फ़ंक्शन या एक संतुलित फ़ंक्शन का मूल्यांकन करने की गारंटी दी जाती है, और जहां इन दोनों में से कोई भी स्पष्ट या मुश्किल नहीं है - लेकिन मैं ' t कैसे, इस समय के बारे में सोचो।
ध्यान रखें कि यह वास्तव में करना बहुत मुश्किल है - लेकिन अगर आप इसे करने का एक तरीका देख सकते हैं, तो यह बहुत ही सार्थक हो सकता है: ब्रेवी, गॉसेट, और कोइनिंग ने बर्नस्टीन-वाज़िरानी समस्या के लिए कुछ ऐसा किया, और इसने उन्हें अनुमति दी। क्वांटम और शास्त्रीय जटिलता के बीच एक छोटी लेकिन बिना शर्त जुदाई दिखाने के लिए , जो पिछले कई वर्षों में क्वांटम जटिलता में होने वाली अधिक दिलचस्प चीजों में से एक थी।
टी एल; डॉ
इस तथ्य पर पसीना मत करो कि आप एक '' मूल्यांकन कर रहे हैं।
यदि आपको कुछ भी पसीना आता है, तो केवल चिंता करें कि फ़ंक्शन का वास्तविक विवरण क्वांटम कंप्यूटर के बिना उसी समस्या को आसानी से हल करना संभव बना सकता है।
यदि आपकी प्रेरणा केवल क्वांटम प्रोग्रामिंग के साथ अभ्यास करना है, तो उसके बारे में भी चिंता न करें। ग्लोबल वार्मिंग जैसी योग्य समस्याओं के लिए अपनी चिंता को बचाएं। इस दौरान आप कुछ और बनाने के दौरान लेगोस के साथ खेलने का आनंद लें।