Ich schlage vor, Eigenwert- / Eigenvektor-Schätzprotokolle zu betrachten. Es gibt viel Flexibilität, um das Problem so einfach oder so schwer zu machen, wie Sie möchten.
Beginnen Sie mit der Auswahl von zwei Parametern, und . Sie möchten eine Qubit-Einheit entwerfen, die Eigenwerte der Form für ganze Zahlen . Stellen Sie sicher, dass mindestens einer dieser Eigenwerte eindeutig ist, und nennen Sie ihn . Stellen Sie außerdem sicher, dass ein einfacher Produktzustand, z. B. , eine Überlappung ungleich Null mit dem Eigenvektor des Eigenwerts .nknUe−2πiq/2kqω|0⟩⊗nω
Das Ziel wäre es, einen Phasenschätzungsalgorithmus zu implementieren, dem der Wert mitgeteilt wird und der die Aufgabe hat, einen Vektor , der der Eigenvektor ist, der dem Eigenwert . Im Allgemeinen umfasst dies eine Schaltung mit Qubits (es sei denn, Sie benötigen Ancillas, um Controlled- zu implementieren ).k|ψ⟩ωn+kU
Dies funktioniert wie folgt:
Richten Sie zwei Register ein, eines von Qubits und das andere von Qubits. ( Verwendung von Quantenregistern )kn
Jedes Qubit wird im Zustand initialisiert . ( Initialisierung von Quantenregistern )|0⟩
Wenden Sie einen Hadamard auf jedes Qubit im ersten Register an ( Single-Qubit-Gates ).
Wenden Sie vom Qubit im ersten Register das kontrollierte und zielen Sie auf das zweite Register ( Multi-Qubit-gesteuerte Gates ).rU2r
Wenden Sie die inverse Fourier-Transformation auf das erste Register an und messen Sie jedes Qubit des ersten Registers auf der Standardbasis. Diese können kombiniert werden, um die halbklassische Fourier-Transformation zu implementieren . ( Messung und Weitergabe klassischer Daten )
Für das korrekte Messergebnis befindet sich das zweite Register im gewünschten Zustand .|ψ⟩
Der Einfachheit halber könnten Sie , wählen , sodass Sie eine Einheitsmatrix mit Eigenwerten benötigen . Ich würde so etwas wie
wobei das kontrollierte-NICHT bezeichnet. Es gibt nur einen Eigenvektor mit dem Eigenwert -1, nämlich , und Sie kann mit den Auswahlmöglichkeiten von und , um die Implementierung von mithilfe der Zerlegung in Bezug auf einen universellen Gate-Satz zu untersuchen (ich würde dies wahrscheinlich als vorläufiges Problem festlegen). Dann gesteuert-n=2k=14×4±1
(U1⊗U2)C(U†1⊗U†2),
C|ψ⟩=(U1⊗U2)|1⟩⊗(|0⟩−|1⟩)/2–√U1U2UUlässt sich einfach implementieren, indem das gesteuerte NICHT durch ein gesteuertes gesteuertes NICHT-Tor (Toffoli) ersetzt wird. Schließlich ist die inverse Fourier-Transformation nur ein Hadamard-Gate.
Für etwas komplexeres setzen Sie und ersetzen Sie durch die Quadratwurzel des Swap-Gates
mit und .C ( 1 0 0 0 0 1k=3Cω=e±iπ/4| & psgr;⟩=(U1⊗U2)(|01⟩±|10⟩)/√
⎛⎝⎜⎜⎜⎜⎜1000012√i2√00i2√12√00001⎞⎠⎟⎟⎟⎟⎟
ω=e±iπ/4|ψ⟩=(U1⊗U2)(|01⟩±|10⟩)/2–√