Hamiltonsche Simulation mit komplexen Koeffizienten


11

Als Teil eines Variationsalgorithmus möchte ich eine Quantenschaltung (idealerweise mit pyQuil ) konstruieren , die einen Hamilton-Operator der folgenden Form simuliert:

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

Wenn es um den letzten Begriff geht, besteht das Problem darin, dass pyQuil den folgenden Fehler auslöst:

TypeError: PauliTerm coefficient must be real

Ich habe angefangen, in die Literatur einzutauchen, und es scheint ein nicht triviales Problem zu sein. Ich bin auf dieses Papier über universelle Quanten-Hamiltonianer gestoßen, in dem sowohl komplexe als auch reale Codierungen sowie lokale Codierungen diskutiert werden. Mir ist jedoch immer noch nicht klar, wie man so etwas praktisch umsetzen würde. Kann mir jemand einen praktischen Rat geben, wie ich dieses Problem lösen kann?


1
Gibt es einen Fehler, wenn Sie i durch ersetzen ? Sj2(XjSjXj)2
AHusain

3
Denken Sie daran, dass ein Hamiltonianer ein Hermitianer sein sollte. Das gilt nur für die Koeffizienten, die real sind.
DaftWullie

1
Ich könnte eine andere Definition für als Sie. Aber der Punkt ist, dass Sie eine Kombination finden können, die zu i I d 2 führt . SiId2
AHusain

1
Haben Sie nicht einen anderen Begriff irgendwo in diesen , dass die hermitesch Konjugierte ist? H = i A B - i B A H=iABiBA
AHusain

1
Oder sind alle Bedingungen des Formulars so, dass diese aufgehoben werden?
AHusain

Antworten:


9

Ein herkömmlicher Hamiltonianer ist Hermitianer. Wenn es also einen nicht-hermitischen Begriff enthält, muss es entweder auch seine hermitische Konjunktion als einen anderen Begriff enthalten oder 0 Gewicht haben. In diesem speziellen Fall müsste der Koeffizient 0 sein , da selbst Hermitian ist. Wenn Sie also von herkömmlichen Hamiltonianern sprechen, haben Sie wahrscheinlich einen Fehler in Ihrer Berechnung gemacht. Beachten Sie, dass Sie, wenn das hermitische Konjugat des Begriffs nicht vorhanden ist, die Dinge nicht einfach durch Hinzufügen reparieren können. Sie erhalten ein völlig anderes Ergebnis.ZXY

Auf der anderen Seite möchten Sie möglicherweise einen nicht-hermitianischen Hamiltonianer implementieren . Diese Dinge existieren oft zur Beschreibung von Geräuschprozessen, sind aber bei weitem nicht so weit verbreitet. Sie müssen die Terminologie "nicht-hermitisch" explizit einfügen, da sonst jeder denkt, dass das, was Sie tun, falsch ist, weil es nicht hermitisch ist und ein Hamiltonianer hermitisch sein sollte. Ich bin nicht allzu vertraut mit den Funktionen, die die verschiedenen Simulatoren bieten, aber ich wäre überrascht, wenn sie eine Nicht-Hermitizität eingebaut hätten.

i×KH

eiHt+Kt
eiHt+Kt=i=1NeiHδt+Kδt
Nδt=teiHδt+KδteiHδteKδtN
eKδt=cosh(δt)I+sinh(δt)K.

|ψ=α|0+β|1K{|ψ,|ψ}ψ|ψ=0|ψ|α|2I+|β|2K(1|α|2)/|α|2=tanh(δt)


3

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

Die Ausgabe ist 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

Da es sich um eine echte Matrix handelt, bedeutet Hermitian symmetrisch, aber dies ist nicht symmetrisch und daher nicht hermitisch. Das obere rechte Dreieck entspricht nicht dem unteren rechten Dreieck.

Das obere rechte Dreieck ist jedoch das Negativ des unteren rechten Dreiecks, daher ist es anti-hermitisch.

Wenn Sie also AHussains Vorschlag machen, die konjugierte Transponierte hinzuzufügen, erhalten Sie 0. Führen Sie einfach diesen Befehl aus:

H + H'

und Sie erhalten eine 8x8-Matrix von Nullen.

Wenn Sie also Ihren Hamilton-Hermitian durch Hinzufügen der konjugierten Transponierten erstellen, erhalten Sie 0 für diesen Term, und daher müssen Sie keine imaginären Koeffizienten haben .


HMHM+HMHM

1
Deshalb ist der Kommentar von @ DaftWullie ohne weitere Annahmen falsch.
AHusain

1
@ MarkFingerhuth: Entschuldigung für die Verzögerung bei der Wiedergabe. Ich war tagsüber sehr beschäftigt und bin diesen Monat jeden Tag gegen Mitternacht nach Hause gekommen. Wenn Sie mir das Papier zeigen können, woher die Gleichungen stammen, kann ich darüber nachdenken, wie sich Ihre Ergebnisse grundlegend unterscheiden. Ich kann meine Antwort ändern und sagen: "PyQuil unterstützt keine nicht-hermitianischen Matrizen, aber das bedeutet nicht, dass ein anderes Programm dies nicht kann."
user1271772

1
@ MarkFingerhuth: Sie sagen "Ich habe es basierend auf Gleichungen aus einem theoretischen Papier generiert", welche Gleichungen aus welchem ​​theoretischen Papier? Das in der Frage verlinkte Papier ist 82 Seiten lang. Können Sie mir nicht einfach zeigen, mit welchen Gleichungen Sie diesen "Hamilton-Operator" erzeugt haben?
user1271772

1
@ MarkFingerhuth, ja, wir können offline sprechen, aber ich werde dort keine Punkte dafür bekommen. Ich habe hier nur 1 Gegenstimme für meine Bemühungen erhalten, daher ist der Anreiz gering.
user1271772
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.