Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel überprüft die Regeln, die verwendet werden, um Multi-Qubit-Status aus Ein-Qubit-Status zu erzeugen, und diskutiert die Gate-Vorgänge, die in einem Gate-Set aufgenommen werden müssen, um einen universellen Mehrfach-Qubit-Quantencomputer zu formieren. Diese Tools sind erforderlich, um die Gate-Sätze zu verstehen, die häufig in Q# Code verwendet werden. Sie sind auch wichtig, um Intuition darüber zu gewinnen, warum Quanteneffekte wie Veranglement oder Interferenz Quantencomputing leistungsstärker als klassisches Computing darstellen.
Single-Qubit- und Multi-Qubit-Tore
Die wahre Leistungsfähigkeit des Quanten computing wird nur deutlich, wenn Sie die Anzahl der Qubits erhöhen. Einzelne Qubits verfügen über einige gegen intuitive Funktionen, z. B. die Fähigkeit, zu einem bestimmten Zeitpunkt in mehr als einem Zustand zu sein. Wenn Sie jedoch nur Ein-Qubit-Tore in einem Quantencomputer hätten, dann würde ein Taschenrechner und sicherlich ein klassischer Supercomputer seine Rechenleistung deutlich übertreffen.
Die Quantenrechenleistung entsteht u. a. dadurch, dass die Dimension des Vektorraums der Quantenzustandsvektoren exponentiell mit der Anzahl der Qubits wächst. Das heißt, dass, während ein einzelnes Qubit auf simple Weise modelliert werden kann, die Simulation einer Quantenberechnung mit fünfzig Qubits wohl an die Grenzen der bestehenden Supercomputer stoßen würde. Wenn Sie die Größe der Berechnung um nur ein zusätzliches Qubit erhöhen, verdoppelt sich der zum Speichern des Zustands erforderliche Arbeitsspeicher und verdoppelt ungefähr die Berechnungszeit. Diese schnelle Verdoppelung der Rechenleistung ist der Grund, warum ein Quantencomputer mit einer relativ kleinen Anzahl von Qubits die leistungsstärksten Supercomputer von heute, morgen und darüber hinaus bei einigen Rechenaufgaben weit übertreffen kann.
Zwei-Qubit-Zustände
Angenommen, Sie haben zwei separate Qubits in den folgenden Zuständen:
$$ \psi=\begin{bmatrix} \alpha \\ \beta \end{bmatrix} $$ $$ \phi=\begin{bmatrix} \gamma \\ \delta \end{bmatrix} $$
Der entsprechende Zwei-Qubit-Zustand ist das Ergebnis des Tensorprodukts oder Kronecker-Produkts von Vektoren, die wie folgt definiert sind:
$$ \psi \otimes \phi = \begin{bmatrix} \alpha \\ \beta \end{bmatrix} \otimes \begin{bmatrix} \gamma \\ \delta \end{bmatrix} =\begin{bmatrix} \alpha \begin{bmatrix} \gamma \\ \delta \end{bmatrix} \\ \beta \begin{bmatrix}\gamma \\ \delta \end{bmatrix} \end{bmatrix} = \begin{bmatrix} \alpha\gamma \\ \alpha\delta \\ \beta\gamma \\ \beta\delta \end{bmatrix}. $$
Daher ist bei zwei Einzel-Qubit-Zuständen $\psi$ und $\phi$jeder der Dimension 2 der entsprechende zwei Qubit-Zustand $\psi\otimes\phi$ 4dimensional. Der Vektor
$$ \begin{bmatrix} \alpha__{{00}\\\alpha{{01}\\\alpha__{{10}\\\alpha{{11}\end{bmatrix}$$
stellt einen Quantenzustand auf zwei Qubits dar, wenn
$$ |\alpha_{{00}|^2 + |\alpha_{{01}|^2 + |\alpha_{10}|^2 + |\alpha_{{11}|^2 = 1. $$
Im Allgemeinen können Sie sehen, dass der Einheitsvektor $v_1 \otimes v_2 v_n\otimes\cdots\otimes$der Dimension $2 \cdot 2 \cdot 2 \cdots= 2^n$ den Quantenzustand von $n$ Qubits mit dieser Konstruktion darstellt. Wie bei einzelnen Qubits enthält der Quantenzustandsvektor mehrerer Qubits alle Informationen, die zum Beschreiben des Systemverhaltens erforderlich sind. Weitere Informationen zu Vektoren und Tensorprodukten finden Sie unter Vektoren und Matrizen im Quantencomputing.
Die Rechenbasis für zwei Qubit-Zustände wird durch die Tensorprodukte von 1-Qubit-Basiszuständen gebildet. Für ein Zwei-Qubit-System gibt es die folgenden vier Zustände:
$$00 \equiv\begin{bmatrix} 1 \\ 0\end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0\end{bmatrix}=\begin{bmatrix}1 \\ 0 0 0 \\\\\end{bmatrix}$$
$$01 \equiv\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}0 \\ 1 \end{bmatrix}=\begin{bmatrix} 0 \\ 1 \\ 0 0 \\\end{bmatrix}$$
$$ 10 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ 1 \\ 0 \end{bmatrix}$$
$$ 11 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}=\begin{bmatrix} 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}$$
Sie können zwar immer das Tensorprodukt von zwei Einzel-Qubit-Zuständen verwenden, um einen Zwei-Qubit-Zustand zu bilden, aber nicht alle Zwei-Qubit-Quantenzustände können als Tensorprodukt von zwei Einzel-Qubit-Zuständen geschrieben werden. Zum Beispiel gibt es keine Zustände $\psi$ und $\phi$ so, dass ihr Tensorprodukt der Zustand ist
$$ \psi \otimes \phi = \begin{bmatrix}1 / \sqrt{{2}\\0 0 \\\\ 1/.\sqrt{{2}\end{bmatrix} $$
Ein solcher Zwei-Qubit-Zustand, der nicht als Tensorprodukt von Einzel-Qubit-Zuständen geschrieben werden kann, wird als verschränkter Zustand bezeichnet; die beiden Qubits sollen verschränkt sein. Lose gesagt, da der Quantenzustand nicht als Tensorprodukt einzelner Qubitzustände betrachtet werden kann, sind die Informationen, die der Zustand enthält, nicht auf eines der Qubits einzeln beschränkt. Stattdessen werden die Informationen nicht lokal in den Korrelationen zwischen den beiden Status gespeichert. Diese Nicht-Lokalität von Informationen ist eines der wichtigsten Unterscheidungsmerkmale des Quanten computing gegenüber der klassischen Berechnung und ist für viele Quantenprotokolle, einschließlich Quantenfehlerkorrektur, unerlässlich.
Messen von Zwei-Qubit-Zuständen
Das Messen von Zwei-Qubit-Zuständen ist vergleichbar mit Einzel-Qubit-Messungen. Messen des Status
$$ \begin{bmatrix} \alpha__{{00}\\\alpha{{01}\\\alpha__{{10}\\\alpha{{11}\end{bmatrix}$$
$ergibt 00$ mit Wahrscheinlichkeit $|\alpha_{{00}|^2$, $01$ mit Wahrscheinlichkeit $|\alpha_{{01}|^2$, $10$ mit Wahrscheinlichkeit $|\alpha_{10}|^2$ und $11$ mit Wahrscheinlichkeit $|\alpha_{11}|^2$. Die Variablen $\alpha_, _{00}$, $\alpha_{01}$, $\alpha_{10}$und $\alpha_{11}$ wurden absichtlich benannt, um diese Verbindung klar zu machen. Nach der Messung, wenn das Ergebnis $00$ ist, kollabiert der Quantenzustand des Zwei-Qubit-Systems und ist jetzt
$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 0 \\\end{bmatrix}. $$
Es ist auch möglich, nur ein Qubit eines Zwei-Qubit-Quantenzustands zu messen. Wenn Sie nur ein Qubit eines Zwei-Qubit-Zustands messen, unterscheidet sich die Wirkung der Messung subtil von der Messung von zwei Qubits. Es ist anders, da der gesamte Zustand nicht auf einen Rechenbasiszustand reduziert wird, sondern auf nur ein Subsystem reduziert wird. Anders ausgedrückt: Die Messung eines Qubits eines Zwei-Qubit-Zustands reduziert nur das zugehörige Subsystem auf einen Rechenbasiszustand.
Um dies zu sehen, erwägen Sie, den ersten Qubit des folgenden Zustands zu messen, der durch Anwenden der Hadamard-Transformation $H$ auf zwei Qubits anfangs auf den Zustand 0 festgelegt wird:
$$H^{\otimes 2}\left( \begin{bmatrix} 1 \\ 0\end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0\end{bmatrix}\right ) =\frac{{1}{2}\begin{bmatrix} 1 &; 1 &; 1 &; 1 \\ 1 &; -1 &; 1 &; -1 \\ 1 &; 1 &; -1 &; -1 \\ 1 &; -1 &; -1 &; 1 \end{bmatrix}\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}=\frac{{1}{2}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}\mapsto\begin{cases}\text{ Ergebnis}= 0 &; \frac{{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \\ 0 \\ 0 \end{bmatrix}\\\text{Ergebnis }= 1 &; \frac{{1}{\sqrt{{2}}\begin{bmatrix} 0 \\ 0 \\ 1 \\ 1.\end{bmatrix}\\\end{cases} $$
Beide Ergebnisse haben eine Wahrscheinlichkeit von 50 %, aufzutreten. Dieses Ergebnis kann davon ausgehen, dass sich der Quantenzustand vor der Messung nicht ändert, wenn $0$ mit $1$ auf dem ersten Qubit getauscht wird.
Die mathematische Regel zum Messen des ersten oder zweiten Qubits ist einfach. Lassen Sie e_k der k^$-\rm-Berechnungsbasisvektor$ und $S{ der Satz aller }$e_k$ sein, sodass der fragliche Qubit den Wert $1$ für diesen Wert von $k$ verwendet.$$$ Wenn Sie beispielsweise an der Messung des ersten Qubits interessiert sind, $würde S$ aus e_1$ 10\equiv und $e_3$ 11\equiv bestehen$. Wenn Sie an dem zweiten Qubit $S$ interessiert sind, besteht es aus $e_2\equiv 01$ und $e_3 \equiv 11$. Dann ist die Wahrscheinlichkeit, das gewählte Qubit als $1$ zu messen, für den Zustandsvektor $\psi$ angegeben.
$$ P(\text{Ergebnis}= 1) =\sum_{e_k \text{ im Satz } S}\psi^\dagger e_k e_k^\dagger\psi. $$
Hinweis
In diesem Artikel wird das little-endian-Format verwendet, um die Berechnungsgrundlage zu beschriften. Im kleinen Endian-Format kommen die am wenigsten signifikanten Bits an erster Stelle. Beispielsweise stellt die Zeichenfolge der Bits 001 im little-endian-Format die Zahl 4 dar.
Da jede Qubitmessung nur 0 oder 1 liefern $kann, ist $die Wahrscheinlichkeit der Messung $0$ 1-P($Ergebnis$1)$, weshalb Sie nur eine Formel für die Wahrscheinlichkeit der Messung \text{1}=$ benötigen.$$
Die Auswirkung, die eine solche Messung auf den Status hat, kann mathematisch ausgedrückt werden als
$$ \psi \mapsto \frac{\sum_{e_k \text{ im Satz } S} e_k e_k^\dagger\psi}{\sqrt{P(\text{Ergebnis}= 1)}}. $$
Der vorsichtige Leser kann sich sorgen, was passiert, wenn der Nenner null ist. Während dieser Zustand nicht definiert ist, müssen Sie sich keine Gedanken über solche Eventualitäten machen, da die Wahrscheinlichkeit null ist.
Wenn Sie $\psi$ als den zuvor beschriebenen Vektor des Einheitszustands verwenden und sich für die Messung des ersten Qubits interessieren, dann
$$P(\text{Messung des ersten Qubits}= 1) = (\psi^\dagger e_1)(e_1^\dagger\psi)+(\psi^\dagger e_3)(e_3^\dagger\psi) =|e_1^^\dagger\psi|2 + |e_3^\dagger\psi|^2. $$
Dies ist nur die Summe der beiden Wahrscheinlichkeiten, die für die Messung der Ergebnisse $10$ und $11$ erwartet werden. Für unser Beispiel ergibt dies die Auswertung
$$ \frac{ {1}{4} \left| \begin{bmatrix} 0 & 0 & 1 & 0 \end{bmatrix}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}\right| ^2 + \frac{1}{{4}\left|\begin{bmatrix} 0 & 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} 1 \\ 1 \\ 1 \\ 1 \end{bmatrix}\right| ^2 =\frac{{1}{{2}. $$
das perfekt zu unserer Intuition passt. Ebenso kann der Zustand nach dem ersten Qubit als $1$ geschrieben werden.
$$ \frac{\frac{ }{2}e_1+\frac{e_3}{2}}{\sqrt{\frac{1}{2}}}=\frac{1}{\sqrt{2}}\begin{bmatrix} 0 0 \\\\ 1 1 \\\end{bmatrix}$$
wieder gemäß unserer Intuition.
Zwei-Qubit-Vorgänge
Wie im Fall eines einzelnen Qubits ist jede unitäre Transformation ein gültiger Vorgang für Qubits. Im Allgemeinen ist eine Transformation der Einheit von $n$ Qubits eine Matrix $U$ der Größe $2^n \times_2^n$ (sodass sie auf Vektoren der Größe $2^n$ wirkt), sodass $U^{-1}= U^\dagger$. Beispielsweise ist das CNOT-Gate (NICHT-kontrolliert) ein häufig verwendetes 2-Qubit-Gate und wird durch die folgende Einheitsmatrix dargestellt:
$$ \text{CNOT}=\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 0\end{bmatrix}$$
Wir können auch Zwei-Qubit-Gates formieren, indem wir einzelne Qubit-Gates auf beide Qubits anwenden. Wenn Sie z. B. die Tore anwenden
$$ \begin{bmatrix} a & b \\ c & d \end{bmatrix}$$
und
$$ \begin{bmatrix} e & f \\ g & h \end{bmatrix}$$
für das erste und zweite Qubit entspricht dies der Anwendung der zwei-Qubit-Unitäre des Tensorprodukts:
$$ \begin{bmatrix}a & b \\ c & d \end{bmatrix}\otimes\begin{bmatrix} e & f \\ g & h \end{bmatrix}=\begin{bmatrix} ae & af & be & bf \\ ag & ah & bg & bh \\ ce & cf & de & df \\ cg & ch & dg & dh\end{bmatrix}. $$
So können Sie zwei Qubit-Tore bilden, indem Sie das Tensorprodukt einiger bekannter Single-Qubit-Tore nehmen. Einige Beispiele für zwei Qubit-Tore sind $H \otimes H$, $X \otimes\mathbf{1}$und $X \otimes Z$.
Beachten Sie, dass während alle zwei Single-Qubit-Tore ein Zwei-Qubit-Tor definieren, indem sie ihr Tensorprodukt nehmen, ist das Gegenteil nicht wahr. Nicht alle Zwei-Qubit-Gates können als Tensorprodukt von Ein-Qubit-Gates geschrieben werden. Ein solches Gate wird als verstrickendes-Gate bezeichnet. Ein Beispiel für ein verstrickendes Gate ist das CNOT-Gate.
Die Erkenntnis hinter einem nichtkontrolliertem Gate kann auf beliebige Gates generalisiert werden. Ein kontrolliertes Tor ist im Allgemeinen ein Tor, das als Identität fungiert, es sei denn, ein bestimmter Qubit ist $1$. Sie bezeichnen eine kontrollierte Einheit, die in diesem Fall auf dem qubit bezeichneten x$ mit einem $_x(U)$\Lambda gesteuert wird$. Als Beispiel $\Lambdae_{1}\otimes{\psi}= _0(U) e_{1}\otimes U{\psi}$ und $\Lambda_0(U) e_ e_{{0}\otimes{\psi}={{0}\otimes{\psi}$, wobei $e_0$ und $e_1$ die Berechnungsbasisvektoren für ein einzelnes Qubit sind, das den Werten $0$ und $1$ entspricht. Betrachten Sie z. B. das folgende kontrollierte$Z$-Tor, dann können Sie dies ausdrücken als
$$ \Lambda_0(Z) =\begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & -1 \end{bmatrix}=(\mathbf{\mathbf{1}\otimes H)\operatorname{CNOT}(\mathbf{1}\otimes H). $$
Das effiziente Erstellen kontrollierter Einheiten ist eine große Herausforderung. Die einfachste Möglichkeit, kontrollierte Einheiten zu implementieren, erfordert die Bildung einer Datenbank kontrollierter Versionen von grundlegenden Toren und das Ersetzen jedes fundamentalen Tors im ursprünglichen Einheitsbetrieb durch sein kontrolliertes Gegenstück. Diese Methode ist häufig verschwenderisch, und häufig können Erkenntnisse verwendet werden, um nur ein paar Gatter durch gesteuerte Versionen zu ersetzen, um die gleiche Wirkung zu erzielen. Aus diesem Grund bietet das Framework die Möglichkeit, entweder die naive Methode der Steuerung durchzuführen oder dem Benutzer zu ermöglichen, eine kontrollierte Version des Einheitsgeräts zu definieren, wenn eine optimierte handgesteuerte Version bekannt ist.
Gates können auch mit klassischen Informationen gesteuert werden. Ein klassisch kontrolliertes Not-Gate ist beispielsweise ein gewöhnliches Not-Gate, das nur angewendet wird, wenn ein klassisches Bit $1$ im Gegensatz zu einem Quantenbit ist. In diesem Sinne kann ein klassisch gesteuertes Gate als if-Anweisung im Quantencode betrachtet werden, wobei das Gate nur in einer Verzweigung des Codes angewendet wird.
Wie im Fall eines Ein-Qubits ist eine Zwei-Qubit-Gategruppe universell, wenn eine beliebige$4\times 4$-Einheitsmatrix durch ein Produkt von Gates aus dieser Menge auf eine beliebige Präzision vergleichbar sein kann. Ein Beispiel für eine universelle Gate-Gruppe ist das Hadamard-Gate, das T-Gate und das CNOT-Gate. Durch die Einnahme von Produkten dieser Tore können Sie jede einheitliche Matrix auf zwei Qubits annähern.
Multi-Qubit-Systeme
Wir folgen genau den gleichen Mustern, die wir im Zwei-Qubit-Fall erforscht haben, um Multi-Qubit-Quantenstatus aus kleineren Systemen aufzubauen. Solche Status werden erstellt, indem Tensorprodukte kleinerer Status formiert werden. Betrachten Sie zum Beispiel die Verschlüsselung der Bitfolge $1011001$ auf einem Quantencomputer. Sie können dies wie folgt codieren:
$$ 1011001 \equiv\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}. $$
Quantengates funktionieren auf genau die gleiche Weise. Wenn Sie z. B. das $X-Gate$ auf den ersten Qubit anwenden und dann eine CNOT zwischen dem zweiten und dem dritten Qubit ausführen möchten, können Sie diese Transformation als darstellen.
$$ \begin{align}(X \otimes\operatorname{CNOT}_{12}\otimes\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes \mathbf{\mathbf{1}\otimes\mathbf{1}) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 0 \\ 1 \end{bmatrix}\equiv 0011001. \end{align} $$
In vielen Qubit-Systemen müssen häufig Qubits zugewiesen und freigegeben werden, die zum temporären Speichern für den Quantencomputer dienen. Ein solches Qubit wird als Hilfs bezeichnet. Standardmäßig können Sie davon ausgehen, dass der Qubit-Zustand bei der Zuordnung initialisiert wird, um $e_0$ . Sie können weiter davon ausgehen, dass das Tor wieder zu $e_0$ vor dem Deallocation zurückkehrt. Diese Annahme ist wichtig, denn wenn ein Hilfs-Qubit mit einem anderen Qubit-Register verkettet wird, wenn es zu einem Deallocated wird, dann beschädigt der Prozess der Deallocation den Hilfs-Qubit. Aus diesem Grund gehen Sie immer davon aus, dass solche Qubits vor der Veröffentlichung in ihren Anfangszustand zurückgesetzt werden.
Schließlich, obwohl neue Gates zu unserem Gateset hinzugefügt werden mussten, um universelles Quantencomputing für Zwei-Qubit-Quantencomputer zu erzielen, müssen im Multi-Qubit-Fall keine neuen Gates eingeführt werden. Die Tore $H$, $T$ und CNOT bilden ein universelles Tor auf vielen Qubits, da jede allgemeine einheitliche Transformation in eine Reihe von zwei Qubit-Drehungen unterteilt werden kann. Anschließend können Sie die für den Zwei-Qubit-Fall entwickelte Theorie verwenden und es hier wieder verwenden, wenn Sie viele Qubits haben.
Hinweis
Während die lineare algebraische Notation, die an diesem Punkt verwendet wurde, sicherlich verwendet werden kann, um Multi-Qubit-Zustände zu beschreiben, wird sie zunehmend umständlich, wenn Sie die Größe der Zustände erhöhen. Der resultierende Spaltenvektor für eine 7-Bit-Zeichenfolge ist $z. B. 128$ dimensional, wodurch es schwerfällig ist, ihn mithilfe der zuvor beschriebenen Schreibweise auszudrücken. Stattdessen wird die Dirac-Notation, eine symbolische Kurzschrift, die die Darstellung von Quantenzuständen vereinfacht, verwendet. Weitere Informationen finden Sie unter Diracnotation.