एन-बिट इनपुट को कैसे फेरबदल (फेरबदल) करें?


14

मुझे एक क्वांटम एल्गोरिथ्म में दिलचस्पी है जो इनपुट के रूप में एक एन-बिट अनुक्रम प्राप्त करता है और जो इस एन-बिट अनुक्रम के एक फेरबदल (अनुमत) संस्करण के रूप में उत्पादन करता है।

उदाहरण के लिए यदि इनपुट 0,0,1,1 है (तो n = 4 इस मामले में) तो संभावित उत्तर हैं:

  • 0,0,1,1
  • 0,1,0,1
  • 0,1,1,0
  • 1,0,0,1
  • 1,0,1,0
  • 1,1,0,0

ध्यान दें कि केवल एक आउटपुट उत्पन्न किया जाना चाहिए जो यादृच्छिक रूप से सभी संभव वैध आउटपुट के बीच चुना जाता है।

यह सबसे अच्छा क्वांटम एल्गोरिथ्म में कैसे लागू किया जा सकता है ?

इसके लिए एक समाधान पहले से ही उत्तर के एक भाग के रूप में प्रस्तावित है कि क्वांटम एल्गोरिथ्म कैसे बनाया जाए जो 1-बिट्स के बराबर संख्या के साथ 2 एन-बिट अनुक्रम उत्पन्न करता है? । लेकिन इस समाधान के साथ समस्या यह है कि इसके लिए लगभग सहायता की आवश्यकता होती है जो n बड़ा होने पर तेजी से विशाल हो जाता है।(n2)

ध्यान दें:

  • कृपया, शास्त्रीय एल्गोरिथ्म के चरणों को सार्वभौमिक क्वांटम कंप्यूटर में कैसे मैप किया जा सकता है, इस बारे में कोई स्पष्टीकरण दिए बिना शास्त्रीय एल्गोरिथ्म प्रदान न करें।
  • मेरे लिए "सभी संभावित अच्छे आउटपुट के बीच बेतरतीब ढंग से चुने गए" की व्याख्या करने के 2 अच्छे तरीके हैं : (1) प्रत्येक संभावित अच्छे आउटपुट के चुने जाने की समान संभावना है। (2) हर संभव अच्छे आउटपुट में एक मौका> 0 का होता है।

1
इनपुट लंबाई का एक द्विआधारी स्ट्रिंग जहां बिट्स के 1 हैं, और आउटपुट किसी भी प्रकार के संभावित क्रमपरिवर्तन हैं? यह 1 चरण के साथ एक शास्त्रीय कंप्यूटर पर किया जा सकता है। आप चाहते हैं alll संभव outputs? nk(nk)1
user1271772

नहीं, केवल एक आउटपुट उत्पन्न किया जाना चाहिए जो यादृच्छिक रूप से सभी संभावित आउटपुट के बीच चुना जाता है।
19

क्या एक शास्त्रीय एल्गोरिथ्म काफी अच्छा होगा? (आप अभी भी इसे एक क्वांटम कंप्यूटर पर चला सकते हैं।) या क्या आपको sth की आवश्यकता है। जो सबसे अच्छा शास्त्रीय एल्गोरिथ्म outperforms?
नोर्बर्ट शुच

1
@JVVA: क्यों न केवल 1 और किसी भी 0 को चुनें और एक शास्त्रीय कंप्यूटर पर दोनों को स्वैप करें?
user1271772

1
जैसा कि आपने इच्छित रैंडम वितरण को निर्दिष्ट नहीं किया है, मैं बस इन्हें यहाँ छोड़ दूंगा: दिलबर्ट और एक्सकेसीडी ;)
अली

जवाबों:


4

यह इन लाइनों के साथ अतिरिक्त साथ किया जा सकता है :logn

  1. अतिरिक्त क्वाइंट को ट्रांसफ़ॉर्म करें ताकि वे एक संख्या को समान रूप से यादृच्छिक पर चुने।k{0,,n1}

  2. C चक्रीय इनपुट क्वैब समय को स्थानांतरित करें ।k

  3. बता दें कि मूल इनपुट क्वांइट्स में से अंतिम को आउटपुट के रूप में तय किया गया है और उनमें से शेष पर पुनरावृत्ति होती है।n1

यह एक शास्त्रीय एल्गोरिदम है, लेकिन आप इसे क्वांटम कंप्यूटर पर चला सकते हैं, जैसा कि नॉर्बर्ट ने एक टिप्पणी में सुझाया है। (एल्गोरिदम के क्वांटम होने के बारे में पूछे गए प्रश्न का पहलू अभी भी मेरे लिए स्पष्ट नहीं है, इसलिए अगर मैंने क्वांटम कंप्यूटर पर सुझाए गए शास्त्रीय एल्गोरिदम को चलाना पर्याप्त नहीं है, तो यह प्रश्न के लिए उपयोगी होगा। स्पष्ट हो।)

