जटिल गुणांक के साथ हैमिल्टनियन सिमुलेशन


12

एक वैचारिक एल्गोरिथ्म के हिस्से के रूप में, मैं एक क्वांटम सर्किट (आदर्श रूप से pyQuil के साथ ) का निर्माण करना चाहूंगा जो कि फॉर्म के हैमिल्टन को अनुकरण करता है:

H=0.3Z3Z4+0.12Z1Z3+[...]+11.03Z310.92Z4+0.12iZ1Y5X4

जब यह अंतिम अवधि की बात आती है, तो समस्या यह है कि pyQuil निम्न त्रुटि फेंकता है:

TypeError: PauliTerm coefficient must be real

मैंने साहित्य में गोता लगाना शुरू किया और यह एक गैर-तुच्छ समस्या की तरह लगता है। मैं यूनिवर्सल क्वांटम हैमिल्टन पर इस पत्र में आया था जहां जटिल-से-वास्तविक एन्कोडिंग के साथ-साथ स्थानीय एन्कोडिंग पर चर्चा की जाती है। हालांकि, यह अभी भी मेरे लिए स्पष्ट नहीं है कि कोई व्यावहारिक रूप से इस तरह से कुछ कैसे लागू करेगा। क्या कोई मुझे कुछ व्यावहारिक सलाह दे सकता है कि इस समस्या को कैसे हल किया जाए?


1
यह एक त्रुटि फेंक है, जब आप है कि मैं के साथ बदलें ? Sj2(XjSjXj)2
हुसैन

3
याद रखें कि एक हैमिल्टन को हरमिटियन होना चाहिए। यह केवल गुणांक के वास्तविक हैं।
दफ्तुल्ली

1
हो सकता है कि मैं आपकी तुलना में लिए एक अलग परिभाषा का उपयोग कर रहा हूं । लेकिन बात यह है कि आप कुछ संयोजन पा सकते हैं, जिसके परिणामस्वरूप I I d 2 हैSiId2
एहसान

1
क्या आपके पास उन में कहीं और कोई शब्द नहीं है , जो हर्मिटियन संयुग्म है? एच = मैं एक बी - मैं बी एक H=iABiBA
AHusain

1
या क्या फॉर्म की सभी शर्तें ऐसी हैं, जिन्हें रद्द करना है?
हौसैन

जवाबों:


10

एक पारंपरिक हैमिल्टनियन हर्मिटियन है। इसलिए, यदि इसमें एक गैर-हर्मिटियन शब्द शामिल है, तो इसे या तो एक और शब्द के रूप में अपने हर्मिटियन कंजुगेट होना चाहिए, या 0 वजन होना चाहिए। इस विशेष मामले में, चूंकि हरमिटियन है, इसलिए गुणांक 0. होना चाहिए। यदि आप पारंपरिक हैमिल्टन के बारे में बात कर रहे हैं, तो संभवतः आपने अपनी गणना में गलती की है। ध्यान दें कि यदि शब्द का हर्मिटियन संयुग्म मौजूद नहीं है, तो आप बस इसे जोड़कर चीजों को ठीक नहीं कर सकते हैं; यह आपको पूरी तरह से अलग परिणाम देगा।ZXY

दूसरी ओर, आप गैर-हर्मिटियन हैमिल्टन को लागू करना चाह रहे होंगे । ये चीजें मौजूद हैं, अक्सर शोर प्रक्रियाओं के वर्णन के लिए, लेकिन लगभग इतने व्यापक नहीं हैं। आपको "गैर-हर्मिटियन" शब्दावली को स्पष्ट रूप से शामिल करने की आवश्यकता है, अन्यथा हर कोई बस यही सोचेगा कि आप जो कर रहे हैं वह गलत है क्योंकि यह हरमिटियन नहीं है, और एक हैमिल्टनियन को हर्मिटियन होना चाहिए। मैं उन विभिन्न क्षमताओं से परिचित नहीं हूं जो विभिन्न सिमुलेटर प्रदान करती हैं, लेकिन मुझे आश्चर्य होगा कि अगर उनके पास गैर-धर्मनिरपेक्षता है।

हालांकि, आप इसे गैर-नियतात्मक कार्यान्वयन की कीमत पर अनुकरण कर सकते हैं। इससे अधिक परिष्कृत तरीके होंगे ( इस उत्तर में लिंक देखें ), लेकिन मुझे एक विशेष रूप से बस एक का वर्णन करने दें: मैं मानने वाला हूं कि केवल एक गैर-हर्मिटियन घटक है, जो कि (पॉलिस का एक टेंसर उत्पाद) है )। मैं Paulis के इस टेन्सर उत्पाद फोन करता हूँ कश्मीर । हैमिल्टन का बाकी हिस्सा एच है । आप विकास बनाना चाहते हैं - मैं एच टी + के टी हम विकास को ट्रॉटटराइज करके शुरू करते हैं, - आई एच टी + के टी = एनi×KH

