Ich suche nach schnellem Code oder einem schnellen Algorithmus, um zu überprüfen, ob ein gegebener Zustandsvektor nur mit den Pauli-Operationen X , Y , Z in einen anderen Zustandsvektor transformiert werden kann .
Die naive Strategie besteht darin, einfach alle Möglichkeiten zu durchlaufen , um eine Pauli-Operation (oder keine Operation) auf jedes der Qubits anzuwenden, und tatsächlich die Anwendung der Operationen ( Kosten für jedes Qubit für jeden Fall) auf einen der Zustände zu simulieren und prüfen Sie, ob der resultierende Zustandsvektor dem anderen Zustand entspricht. Sicherlich ist es möglich , dies in besser zu machen als worst case Zeit?
[Update] Ich interessiere mich speziell für die Worst-Case- Leistung. Heuristiken sind interessante und nützliche Antworten, werden jedoch nicht zur akzeptierten Antwort.
quelle
Wählen Sie ein Elementeinich von A und finden Sie seine Position in B, ohne die Phasenänderungen zu berücksichtigen. Die Positionsverschiebung identifiziert die Reihe von X. oder Y. Anwendungen, die für die Transformation benötigt werden.
Die relative Phase von( a0, b0) gibt in Schritten von - ich Umdrehungen an, wie viele Y. Gatter Sie für die Transformation benötigen. Die relative Phase von ( a1, b1) bis ( a0, b0) , dass viele Y. oder Z. Gatter auf das erste Qubit wirken. und so weiter für die relative Phase von( a2k−1,b2k−1) bis(a0,b0) Gatter, die auf das Qubitk wirken. fürY oderZ k
Wennai nicht in B erscheint, ist die Transformation nicht möglich.
Ich glaube, dass das Obige inO(n) -sh gemacht werden kann.
quelle