ध्यान दें कि क्योंकि प्रश्न एक यादृच्छिक आउटपुट के लिए पूछता है, एल्गोरिदम को किसी बिंदु पर एन्ट्रापी उत्पन्न करने की आवश्यकता होती है, संभवतः माप के माध्यम से या अन्य गैर-एकात्मक ऑपरेशनों (जैसे उन्हें आरंभीकृत करने) पर। ऊपर के एल्गोरिथ्म में, यह पहला कदम है जो एन्ट्रापी उत्पन्न करता है: चरण 1 में ऑपरेशन से पहले अतिरिक्त क्वैब की स्थिति की परवाह किए बिना, उन्हें राज्य चरण 1 के बाद किया जाता है ( बाइनरी में एन्कोडेड के साथ, लें)।

1nk=0n1|kk|
k

जवाब के लिए धन्यवाद। मैं समस्या के लिए एक वास्तविक क्वांटम एल्गोरिथ्म में दिलचस्पी रखता हूं - अगर आप शास्त्रीय एल्गोरिथ्म के ऊपर क्वांटम प्रोग्राम के लिए मैप कर सकते हैं, तो यह भी ठीक है लेकिन मुझे ऐसा करने का कोई सुराग नहीं है।
JanVdA

2
मुझे लगता है कि सवाल अब ध्यान में आ रहा है: आप वास्तव में एक एल्गोरिथ्म की तलाश नहीं कर रहे हैं, आप कोड की तलाश कर रहे हैं। मैंने जो वर्णन किया है वह एक एल्गोरिथ्म है, और जो कार्य शेष है वह उस एल्गोरिथ्म (या एक अलग) को किसी भाषा में कोड के रूप में या एक क्वांटम सर्किट के निम्न-स्तरीय विवरण के रूप में लागू करना है। मेरा सुझाव है कि आप इसे और अधिक स्पष्ट करने के लिए प्रश्न को संशोधित करें - लेकिन इस बात से अवगत रहें कि आप किसी को थकाऊ और वैचारिक रूप से आपके लिए काम करने के लिए कह रहे हैं। यह सीखने का विकल्प कि यह कैसे करना है, यह कठिन लग सकता है, लेकिन लंबे समय में बेहतर समाधान हो सकता है।
जॉन वाटरस

मैंने प्रश्न में एक नोट जोड़ा है। मुझे लगता है कि हमने अवधारणा क्वांटम एल्गोरिथ्म की अलग तरह से व्याख्या की है । मेरे लिए a_classical algorithm_ एक क्वांटम एल्गोरिथ्म नहीं है, लेकिन इसे क्वांटम एल्गोरिथ्म में मैप किया जा सकता है ।
JanVdA

@JVVA: क्वांटम एल्गोरिथ्म से आपका क्या तात्पर्य है? उदाहरण के लिए, क्या आपको आवश्यकता है कि इसमें कम से कम एक गेट शामिल हो ? या कि यह कम से कम एक गेट की आवश्यकता है? या इसके लिए कुछ अन्य विशिष्ट गेट सेट की आवश्यकता होती है? आप इस एल्गोरिथ्म का उपयोग करने के लिए क्या गेट सेट चाहते हैं? HY
user1271772

क्वांटम एल्गोरिथ्म एक एल्गोरिथ्म है जिसे एक सार्वभौमिक क्वांटम कंप्यूटर के लिए प्रोग्राम में मैप (चरण स्तर पर) किया जा सकता है। क्वांटम एल्गोरिथ्म के चरणों का इनपुट और आउटपुट क्विबेट्स हैं (या उन्हें क्वैब्स की श्रृंखला में मैप किया जा सकता है)। क्वांटम एल्गोरिथ्म का अंतिम चरण = बाहर पढ़ना (अवलोकन करना) क्वैब के मान (ताकि क्विब वास्तविक बिट्स के लिए मैप हो जाते हैं) गेट सेट पर कोई प्रतिबंध नहीं है। विचार यह है कि पूर्ण एल्गोरिथ्म एक सार्वभौमिक क्वांटम कंप्यूटर पर चल सकता है।
JanVdA

3

नोट: यह उत्तर मानता है कि आप चाहते हैं कि अनुवर्ती कार्रवाई सुसंगत हो , अर्थात आप चाहते हैं कि 1/3 के बजाय की संभावना को , की एक 1/3 मौका , और की एक 1/3 मौका ।13(|001+|010+|100)001010100

