Konventionen für Quantenschaltungsdiagramme

Manchmal sind Quantenalgorithmen in einem Schaltkreisdiagramm einfacher zu verstehen als in der entsprechenden schriftlichen Matrixdarstellung. In diesem Artikel wird erläutert, wie Sie Quantenschaltungsdiagramme und deren Konventionen lesen.

Weitere Informationen finden Sie unter Visualisieren von Quantenschaltkreisdiagrammen.

Lesen von Quantenschaltungsdiagrammen

In einer Quantenschaltung fließt die Zeit von links nach rechts. Quantengates sind in chronologischer Reihenfolge angeordnet, wobei das äußerste linke Gate zuerst auf die Qubits angewendet wird.

Nehmen Sie das folgende Quantenschaltungsdiagramm als Beispiel:

Diagramm einer Quantenschaltung mit zwei Registern, einem Hadamard-Gate, einem gesteuerten Gate und einer Messung.

  1. Qubit-Register: Qubit-Register werden als horizontale Linien angezeigt, wobei jede Zeile ein Qubit darstellt. Die oberste Zeile ist das Qubitregister mit der Bezeichnung 0, die zweite Zeile das Qubitregister mit der Bezeichnung 1 usw.
  2. Quantengate: Quantenvorgänge werden durch Quantengates dargestellt. Der Begriff Quantengatter ist eine Analogie zu klassischen Logikgattern. Gates, die auf ein oder mehrere Qubit-Register wirken, werden als Kästchen dargestellt. In diesem Beispiel stellt das Symbol einen Hadamard-Vorgang dar.
  3. Kontrolliertes Gate: Kontrollierte Gates wirken auf zwei oder mehr Qubits. In diesem Beispiel stellt das Symbol ein CNOT-Gate dar. Der schwarze Kreis stellt das Steuerelement-Qubit dar, und das Kreuz innerhalb eines Kreises stellt das target Qubit dar.
  4. Messvorgang: Das Metersymbol stellt einen Messvorgang dar. Der Messvorgang verwendet ein Qubitregister als Eingabe und gibt klassische Informationen aus.

Anwenden von Quantengates

Da die Zeit von links nach rechts fließt, wird zuerst das linksste Gate angewendet. Die Aktion der folgenden Quantenschaltung ist beispielsweise die unitäre Matrix-CBA$$.

Diagramm der Quantengates, die von links nach rechts in einer Quantenschaltung angewendet werden.

Hinweis

Für die Matrixmultiplikation gilt die entgegengesetzte Konvention: Die äußerste rechte Matrix wird zuerst angewendet. In Quantenschaltungsdiagrammen wird jedoch zuerst das äußerste linke Gate angewendet. Dieser Unterschied kann manchmal zu Verwirrung führen. Daher ist es wichtig, diesen wesentlichen Unterschied zwischen der linearen algebraischen Notation und Quantenschaltungsdiagrammen zu beachten.

Ein- und Ausgaben von Quantenschaltungen

In einem Quantenschaltungsdiagramm stellen die Drähte, die in ein Quantengate eintreten, die Qubits dar, die in das Quantengate eingegeben werden, und die Drähte, die das Quantengate verlassen, stellen die Qubits dar, die vom Quantengate ausgegeben werden.

Die Anzahl der Eingaben eines Quantengates entspricht der Anzahl der Ausgaben eines Quantengates. Dies liegt daran, dass Quantenvorgänge unitär und daher umkehrbar sind. Wenn ein Quantengate mehr Ausgaben als Eingaben hätte, wäre es nicht umkehrbar und daher nicht unitär, was ein Widerspruch ist.

Aus diesem Grund gilt für jedes Feld in einem Schaltungsdiagramm, dass die Anzahl der in das Feld hineinführenden Drähte genau mit der Anzahl der aus dem Feld hinausführenden Drähte übereinstimmen muss.

Vorgänge mit mehreren Qubits

