Wie füge ich 1 + 1 mit einem Quantencomputer hinzu?


29

Dies kann als Ergänzung zur Software angesehen werden. Wie kann ein Quantencomputer grundlegende mathematische Aufgaben auf Hardwareebene ausführen?

Die Frage wurde von einem Teilnehmer des 4. Netzwerks des spanischen Netzwerks für Quanteninformation und Quantentechnologien gestellt . Der Kontext, den die Person gegeben hat, war: " Ich bin ein Materialwissenschaftler. Sie führen fortgeschrittene hochentwickelte theoretische Konzepte ein, aber ich habe Probleme, mir den praktischen Betrieb eines Quantencomputers für eine einfache Aufgabe vorzustellen. Wenn ich Dioden, Transistoren usw. verwenden könnte, könnte ich finde ich leicht heraus, welche klassischen Operationen ich ausführen muss, um 1 + 1 zu addieren. Wie würden Sie das im Detail auf einem Quantencomputer tun? "

Antworten:


21

Gemäß der verknüpften Frage besteht die einfachste Lösung nur darin , den klassischen Prozessor zu veranlassen, solche Operationen durchzuführen, wenn dies möglich ist . Natürlich ist das möglicherweise nicht möglich, daher möchten wir einen Addierer erstellen .

Es gibt zwei Arten von Einzelbitaddierern - den Halbaddierer und den Volladdierer . Der Halbaddierer nimmt die Eingänge und B und gibt die "Summe" (XOR-Verknüpfung) S = A B und den "Übertrag" (UND-Verknüpfung) C = A B aus . Ein Volladdierer hat auch den ‚carry in‘ C i n Eingang und der Ausgang ‚durchführen‘ C o u t und ersetzt C . Dies ergibt S = A B C i nABS=ABC=ABCinCoutCS=ABCinund .Cout=Cin(A+B)+AB


Quantenversion des Halbaddierers

Betrachten des CNOT-Gatters im Qubit-Register das das Register B steuert : CNOT A B | 0 A | 0 BAB die den Ausgang des unmittelbar gibtBRegister alsAB=S. Der Übertrag muss jedoch noch berechnet werden, und der Zustand desB-Registers hat sich geändert, sodass auch die UND-Operation ausgeführt werden muss. Dies kann mit dem 3-Qubit-Toffoli-Gate (Controlled-CNOT / CCNOT) erfolgen. Dies kann unter Verwendung der RegisterAundBals Steuerregister und durch Initialisieren des dritten Registers(C)im Zustand| erfolgen 0

CNOTAB|0A|0B=|0A|0BCNOTAB|0A|1B=|0A|1BCNOTAB|1A|0B=|1A|1BCNOTAB|1A|1B=|1A|0B,
BAB=SBAB(C)|0und gibt den Ausgang des dritten Registers als . Das Implementieren von Toffoli in den Registern A und B, die das Register C steuern, gefolgt von CNOT mit A, das B steuert, ergibt die Ausgabe des Registers B als die Summe und die Ausgabe des Registers C als den Übertrag. Ein Quantenschaltungsdiagramm des Halbaddierers ist in Fig. 1 gezeigt.AB=CABCABBC

Schaltplan eines Halbaddierers

Abbildung 1: Schaltplan eines Halbaddierers, bestehend aus Toffoli, gefolgt von CNOT. Die Eingangsbits sind und B und ergeben die Summe S mit C ausführen .ABSC


Quantenversion des Volladdierers

4ABCin11|0|A|B|Cin|0

  1. AB1|A|B|Cin|AB
  2. AB|A|AB|Cin|AB
  3. BCin1|A|AB|Cin|AB(AB)Cin=Cout
  4. BCin|A|AB|ABCin=S|Cout

ABAB

|ψout=|A|B|S|Cout

Cin2

Quantenversion des Volladdierers

ABCinSCout


Quantenversion des Ripple-Carry-Addierers

