HHL में Eigenvalue-Inversion का गेट-स्तरीय कार्यान्वयन

Dec 28 2020

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

मैं इस संदर्भ का अनुसरण कर रहा हूं , जहां यह कहा गया है (लेम्मा 4) कि इसे नियंत्रित घुमावों के उपयोग से पूरा किया जा सकता है:

$$ U_\theta: |\widetilde{\theta} \rangle |0 \rangle \rightarrow |\widetilde{\theta} \rangle \left(\cos \widetilde{\theta} |0\rangle + sin \widetilde{\theta} |1 \rangle \right ) $$

$$U_\theta = \sum_{\widetilde{\theta} \in \{0,1\}^n} |\widetilde{\theta}\rangle \langle \widetilde{\theta}| \otimes \exp \left(-i \widetilde{\theta} \sigma_y \right) $$

कहां है $\widetilde{\theta}$ कोण का n- बिट परिमित सटीक प्रतिनिधित्व है $\theta$, तथा $\sigma_y$ वाई पाउली मैट्रिक्स।

मेरा सवाल है, रोटेशन कोण कैसे हैं $\widetilde{\theta}$ एकात्मक के लिए $U_\theta$ गणना की गई / लागू की गई, जो कि ईजेनवेल्स के प्राथमिक ज्ञान के बिना है $\lambda_j$ सिस्टम मैट्रिक्स का $A$?

मैं समझता हूं कि राज्य-सदिश $|\widetilde{\theta} \rangle$ एल्गोरिथ्म के पिछले चरण में eigenvalues ​​निकालकर प्राप्त किया जाता है $|\lambda_j \rangle$ का $A$QPE का उपयोग करना (और फिर यहाँ वर्णित के रूप में एक व्युत्क्रम + arcsin फ़ंक्शन को लागू करना ), लेकिन मुझे यकीन नहीं है कि ये कोण नियंत्रित-घुमाव गेट के लिए पैरामीटर के रूप में कैसे लागू होते हैं (एक्सपोनेंट पैरामीटर में)$U_\theta$।)

FYI करें, मैंने यह अन्य पोस्ट देखी, जहाँ यह कहा गया है: "आप ... ... (कम से कम एक अच्छा सन्निकटन) आपके eigenvalues ​​को एक रजिस्टर पर दर्ज किया गया है। यदि आप उस रजिस्टर को नियंत्रित करते हैं, तो आप इसे तय करने के लिए उपयोग कर सकते हैं। प्रत्येक eigenvector के लिए रोटेशन का कोण। "

तो मेरा सवाल यह है कि आप इसे कैसे उपयोग करते हैं [रजिस्टर युक्त$|\widetilde{\theta} \rangle$] रोटेशन के कोण को तय करने के लिए [$\widetilde{\theta}$ में $\exp$ के समारोह $U_\theta$] ”?

धन्यवाद!

जवाब

1 Alex Dec 28 2020 at 18:25

रोटेशन के कोण को तय करने के लिए रजिस्टर का उपयोग करने का मतलब निम्नलिखित है: आपके पास एक रजिस्टर है $|\tilde{\theta}\rangle$ (संभावित रूप से एक से अधिक qubit से बना है) और आप एक और रजिस्टर के घूर्णन को लागू करते हैं जो कि qubits के मूल्य पर नियंत्रित होता है $|\tilde{\theta}\rangle$। विभिन्न घुमाव जो आप अपने एनक्लेव क्वाइब पर लागू किए जा रहे विभिन्न कार्यों में परिणाम लागू करते हैं। लेकिन यह संभवतः आपको पहले से ही पता था।

किसी विशिष्ट फ़ंक्शन को लागू करने के लिए किस रोटेशन को करने का प्रश्न अधिक जटिल है, और मुझे किसी भी सामान्य समाधान के बारे में पता नहीं है। एक बार के लिए, Qiskit का HHL का अपना कार्यान्वयन है, लेकिन मुझे नहीं पता कि यह किस बिंदु पर सामान्य है। हालांकि, ऐसे अन्य उदाहरण हैं जिनमें इसे लागू करना "आसान" है, उदाहरण के लिए, एचएचएल के लिए आवश्यक प्रतिजन प्रतिलोम फ़ंक्शन। में इस पत्र , लेखकों eigenvalue उलट सबरूटीन के एक सन्निकटन लागू (में कोड Quilमें पाया जा सकता जुड़े GitLab भंडार) कि eigenvalues ​​के मामले में सटीक है कि 2 की शक्तियां हैं। 2 की शक्तियों के लिए सटीक कारण यह है क्योंकि उस मामले में उलटा बिट स्वैप के संयोजन के रूप में लिखा जा सकता है, इसलिए eigenvalue उलटा उपश्रेणी एक संग्रह है नियंत्रित SWAP फाटकों (सर्किट का एक सचित्र प्रतिनिधित्व इस पेपर में चित्र 3 में है )। लेकिन, जैसा कि मैंने पहले कहा था, मुझे अभी तक कार्यों के बड़े वर्गों को लागू करने के सामान्य तरीकों के बारे में पता नहीं है।