eiHt+Kt
जहांएनδटी=टी। अब हम एक व्यक्ति अवधि का अनुकरण पर काम-मैंएचδटी+Kδटी-मैंएचδटीकश्मीरδटी(जो बड़े पैमाने पर और अधिक सटीक हो जाता हैएन)। आप पहले से ही साथ Hermitian हिस्सा ऐसा है, पर ध्यान केंद्रित करने निपटने के लिए कैसे पताकश्मीरδटी=
eiHt+Kt=i=1NeiHδt+Kδt
Nδt=teiHδt+KδteiHδteKδtN
eKδt=cosh(δt)I+sinh(δt)K.

हम राज्य में एक Ancilla qubit परिचय , और हम इसे एक नियंत्रित- K गेट में नियंत्रण क्वबिट के रूप में उपयोग करते हैं । फिर हम { | | ψ , | ψ } आधार (जहां ψ | ψ = 0 )। यदि परिणाम | ψ then , फिर टारगेट क्वैब पर हमने ऑपरेशन लागू किया है | α ||ψ=α|0+β|1K{|ψ,|ψ}ψ|ψ=0|ψ , सामान्यीकरण तक। तो, अगर आप ठीक करते हैं ( 1 - | α | 2 ) / | α | 2 = tanh ( δ टी ) , तो आप पूरी तरह से है कि आपरेशन लागू किया है। यदि माप विफल हो जाता है, तो यह आपके ऊपर है कि क्या आप ठीक होने की कोशिश करना चाहते हैं (यह संभव नहीं हो सकता है) या फिर से शुरू करें।|α|2I+|β|2K(1|α|2)/|α|2=tanh(δt)


3

यह सरल MATLAB / ऑक्टेव कोड दिखाता है कि हर्मिटियन नहीं है:i0.12Z1Y2X3

z=[1 0 ; 0 -1];
x=[0 1;  1  0];
y=[0 -1i; 1i 0];

z1 = kron(z,eye(4));
y2 = kron(kron(eye(2),y),eye(2));
x3 = kron(eye(4),x);

H=0.12*1i*z1*y2*x3

आउटपुट H है:

    0     0    0 0.12    0    0     0     0
    0     0 0.12    0    0    0     0     0
    0 -0.12    0    0    0    0     0     0
-0.12     0    0    0    0    0     0     0
    0     0    0    0    0    0     0 -0.12
    0     0    0    0    0    0 -0.12     0
    0     0    0    0    0 0.12     0     0
    0     0    0    0 0.12    0     0     0

चूंकि यह एक वास्तविक मैट्रिक्स है, इसलिए हर्मिटियन का मतलब सममित है, लेकिन यह सममित नहीं है और इसलिए हरमिटियन नहीं है। शीर्ष-दायाँ त्रिकोण नीचे-दाएँ त्रिकोण के बराबर नहीं है।

हालांकि टॉप-राइट त्रिकोण नीचे-दाएं त्रिकोण का नकारात्मक है, इसलिए यह हर्मिसियन विरोधी है।

अतः हुसैन का सुझाव है कि संयुग्म पारगमन को जोड़ने के लिए, परिणाम 0. केवल इस कमांड को चलाएं:

H + H'

और आपको 0 का 8x8 मैट्रिक्स मिलेगा।

इसलिए जब आप संयुग्म संक्रमण को जोड़कर अपना हैमिल्टनियन हर्मिटियन बनाते हैं, तो आपको इस शब्द के लिए 0 मिलता है, और इसलिए आपको कोई काल्पनिक गुणांक रखने की आवश्यकता नहीं है


HMHM+HMHM

1
इसीलिए @ DaftWullie की टिप्पणी को आगे की मान्यताओं के बिना गलत माना जाता है।
हौसैन

1
@MarkFingerhuth: रिप्ले में देरी के लिए क्षमा करें। मैं दिनों के दौरान बेहद व्यस्त रहा हूं और इस महीने में हर दिन आधी रात के करीब घर आ रहा हूं। यदि आप मुझे वह पेपर दिखा सकते हैं जहां से समीकरण आते हैं, तो मैं इस बारे में सोच सकता हूं कि आपके परिणाम मौलिक रूप से कैसे भिन्न होते हैं। मैं यह कहने के लिए अपने उत्तर को बदल सकता हूं कि "पायक्विल गैर-हर्मिटियन मेट्रिसेस का समर्थन नहीं करता है, लेकिन इसका मतलब यह नहीं है कि एक अलग कार्यक्रम नहीं हो सकता है"।
user1271772

1
@MarkFingerhuth: आप कहते हैं "मैंने इसे एक सैद्धांतिक पेपर से समीकरणों के आधार पर उत्पन्न किया" जो कि सैद्धांतिक पेपर से समीकरण हैं? प्रश्न में जुड़ा पेपर 82 पेज लंबा है, क्या आप मुझे केवल यह नहीं दिखा सकते हैं कि आपने इस "हैमिल्टन" को उत्पन्न करने के लिए किस समीकरण का उपयोग किया था?
user1271772

1
@MarkFingerhuth, हाँ हम ऑफ़लाइन बात कर सकते हैं, हालाँकि मुझे इसके लिए कोई अंक नहीं मिलेगा। मुझे यहाँ अपने प्रयास के लिए केवल १ अपवोट मिला है, इसलिए प्रोत्साहन कम है।
user1271772
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.