Eine einfache Erweiterung des Volladdierers ist ein Ripple-Carry-Addierer, der als Ripple-Carry-In des nächsten Addierers in einer Reihe von Addierern bezeichnet wird und beliebig große (wenn auch langsame) Summen zulässt. Eine Quantenversion eines solchen Addierers finden Sie zB hier


Tatsächliche Implementierung eines Halbaddierers

Für viele Systeme ist die Implementierung eines Toffoli-Gatters alles andere als einfach, ein einzelnes Qubit-Gatter (oder sogar zwei Qubit-Gatter) zu implementieren. Diese Antwort gibt eine Möglichkeit, Toffoli in mehrere kleinere Tore zu zerlegen. In realen Systemen wie IBMQX kann es jedoch auch Probleme geben, bei denen Qubits als Ziele verwendet werden können. So sieht eine echte Implementierung unter IBMQX2 aus: Einfacher Qubit-Halbaddierer unter IBMQX2

Abbildung 3: Implementierung eines Halbaddierers unter IBMQX2. Zusätzlich zum Zerlegen des Toffoli-Gatters in mehrere kleinere Gatter sind zusätzliche Gatter erforderlich, da nicht alle Qubit-Register als Ziele verwendet werden können. Die Register q [0] und q [1] werden addiert, um die Summe in q [1] und den Übertrag in q [2] zu erhalten. In diesem Fall sollte das Ergebnis q [2] q [1] 10 sein. Wenn Sie dies auf dem Prozessor ausführen, erhalten Sie das richtige Ergebnis mit einer Wahrscheinlichkeit von 42,8% (obwohl dies immer noch das wahrscheinlichste Ergebnis ist).


Gibt es Quantencomputer-Addierer?
John Duffield

@JohnDuffield Ich bin mir nicht sicher, ob Sie ungefähre Quantenaddierer (Zustandsaddierer) meinen (genaue Zustandsaddierer sind anscheinend verboten) oder Implementierungen von "klassischen" Addierern auf einem Quantencomputer - ich habe diesen speziellen Code jedoch nicht ausprobiert - oder etwas anderes ?
Mithrandir24601

Wie sind die Zahlen dargestellt? Ist es in Binary?
user3483902

01|0|1A01B

@ Mithrandir24601: ist das wichtig? Ist die Antwort nicht in jedem Fall nein? Ich habe selbst einen Paralleladdierer gebaut. Ich habe einen Abschluss in Informatik.
John Duffield

6

`` Wenn ich Dioden, Transistoren usw. verwenden würde, könnte ich mir leicht die klassischen Operationen vorstellen, die ich ausführen muss, um 1 + 1 zu addieren. Wie würden Sie das im Detail auf einem Quantencomputer machen? ''

Beeindruckend! Ich vermute, dass die meisten Leute nicht so einfach selbst herausfinden können, wie man Dioden und Transistoren kombiniert, um eine klassische Zwei-Bit-Addition zu implementieren (obwohl ich nicht bezweifle, dass dieser Materialwissenschaftler dies wahrscheinlich kann). ;)

Theoretisch ist die Art und Weise, wie Sie einen klassischen Addierer implementieren, in einem klassischen Computer und einem Quantencomputer ziemlich ähnlich: Sie können dies in beiden Fällen tun, indem Sie ein Toffoli-Gatter implementieren ! (Siehe die Antwort von @ Mithrandir24601.)

Aber der Materialwissenschaftler möchte wahrscheinlich verstehen, wie ein solches Gate (oder eine Äquivalenzsequenz anderer Quantentore) auf einem physikalischen Gerät implementiert werden kann. Es gibt wahrscheinlich unendlich viele Möglichkeiten, dies mit verschiedenen Quantentechnologien zu tun, aber hier sind zwei direkte Realisierungen dieses Gates mit eingefangenen Ionen und supraleitenden Qubits:

  1. Realisierung des Quantentoffoli-Gates mit gefangenen Ionen, T. Monz, K. Kim, W. Hänsel, M. Riebe, AS Villar, P. Schindler, M. Chwalla, M. Hennrich und R. Blatt, Phys. Rev. Lett. 102 , 040501, arXiv: 0804.0082 .
  2. Implementierung eines Toffoli-Gates mit supraleitenden Schaltkreisen A. Fedorov, L. Steffen, M. Baur, MP da Silva und A. Wallraff Nature 481 , 170–172, arXiv: 1108.3966 .

