Angenommen, wir haben eine Funktion die n Bits auf m Bits abbildet (wobei m < n ist ).fnmm<n
f:{0,1}n→{0,1}m
Wir könnten natürlich eine klassische Schaltung entwerfen, um diese Operation durchzuführen. Nennen wir es . Es nimmt als Eingabe n- Bit auf. Nehmen wir an, es nimmt als Eingang X und gibt f ( X ) aus .CfnXf(X)
Nun möchten wir dasselbe mit einer Quantenschaltung tun. Nennen wir es , das als Eingabe | nimmt X ⟩ und Ausgänge | f ( X ) ⟩ . Da die Quantenmechanik linear ist, können sich die Eingangs-Qubits natürlich in einer Überlagerung aller n- Bit-Strings befinden. Die Eingabe könnte also in einem Zustand ∑ X ∈ { 0 , 1 } n α X | sein X ⟩ . Durch die Linearität wird die Ausgabe ∑ X ∈ { 0 sein ,Uf|X⟩|f(X)⟩n∑X∈{0,1}nαX|X⟩.∑X∈{0,1}nαX|f(X)⟩
Die Evolution in der Quantenmechanik ist einheitlich . Und weil es einheitlich ist, ist es reversibel. Dies bedeutet im Wesentlichen, dass, wenn Sie ein Quantentor an einen Eingangszustand | anlegen x ⟩ und einen ouput Zustand bekommen U | xU|x⟩ , können Sie immer eine inverse Gate anwenden U † an den Staat zurück | x ⟩ .U|x⟩U†|x⟩
Beachten Sie im obigen Bild sorgfältig, dass die Anzahl der Eingabezeilen (dh sechs) genau der Anzahl der Ausgabezeilen bei jedem Schritt entspricht. Dies liegt an der Einheitlichkeit der Operationen. Vergleichen Sie dies mit klassischen Operationen wie dem logischen UND, wobei eine Einzelbitausgabe 0 ergibt . Sie können die Anfangsbits 0 und 1 nicht aus dem Ausgang rekonstruieren , da gerade 0 ∧ 0 ist0∧10010∧0 und demselben Ausgang 0 zugeordnet wären. Aber betrachten Sie das klassische NICHT-Tor. Wenn die Eingabe 0 ouputs es 1 , währendwenn der Eingang1∧0001 gibt es 0 aus . Da dieses Mapping eins zu eins ist, kann es leicht als reversibles unitäres Gate implementiert werden, nämlichals Pauli-X-Gate. Um jedoch ein klassisches UND oder ein klassisches ODER-Gatter zu implementieren, müssen wir etwas mehr darüber nachdenken.10
Betrachten Sie das CSWAP-Gatter . Hier ist ein grobes Diagramm, das das Schema zeigt:
In dem SWAP-Gatter können abhängig von dem Steuerbit die anderen zwei ausgetauscht werden oder nicht. Beachten Sie, dass drei Eingangsleitungen und drei Ausgangsleitungen vorhanden sind. Es kann also als ein einheitliches Quantentor modelliert werden. Wenn nun : Wenn x = 0 ist , ist die Ausgabe 0 , wenn x = 1 ist , ist die Ausgabe y .z=0x=00x=1y
Wenn Sie bemerken, dass , geben wir ˉ x ∧ y aus, während wir x ∧ y ausgeben, wenn x = 1 ist . So konnten wir erfolgreich die Ausgabe x ∧ y erzeugenx=0x¯∧yx=1x∧yx∧y die wir wollten, obwohl wir am Ende einige "Junk" -Ausgaben hattenundx hatten. Eine interessante Tatsache ist, dass das Inverse des CSWAP-Gatters das CSWAP-Gatter selbst ist (überprüfen!).x¯∧yx
Das ist alles! Denken Sie daran, dass alle klassischen Gatter mit dem NAND-Gatter konstruiert werden können , das natürlich ein AND- und ein NOT-Gatter sein kann. Wir haben das klassische NICHT und das klassische UND-Gatter mit reversiblen Quantentoren effektiv modelliert. Um auf der sicheren Seite zu sein, können wir auch das qauntum CNOT-Gate in unsere Liste aufnehmen, da wir mit CNOT Bits kopieren können.
Daher lautet die grundlegende Botschaft, dass wir mit den Quantum CSWAP-, CNOT- und NOT-Gates jedes klassische Gate replizieren können . Übrigens gibt es einen cleveren Trick, um die "Junk" -Bits loszuwerden, die bei der Verwendung von Quantentoren entstehen, aber das ist eine andere Geschichte.
PS: Es ist sehr wichtig, die "Junk" -Bits zu beseitigen, da sie sonst zu Rechenfehlern führen können!
Referenz- und Bildnachweise: Quantenmechanik und Quantenberechnung MOOC von UC Berkeley auf edX.