Übung 4.29 aus Quantenberechnung und Quanteninformation von Nielsen und Chuang hat mich verblüfft.
Suchen Sie eine Schaltung mit Toffoli-, CNOT- und Einzel-Qubit-Gattern, die ein -Gatter (für ) ohne Arbeits-Qubits implementiert .
Ich habe herausgefunden, dass dies nicht klassisch möglich ist .
Ich habe herausgefunden, wie es mit exponentiell präzisen Gates geht (verschachteln Sie die Doppelsteuerung aus Einzelsteuerungen und Quadratwurzel der Operation Mal in sich selbst).
Ich habe versucht, die obige Konstruktion so zu verallgemeinern, dass eine lineare Kombination von gesteuerten Operationen akkumuliert wird. Wenn ich zum Beispiel 3 Steuerelemente mit den Namen A und B und C habe und einen Vektor aus den verschiedenen Fällen [0, A, B, C, AB, BC, AC, ABC] erstelle, dann:
- Das bedingungslose Anwenden einer Operation fügt [1, 1, 1, 1, 1, 1, 1, 1] hinzu.
- Durch Steuern einer Operation auf A werden [0, 1, 0, 0, 1, 1, 0, 1] hinzugefügt.
- Xoring A in C und anschließende Steuerung einer Operation auf C (dann Rückgängigmachen des xor) würde [0, 1, 0, 1, 1, 1, 0, 0] hinzufügen.
- Das Xoring (A und B) in C über ein Toffoli-Gate und das anschließende Steuern einer Operation an C würde [0, 0, 0, 1, 1, 1, 1, 0] hinzufügen.
Dann würde ich versuchen, die verschiedenen Vektoren, die ich machen kann, zu addieren (eine Wurzel von X anwenden) und zu subtrahieren (inverse Quadratwurzel anwenden), bis das Ergebnis als [0, 0, 0, 0, 0, 0, 0, N] herauskommt. .
Aber ich treffe immer wieder auf verschiedene Wände, z. B. auf Lösungen, die zu großen Vielfachen führen (dh die von mir verwendeten Tore werden exponentiell präzise, was ich für ein Nein-Nein halte) oder einfach nicht in der Lage sind, das System aufgrund des Zusammenspiels zu lösen Erzeugen von Elementen mit AND / XOR und anschließendes Lösen mit + / * als Nichtstandard oder Erstellen einer exponentiellen Anzahl von Gates.
Welche anderen Ansätze sollten Sie ausprobieren?