क्वांटम एल्गोरिथम को कैसे अलग किया जाता है? यदि भाषा को क्वैब के लिए डिज़ाइन किया गया है, तो सी क्या दिखेगी? क्या प्रकार बदलेंगे?
क्वांटम एल्गोरिथम को कैसे अलग किया जाता है? यदि भाषा को क्वैब के लिए डिज़ाइन किया गया है, तो सी क्या दिखेगी? क्या प्रकार बदलेंगे?
जवाबों:
जब मैंने कुछ समय पहले इस पर ध्यान दिया था, तो यह स्पष्ट था कि क्वांटम एल्गोरिदम, विशेष रूप से तेजी से नहीं, जबकि तेजी से बड़े पैमाने पर समानता की अनुमति देता है। इसलिए वे रिक्त स्थान में खोज से जुड़े मामलों में चमकेंगे, जो अनुक्रमिक हार्डवेयर के साथ व्यावहारिक नहीं हैं, यहां तक कि बड़े पैमाने पर समानांतर अनुक्रमिक हार्डवेयर भी।
क्वांटम एल्गोरिदम की एक संपत्ति यह है कि उन्हें प्रतिवर्ती होना चाहिए । किसी भी दिए गए एल्गोरिथ्म का अनुवाद एक में किया जा सकता है, जो प्रतिवर्ती है, इसे पर्याप्त रिकॉर्ड-जोड़कर इसे पीछे की ओर चलाने की अनुमति मिलती है।
एक अन्य संपत्ति यह है कि एक क्वांटम एल्गोरिदम से उत्तर प्राप्त करना एक हिट-एंड-मिस चक्कर है, क्योंकि एक गणना के अंत में आपको जो मिलता है वह कई उत्तर हैं, प्रत्येक की अपनी संभावना है। इसे इस तरह से चलाने की जरूरत है कि आप जो उत्तर चाहते हैं, उसकी उच्च संभावना है। इसमें कई बार एल्गोरिदम को आगे और पीछे चलाना शामिल हो सकता है।
की जाँच करें ग्रोवर खोजें एल्गोरिथ्म ।
ग्रोवर के एल्गोरिथ्म के मौलिक संचालन को दिखाने के लिए सम्मिलित किया गया। मान लीजिए कि कोई खोज समस्या है। संभावित उत्तर 0, 1, 2 और 3 हैं, लेकिन सही उत्तर 2 है। इसलिए क्वांटम कंप्यूटर को सभी चार राज्यों के सुपरपोजिशन में रखा गया है, और यह चरणों के अनुक्रम से गुजरता है यह देखने के लिए कि कौन सही है, और नीचे के काले बिंदुओं और तीरों की तरह इसके आयाम को प्रभावित करता है:
आप देख सकते हैं कि तीर 2 को मशीन के अंदर उल्टा कर दिया गया है, लेकिन इसके बाहर बताने का कोई तरीका नहीं है, क्योंकि केवल संभावनाएं बाहर दिखाई दे रही हैं, जो कि आयाम वाले वर्ग हैं , और जब चुकता होते हैं तो वे सभी समान होते हैं।
हालांकि, एम्पलीट्यूड का एक मतलब है, जो लाल रेखा द्वारा इंगित किया गया है, और कंप्यूटर को ऐसे चरणों के अनुक्रम के माध्यम से जाने के लिए बनाया जा सकता है जो प्रत्येक आयाम को माध्य के बारे में बताता है । जब ऐसा किया जाता है, तो एम्पलीट्यूड, और संभावनाएं, राज्य 2 में स्थानांतरण, सही उत्तर ! तो अगर मशीन देखी जाती है, तो राज्य 2 आगे चमकता है।
यह काफी सरल नहीं है। आम तौर पर यह सही उत्तर की संभावना को अधिकतम करने के लिए, प्रत्येक चक्र के अंत में आगे और पीछे मशीन के कई चक्र लेता है। इसके अलावा, किसी को इस बात का ध्यान रखना चाहिए कि यह उस समय की तुलना में अधिक न हो, क्योंकि यह आसानी से खुद को उलट सकता है।
तो वे क्यों कहते हैं कि क्वांटम कंप्यूटर इतने तेज़ हैं ? क्योंकि हर बार जब आप क्वैबिट्स की संख्या को दोगुना कर देते हैं, तो आप समानता को स्क्वायर कर लेते हैं, लेकिन आप समय की लंबाई को स्क्वायर नहीं करते हैं, इसलिए अंततः यह जीत जाता है।
क्या यह मज़ेदार नहीं है?
मुझे व्यक्तिगत रूप से इस बात में दिलचस्पी थी कि सॉफ्टवेयर शुद्धता के सत्यापन के लिए इसे कैसे लागू किया जा सकता है। अब हम इस पर परीक्षण निविष्टियों का एक गुच्छा फेंककर और (अगर यह सामान्य है) यह देखने के लिए सॉफ्टवेयर का परीक्षण करते हैं कि क्या यह एक जोर मारता है। क्वांटम कंप्यूटर में इनपुट के बहुत अधिक सघनता के खिलाफ इसे समानांतर में चलाना संभव हो सकता है और देखें कि क्या उन मामलों में से किसी ने एक जोर मारा।
जैसे अगर एल्गोरिथ्म में इनपुट 128 बाइट्स या 1024 बिट्स था, तो 2 ^ 1024 या 10 ^ 308 संभव विभिन्न इनपुट हैं। यह परीक्षण करने का कोई तरीका नहीं है कि पारंपरिक कंप्यूटर पर कई इनपुट, लेकिन एक क्वांटम कंप्यूटर उन सभी को समानांतर में आज़मा सकता है।
यदि भाषा को क्वैब के लिए डिज़ाइन किया गया है, तो सी क्या दिखेगी? क्या प्रकार बदलेंगे?
यह सी के रूप में समझ से बाहर होने के रूप में बहुत भिन्न होगा।
मुख्य मुद्दा (जैसा कि मैं इसे समझता हूं) यह है कि क्वांटम कंप्यूटिंग एक अच्छा अनिवार्य तरीके से काम नहीं करता है 'ऐसा करो, फिर वह, फिर यह दूसरी बात'। C की क्षमता को उस 'क्वांटम कंप्यूटर' के 'प्रोसेसर' में डालने की कोशिश करना यदि असंभव नहीं तो बेतहाशा अक्षमता होगी।
क्वांटम कंप्यूटरों के लिए प्रोग्रामिंग एल्गोरिदम (फिर, जैसा कि मैं उन्हें समझता हूं) कार्यात्मक प्रोग्रामिंग शैली के नक्शे / कम करने के करीब आते हैं, क्योंकि क्वांटम कंप्यूटिंग सभी उम्मीदवारों के 'कम' हिस्से में समवर्ती रूप से मौजूद है और कंप्यूटर के "फॉल आउट" की अनुमति देता है। जब मनाया।
ध्यान दें कि क्वांटम कंप्यूटर के लिए कुछ मौजूदा एल्गोरिदम हैं, भले ही डिवाइस उन्हें चलाने के लिए मौजूद न हों। उदाहरण के लिए साइमन का एल्गोरिथ्म ।
क्वांटम कंप्यूटर का सबसे प्रभावी संभव उपयोग करने के लिए, किसी को इनपुट और आउटपुट से निपटने में सक्षम होना चाहिए जो क्वांटम रजिस्टर की स्थिति है, जिसके लिए वास्तव में कोई शास्त्रीय एनालॉग नहीं है। क्वांटम सूचना के क्षेत्र में कुछ वर्षों के अनुभव से बोलते हुए, मुझे आपको चेतावनी देनी चाहिए कि कोई भी वास्तव में C * बीजगणित के अमूर्त गणित से परे इसके लिए एक अच्छा अंतर्ज्ञान नहीं है, और मुझे बताया गया है कि यह अंतर्ज्ञान अपर्याप्त है। यदि आप सापेक्षता सिद्धांत के बारे में सोचना शुरू करते हैं।
एक क्वांटम कंप्यूटर पर कुशलता से हल करने वाली समस्याओं का वर्ग बाउंडेड क्वांटम बहुपद के लिए BQP के रूप में जाना जाता है। यह BPP का क्वांटम संस्करण है, और आप इस पत्र में अधिक जानकारी प्राप्त कर सकते हैं: http://www.scottaaronson.com/papers/bqpph.pdf
मुझे कल रात एक क्वांटम एल्गोरिदम शोधकर्ता ने बताया था कि एक बहुत महत्वपूर्ण समस्या है जो बीक्यूपी-पूर्ण है: एन समीकरणों के एक रैखिक प्रणाली को हल करना। शास्त्रीय रूप से, यह गौसियन उन्मूलन के साथ ओ (एन) चरणों में हल करने योग्य है। हैरो-हासिडिम-लॉयड एल्गोरिथ्म ( http://arxiv.org/abs/0811.3171 ) इसे पॉलीलॉग (एन) में हल करता है, बशर्ते आप एक उत्तर को स्वीकार करने के लिए तैयार हों जिसमें समाधान क्वांटम राज्य के रूप में एन्कोड किया गया हो। यदि आप क्वांटम कंप्यूटर का पूर्ण उपयोग करना चाहते हैं, तो इसलिए आपको क्वांटम रजिस्टर की स्थिति के अनुरूप एक प्रकार का होना आवश्यक है।
हालाँकि मैं अभी अपनी विशेष विशेषज्ञता से थोड़ा बाहर हूं, फिर भी मैं एक अनुमान लगाऊंगा कि आप क्वांटम कंप्यूटर को तब तक प्रोग्राम कर पाएंगे जब तक आपके पास मैजिक स्टेट्स के अनुरूप एक प्रकार का एक्सेस था। हालांकि, यह एक कठिन अवधारणा है, इसके लिए विषय के कुछ अध्ययनों की आवश्यकता है।
सचेत रहें कि क्वांटम प्रोग्रामिंग भाषा होने से हम बहुत लंबे समय से हैं, क्योंकि हम क्वांटम कंप्यूटिंग अनुसंधान के एक बहुत ही आदिम स्तर पर हैं। अभी एक क्वांटम सी के लिए पूछना एलन ट्यूरिंग के पास जाने और उसे पायथन डिजाइन करने के लिए कहने जैसा होगा। हमें अभी तक वैक्यूम ट्यूब का क्वांटम संस्करण नहीं मिला है!