सावधान रहें कि आप इस कार्य को कैसे निर्दिष्ट करते हैं, क्योंकि प्रतिवर्ती बाधाओं के कारण यह बहुत आसानी से असंभव हो सकता है। उदाहरण के लिए, इनपुट के लिए जिस पर आप GHZ स्थिति का उत्पादन करना चाहते हैं । लेकिन अगर आप इनपुट के लिए GHZ स्टेट को आउटपुट करना चाहते हैं और , जो काम नहीं करेगा। आप कई इनपुट राज्यों को एक ही आउटपुट स्थिति (डीकोहरेंस के बिना) नहीं भेज सकते। जब तक आप कहते हैं "मुझे केवल 0000111 जैसे सॉर्ट किए गए आरोही इनपुट के बारे में परवाह है, लेकिन 1110000 या 0010110 नहीं; आप उन लोगों के साथ जो चाहें कर सकते हैं", यह ठीक रहेगा।|001|31=13(|001+|010+|100)|010|100

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

आप " क्वांटम कम्प्रेशन " पर भी ध्यान देना चाह सकते हैं , जो कि बहुत करीब से बंधा हुआ है स्टेट्स ( बिट्स सेट के साथ सभी -बिट स्टेट्स की एकसमान सुपरपोजिशन ) जिसे आप प्रोड्यूस करना चाहते हैं। मुख्य अंतर यह है कि आप क्वांटम संपीड़न सर्किट को रिवर्स में चलाएंगे, और यह एक संख्या एन्कोडिंग की उम्मीद करता है "कितने लोग हैं?" इसके बजाय "मुझे सही संख्या के साथ एक राज्य दें"।|nknk

मुझे लगता है कि मैं जो कह रहा हूं वह यह है कि इस प्रकार के राज्यों का उत्पादन करना अधिक जटिल है जितना आपने उम्मीद की थी। मुझे लगता है कि इसका कारण जटिल है क्योंकि आपके आउटपुट में एम्पलीट्यूड का परिमाण आपके इनपुट की कम्प्यूटेशनल आधार स्थिति पर निर्भर करता है। उदाहरण के लिए, आप एक आउटपुट चाहते हैं, जो चार शास्त्रीय राज्यों का एक सुपरपोजिशन है, इसलिए आपके पास का एक पूर्ववर्ती है जो अंदर छिपा हुआ है । लेकिन लिए वांछित आउटपुट में छह शास्त्रीय राज्य हैं और इसलिए rangle पूर्ववर्ती छुपाता है ।|000114|41|0011|4216


मुझे आपके उत्तर को महत्व देने के लिए कुछ और अध्ययन की आवश्यकता है लेकिन मैं प्रतिवर्ती अवरोध के बारे में आपके दूसरे पैराग्राफ से पूरी तरह सहमत नहीं हूं। ध्यान दें कि आप का इस्तेमाल किया है के लिए समाधान के रूप में लेकिन वहाँ के रूप में हम काम कर रहे हैं कई और अधिक समाधान कर रहे हैं जटिल संख्याओं के साथ (उदाहरण के लिए निम्न संभव समाधान भी है13(|001+|010+|100)|00113(|001|010+i.|100)
rangle

1
@JanVdA सही, विभिन्न आउटपुट ऑर्थोगोनल बनाने के लिए चरणों का उपयोग कर सकता है। आपके प्रश्न का मेरा पठन यह था कि आप सभी मामलों में एक ही चरण चाहते थे।
क्रेग गिदनी

0

एक क्वांटम कंप्यूटर शास्त्रीय संगणना कर सकता है। इष्टतम एल्गोरिथ्म के लिए किया जाएगा:

  1. कोई भी बिट चुनें (सबसे तेज़ जिसे आप एक्सेस कर सकते हैं)।
  2. एक बिट खोजें जिसका विपरीत मान है (यदि चरण 1 में आपको 0 मिला है, तो 1 खोजें)
  3. उन्हें स्विच करें (0 1 बन जाता है और 1 0 बन जाता है)।

चरण 2 में एक बिट स्ट्रिंग के माध्यम से खोज शामिल है जो शास्त्रीय संचालन संचालन का उपयोग करता है, लेकिन यदि आप एक फ़ंक्शन का मूल्यांकन करके बिट मान प्राप्त कर सकते हैं, तो आप सक्षम हो सकते हैं ग्रोवर की क्वांटम एल्गोरिथ्म का उपयोग करने के लिए ऑपरेशन के साथ विपरीत बिट खोजने के लिए । NO(N)nthO(N)


धन्यवाद, लेकिन एल्गोरिथम केवल 2 बिट्स स्विच करेगा (इसलिए यह सभी क्रमपरिवर्तन उत्पन्न नहीं करेगा) और यह अभी भी एक शास्त्रीय एल्गोरिथ्म है, जबकि मैं एक क्वांटम एल्गोरिदम देखना चाहूंगा।
JanVdA
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.