Sie können das Toffoli-Gate auch als Folge von Single-Qubit- und CNOT-Gates zerlegen. https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpgBildbeschreibung hier eingeben In Nielsen erfahren Sie, wie Sie diese mit Photonik, Cavity-QED und gefangenen Ionen implementieren und Chuang .


Ich war nicht der Materialwissenschaftler, sondern, da die unendliche Diskussion immer noch unbefriedigend und abstrakt war, derjenige, der verstand, wonach er fragte, googelte und ihm eine minimale, aber zufriedenstellende Antwort zeigte (a Halbaddierer auf Quantiki) in Bezug auf Quantentore.
Agaitaarino

5

Eine neue Methode zur Berechnung von Summen auf einem Quantencomputer wird vorgestellt. Diese Technik verwendet die Quanten-Fourier-Transformation und reduziert die Anzahl der für die Addition erforderlichen Qubits, indem die Notwendigkeit für temporäre Übertragsbits beseitigt wird.

PDF-Link für 'Addition auf einem Quantencomputer' , verfasst von Thomas G. Draper, verfasst am 1. September 1998, überarbeitet am 15. Juni 2000.

Um den obigen Link zusammenzufassen, erfolgt die Addition nach folgendem Schaltplan (ab Seite 6):

Bildbeschreibung hier eingeben

So zitieren Sie den Artikel (noch einmal, Seite 6):

n


1

Parallele Berechnung der Summe zweier Qubits

Ich wollte eine parallele Berechnung der Summe von zwei Qubits erleben, wobei eine Überlagerung von 0 und "1 mit Phase -1 " zu 1 hinzugefügt wurde. und ich war von der Antwort von Mithrandir24601 inspiriert. Die Ergebnisse sind unten. Ich hoffe, meine Antwort steht im Zusammenhang mit dem, was gefragt wurde. Es wird gezeigt, wie 1 gleichzeitig zu 1 und zu 0 addiert wird. Während jedoch beide Antworten berechnet werden, können wir die Antwort jedes Mal, wenn die Berechnung ausgeführt wird, nur auf eine der Berechnungen auslesen. Sie können sehen, dass aus 1000 Läufen 417 Mal die Antwort "1" (1 = 0 + 1) und 380 Mal die Antwort "2" (2 = 1 + 1) ausgelesen wurde.

(34 Mal haben wir nichts bekommen, als das 1-Bit zu nichts gedreht wurde, 54 Mal haben wir 0 = 0 + 1, 29 Mal haben wir 1 = 1 + 1, 28 Mal haben wir 2 = 0 + 1, 42 Mal haben wir 3 = 0 + 1 und 16-mal ergibt sich 3 = 1 + 1, wobei jeder dieser Fehler zweifelsohne aus Bit-Flips, Phasen-Flips oder beiden resultiert. Bildbeschreibung hier eingeben

Ich dachte eine Initiale π

Eine Überlagerung von 0 und "1 mit Phase -1 " in einem Ein-Qubit-Register wird zu 1 in einem Zwei-Qubit-Register addiert. Bei drei Qubits sind die ersten beiden Qubits von links nach rechts die Summe (oder das 3. und 4. von 5) und das am weitesten rechts stehende Qubit zeigt an, ob der Grundzustand (als 0 behandelt) hinzugefügt wurde oder der angeregte Zustand (1 mit einem Anfangsbuchstaben) Phase von -1) wurde zugegeben.

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.