Für Multi-Qubit-Schaltungsdiagramme gelten die gleichen Konventionen wie für Ein-Qubit-Schaltungsdiagramme. Beispielsweise kann ein unitärer Zwei-Qubit-Vorgang $B$ als (H S\otimes X)$ definiert werden$, sodass die entsprechende Quantenschaltung wie folgt lautet:

Schaltdiagramm eines unitären Zwei-Qubit-Vorgangs.

$B$ lässt sich auch als Operation für ein einzelnes Zwei-Qubit-Register statt als Operation für zwei Ein-Qubit-Register auffassen, abhängig von dem Kontext, in dem die Schaltung verwendet wird.

Die vielleicht hilfreichste Eigenschaft dieser abstrakten Schaltungsdiagramme ist, dass sie eine allgemeine Beschreibung komplexer Quantenalgorithmen ermöglichen, ohne elementare Gates darstellen zu müssen. So können Sie eine Vorstellung vom Datenfluss für einen großen Quantenalgorithmus erhalten, ohne alle Details der einzelnen Unterroutinen innerhalb des Algorithmus verstehen zu müssen.

Kontrollierte Gates

Quantengesteuerte Gates sind Zwei-Qubit-Gates, die ein Single-Qubit-Gate auf ein target Qubit anwenden, wenn sich ein Kontrollqubit in einem bestimmten Zustand befindet.

Betrachten Sie beispielsweise ein quantengesteuertes Gate, das als G$ bezeichnet wird$\Lambda, bei dem der Wert eines einzelnen Qubits die Anwendung des $G-Vorgangs$ steuert. Das kontrollierte Gate $\Lambda(G)$ kann anhand des folgenden Beispiels für eine Produktzustandseingabe verstanden werden:

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$

Das bedeutet, dass das kontrollierte Gatter $G$ auf das Register anwendet, das $\psi$ enthält, wenn und nur wenn das steuernde Qubit den Wert $1$ hat. Im Allgemeinen werden solche kontrollierten Vorgänge in Leitungsdiagrammen mit dem folgenden Symbol beschrieben:

Leitungsdiagramm eines singly gesteuerten Gates.

Hier gibt der schwarze Kreis das Quantenbit an, durch das das Gate kontrolliert wird, und ein vertikaler Draht gibt die unitäre Operation an, die angewendet wird, wenn das Kontroll-Qubit den Wert $1$ annimmt.

Für die besonderen Fälle, in denen $G=X$ und $G=Z$, wird die folgende Notation verwendet, um die kontrollierte Version der Gates zu beschreiben (beachten Sie, dass das kontrollierte X-Tor das CNOT-Gate ist):

Leitungsdiagramm für Sonderfälle von gesteuerten Gates.

Q# stellt Methoden zum automatischen Generieren der kontrollierten Version einer Operation bereit, sodass der Programmierer diese Operationen nicht selbst codieren muss. Ein Beispiel hierfür wird unten gezeigt:

operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

Klassisch gesteuerte Tore

Quantengates können auch nach einer Messung angewendet werden, wobei das Ergebnis der Messung als klassisches Kontrollbit fungiert.

Das folgende Symbol stellt ein klassisch gesteuertes Gate dar, bei dem $G$ auf das klassische Steuerungsbit mit dem Wert $1$ angewendet wird:

Leitungsdiagramm, das einen gesteuerten Vorgang darstellt.

Messungsoperator

Messvorgänge verwenden ein Qubitregister, messen es und geben das Ergebnis als klassische Informationen aus.

Eine Messungsoperation wird durch ein Messgerätsymbol dargestellt. Sie akzeptiert als Eingabe immer ein Qubit-Register (durch eine durchgezogene Linie dargestellt) und gibt klassische Informationen aus (durch eine doppelte Linie dargestellt). Insbesondere sieht das Symbol des Messvorgangs wie folgt aus:

Symbol, das einen Messvorgang darstellt.

In Q#implementiert der Measure Operator den Messvorgang.

Beispiel: Unitäre Transformation

