कचरे के ढेर को खत्म करना क्यों ज़रूरी है?


19

अधिकांश प्रतिवर्ती क्वांटम एल्गोरिदम टॉफोली गेट (CCNOT) या फ्रेडकिन गेट (CSWAP) जैसे मानक फाटकों का उपयोग करते हैं। के बाद से कुछ कार्यों के लिए एक निरंतर आवश्यकता होती है |0 इनपुट और इनपुट और आउटपुट की संख्या के रूप में बराबर है, कचरा qubits (या जंक qubits ) अभिकलन के पाठ्यक्रम में दिखाई देते हैं।

तो, एक प्रिंसिपल सर्किट की तरह वास्तव में हो जाता है | एक्स | 0 | f ( x ) | जी , जहां | g g का मतलब कचरा पात्र (यों) से है।|x|f(x)|x|0|f(x)|g
|g

मूल मूल्य को संरक्षित करने वाले सर्किट के साथ समाप्त होता है |x|0|0|x|f(x)|g

मैं समझता हूं कि यदि हम चाहते हैं कि सर्किट प्रतिवर्ती हो, लेकिन कई स्रोत हैं तो कचरा पात्र अपरिहार्य हैं दावा है कि उन्हें खत्म करना महत्वपूर्ण है। ऐसा क्यों है?1


सूत्रों के अनुरोधों के कारण, उदाहरण के लिए देखेंयह arXiv पेपर, पृष्ठ 8, जो कहता है1

हालांकि, इनमें से प्रत्येक सरल ऑपरेशन में कई अतिरिक्त, सहायक क्वैबिट होते हैं, जो मध्यवर्ती परिणामों को संग्रहीत करने के लिए सेवा करते हैं, लेकिन अंत में प्रासंगिक नहीं हैं। किसी भी गैर-लाभकारी [क्रम] स्थान को बर्बाद न करने के लिए, इसलिए इन qubit को 0 पर रीसेट करना महत्वपूर्ण है ताकि हम उन्हें फिर से उपयोग करने में सक्षम हों

या यह अर्क्सिव पेपर जो कहता है

एक कुशल क्वांटम सर्किट को डिजाइन करने में कचरा क्विबिट और एनीला क्वाइब को हटाना आवश्यक है।

या कई अन्य स्रोत - एक गूगल खोज कई हिट पैदा करता है।

जवाबों:


17

क्वांटम हस्तक्षेप क्वांटम कम्प्यूटेशन का हृदय और आत्मा है। जब भी आपके पास जंक क्वैबिट्स होते हैं, तो वे हस्तक्षेप को रोकने के लिए जा रहे हैं। यह वास्तव में एक बहुत ही सरल लेकिन बहुत महत्वपूर्ण बिंदु है। मान लीजिए कि हमारे पास एक फ़ंक्शन f:{0,1}{0,1} जो किसी एक बिट को एक बिट में मैप करता है। कहो f एक बहुत ही सरल कार्य है, जैसे f(x)=x । मान लीजिए कि हमारे पास एक सर्किट Cf जो इनपुट x और आउटपुट f(x)। अब, ज़ाहिर है, यह एक प्रतिवर्ती सर्किट था, और इसे एकात्मक परिवर्तन का उपयोग करके लागू किया जा सकता है |x|x । अब, हम 1 में फ़ीड कर सकते हैं12|0+12|1और उत्पादन भी होगा12|0+12|1। आइए अब हमहैमर्ड ट्रांसफॉर्मगेट कोलागू करेंऔर जो हमें मिलता है उसे मापें। यदि आप इस राज्य में Hadamard परिवर्तन लागू करते हैं12|0+12|1|001

लेकिन, मान लें कि हमने इस तरह से एक सर्किट का उपयोग करते समय एक मध्यवर्ती चरण में कुछ कबाड़ बनाया:

यहाँ छवि विवरण दर्ज करें

|x|0=(12|0+12|1)|012|00+12|11. If we apply the Hadamard transform to the first qubit, we end up with:

12|00+12|01+12|1012|11

If we make a measurement on the first qubit we get 0 with probability 12, unlike in the previous case where we could see 0 with probability 1! The only difference between the two cases was the creation of a junk bit in an intermediate step, which was not gotten rid of, thus leading to a difference in the final result of the computation (since the junk qubit got entangled with the other qubit). We will see a different interference pattern than in the previous case when the Hadamard transform is applied. This is exactly why we don't like to keep junk around when we are doing quantum computation: it prevents interference.

Source: Professor Umesh Vazirani's lecture on EdX.


Should the answer be 12|00+12|01+12|1012|11? i.e. -ve in the last term? Thanks a lot!
HYW

1
@HYW Yes, thanks, that was a typo.
Sanchayan Dutta

3

If you want to use a quantum circuit as a subroutine (such as an oracle) to a quantum algorithm that makes use of interference, you must allow interference by a process known as uncomputing your ancillary (or, in your words, garbage) qubits. Uncomputing is always possible: Since your gates are reversible, you can just apply their inverse. That is, after the step you mentioned, |एक्स|0|0|एक्स|(एक्स)|जी, आप एक और संगणना (या असंबद्धता) करते हैं जो आगे बढ़ती है |एक्स|(एक्स)|0

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