Ziehen Sie die unitäre Transformation $\text{ CNOT}_{01}(H\otimes 1)$ in Betracht. Diese Gatesequenz ist für Quantencomputing von grundlegender Bedeutung, da sie einen maximal verschränkten Zwei-Qubit-Zustand erzeugt:

$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$

Operationen mit dieser oder höherer Komplexität sind in Quantenalgorithmen und der Quantenfehlerkorrektur weit verbreitet.

Das Schaltungsdiagramm zum Erzeugen dieses maximal verschränkten Quantenzustands sieht folgendermaßen aus:

Schaltdiagramm für einen maximal verschränkten Zwei-Qubit-Zustand.

Das Symbol hinter dem Hadamard-Gate stellt ein CNOT-Tor dar, wobei der schwarze Kreis das Steuerelement-Qubit und das Kreuz innerhalb eines Kreises das target Qubit angibt. Diese Quantenschaltung wird als auf zwei Qubits (oder entsprechend zwei Register, die aus jeweils einem Qubit bestehen) wirkende Schaltung dargestellt.

Beispiel: Teleportationsschaltplan

Die Quantenteleportation ist einer der besten Quantenalgorithmus zur Veranschaulichung von Schaltungskomponenten.

Die Quantenteleportation ist ein Protokoll, das es ermöglicht, einen Quantenzustand mit Hilfe eines gemeinsamen verschränkten Zustands zwischen Sender und Empfänger und der klassischen Kommunikation zwischen ihnen zu übertragen.

Zu Lernzwecken heißt der Absender Alice, der Empfänger bob, und das zu teleportierte Qubit wird als Nachrichtenqubit bezeichnet. Alice und Bob haben jeweils ein Qubit, und Alice hat ein zusätzliches Qubit, das das Nachrichtenqubit ist.

Das folgende Schaltdiagramm veranschaulicht das Teleportationsprotokoll:

Diagramm der Quantenschaltung des Teleportationsprotokolls.

Lassen Sie uns die Schritte des Teleportationsprotokolls aufschlüsseln:

  1. Qubit-Register mit der Bezeichnung 0 ist das Nachrichtenqubit, qubit register mit der Bezeichnung 1 ist Alices Qubit, und qubit register mit der Bezeichnung 2 ist Bobs Qubit. Das Nachrichtenqubit befindet sich in einem unbekannten Zustand, und die Qubits von Alice und Bob befinden sich $\ket{0}$ im Zustand.
  2. Ein Hadamard Gate $H$ wird auf Alices Qubit angewendet. Da sich das Qubit im $\ket{0}$ Zustand befindet, ist{2}}$\frac{1}{\sqrt{ der resultierende Zustand (\ket{{0} + \ket{1})$.
  3. Ein CNOT-Gate wird auf die Qubits von Alice und Bob angewendet. Alices Qubit ist das Steuerqubit, und Bobs Qubit ist das target Qubit. Der resultierende Zustand ist $\frac{{1}{\sqrt{2}}(\ket{00} + \ket{{11})$. Alice und Bob teilen sich jetzt einen verschränkten Zustand.
  4. Ein CNOT-Gate wird auf das Nachrichtenqubit und das Qubit von Alice angewendet. Da Alices Qubit auch mit Bobs Qubit verschränkt ist, ist der resultierende Zustand ein mit drei Qubit verschränkter Zustand.
  5. Ein Hadamard Gate $H$ wird auf das Nachrichtenqubit angewendet.
  6. Alice misst ihre beiden Qubits und kommuniziert die Messergebnisse an Bob - dies spiegelt sich nicht in der Schaltung wider. Die Messergebnisse sind zwei klassische Bits, die die Werte 00, 01, 10 oder 1 annehmen können.
  7. Zwei klassisch gesteuerte Pauli-Gates werden auf Bobs Qubit angewendet, je nachdem, dass das Ergebnisbit den Wert $1$ aufweist. Der resultierende Zustand ist der ursprüngliche Nachrichtenqubitzustand.

Nächste Schritte