Freigeben über


Vorgänge auf mehreren Qubits

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 aber alles, was Sie in einem Quantencomputer hatten, Ein-Qubit-Tore waren, dann würde ein Rechner und sicherlich ein klassischer Supercomputer seine Rechenleistung zwischen.

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

Wenn Sie zwei separate Qubits haben, eine im Zustand $\psi=\begin{bmatrix}\\\beta\end{bmatrix}$\alphaund die andere im Zustand\end{bmatrix}$\\\gamma\delta$\phi=\begin{bmatrix}, wird der entsprechende Zwei-Qubit-Zustand durch das Tensorprodukt (oder Kronecker-Produkt) von Vektoren angegeben, das wie folgt definiert ist.

$$\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__{\alpha\\{01}{\\\alpha{00}__{{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.$$

Ganz allgemein sehen Sie, dass der Quantenzustand von $n$ Qubits durch einen Einheitenvektor $v_1 \otimes v_2 \otimes\cdots\otimes v_n$ der Dimension $2 \cdot 2 \cdot 2 \cdots= 2^n$ anhand dieser Konstruktion dargestellt wird. Genau wie bei einzelnen Qubits enthält der Quantenstatusvektor von mehreren Qubits alle Informationen, die zur Beschreibung des Systemverhaltens benötigt werden. 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. Sie haben z. B.

$$\begin{\begin{align}00 \equiv\begin{bmatrix}1 \\ 0\begin{bmatrix}\end{bmatrix}\otimes 1 \\ 0 \end{bmatrix}&=\begin{bmatrix}1 \\ 0 0\\ 0 \end{bmatrix}\\ ,\qquad 01\begin{bmatrix}\equiv 1 \\ 0 0 \\ \end{bmatrix}\otimes\begin{bmatrix}1 0 \\ 1 \end{bmatrix}=\begin{bmatrix}\\ 0 0\\ \end{bmatrix},\\ 10\begin{bmatrix}\equiv 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix}\\ 0&\end{bmatrix} amp;=\begin{bmatrix}0 0 \\\\ 1 0 \end{bmatrix}\\ ,\qquad 11 \equiv\begin{bmatrix}0 \\ 1\begin{bmatrix}\end{bmatrix}\otimes 0 \\ 1\begin{bmatrix}=\end{bmatrix} 0 0\\ \\ 0\\ 1 .\end{bmatrix} \end{align} $$

Beachten Sie, dass Sie zwar immer das Tensorprodukt von zwei Einzel-Qubit-Zuständen verwenden können, 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. Es gibt z. B. keine Zustände vom Typ $\psi=\begin{bmatrix}\alpha\\\beta\end{bmatrix}$ und $\phi=\begin{bmatrix}\gamma\\\delta\end{bmatrix}$, sodass ihr Tensorprodukt dem folgenden Zustand entspricht:

$$\psi\otimes\phi=\begin{bmatrix} 1/\sqrt{{2}\\ 0 \\ 0 \\ 1/\sqrt{{2}\end{bmatrix}.$$

Ein solcher Zwei-Qubit-Status, der nicht als Tensorprodukt von Ein-Qubit-Status geschrieben werden kann, wird &verschränkter Zustand& genannt. Die beiden Qubits werden als verschränkt bezeichnet. Da der Quantenstatus nicht als Tensorprodukt einzelner Qubit-Status betrachtet werden kann, sind die Informationen, die der Status enthält, nicht einzeln auf jeglicher der Qubits 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 Quantencomputings gegenüber der klassischen Berechnung und ist für eine Reihe von Quantenprotokollen, einschließlich Quantenfehlerkorrektur, unerlässlich.

Messen von Zwei-Qubit-Zuständen

Das Messen von Zwei-Qubit-Status ist vergleichbar mit Ein-Qubit-Messungen. Messen des Status

$$\begin{bmatrix}\alpha__{\alpha\\{01}{\\\alpha{00}__{{10}\\\alpha{{11}\end{bmatrix}$$

ergibt $00$ mit der Wahrscheinlichkeit $|\alpha_{{00}|^2$, $01$ mit der Wahrscheinlichkeit $|\alpha_{01}|^2$, $10$ mit der Wahrscheinlichkeit $|\alpha_{{10}|^2$ und $11$ mit der Wahrscheinlichkeit $|\alpha_{11}|^2$. Die Variablen $\alpha_{00}, \alpha_{{01}, \alpha_{{10},$ and $\alpha_{11}$ wurden absichtlich so genannt, um diese Verbindung zu verdeutlichen. Nach der Messung, wenn das Ergebnis 00$ist$, ist der Quantenzustand des Zwei-Qubit-Systems reduziert und ist jetzt

$$ 00 \equiv\begin{bmatrix} 1 \\ 0 \\ 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. Dies liegt daran, dass der gesamte Zustand nicht auf einen Rechenbasiszustand reduziert ist, 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 gebildet wird, indem die Hadamard-Transformation $H$ auf zwei Qubits angewendet wird, die anfangs auf den &Quoten festgelegt sind; 0" Zustand:

$$H^{\otimes 2}\left( \begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix}1 0 \\ \end{bmatrix}\right) ={1}{2}\begin{bmatrix}\frac{1 & 1 & 1 amp; 1 & -1 \\ & -1 & -&\\1 & 1 amp; &-1 & -1 \\ 1 & -1 amp; -1 & -1 amp; -1 & 1 \end{bmatrix}\begin{bmatrix}1\\ 0 0\\ 0\\\frac{={1}{2}\begin{bmatrix}\end{bmatrix} 0 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 %, dass sie aufgetreten ist. Dies kann von der Tatsache abhängig sein, 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\equiv 10$ und $e_3\equiv 11$ bestehen$. Ebenso, wenn Sie an der zweiten Qubit $S$ interessiert wären, würde aus e_2\equiv 01$ und $e_3 \equiv 11$ bestehen$. Dann ist die Wahrscheinlichkeit, das gewählte Qubit als $1$ zu messen, für den Statusvektor $\psi$

$$ 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 Little-Endian-Format werden die am wenigsten signifikanten Bits an erster Stelle angezeigt. Beispielsweise wird die Zahl 4 im Little-Endian-Format durch die Zeichenfolge der Bits 001 dargestellt.

Da jede Qubit-Messung nur $0$ oder $1$ ergeben kann, ist die Wahrscheinlichkeit einer $0$-Messung einfach $1-P(\text{Ergebnis }=1$). Deshalb benötigen Sie nur eine Formel für die Wahrscheinlichkeit der Messung $von 1$.

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, weil die Wahrscheinlichkeit null ist!

Wenn Sie $\psi$ den oben angegebenen Vektor für einen einheitlichen Zustand 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. $$

Beachten Sie, dass dies nur die Summe der beiden Wahrscheinlichkeiten ist, 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\right|\end{bmatrix}\\^2.=\frac{{1}{{2} $$

das perfekt zu unserer Intuition passt. Ebenso kann der Zustand nach dem ersten Qubit als $1$ geschrieben werden.

$$\frac{\frac{e_1}{2}+\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:

$$\operatorname{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}$$

gegenüber den ersten bzw. zweiten Qubits entspricht dies der Anwendung der von ihrem Tensorprodukt gegebenen Zwei-Qubit-Einheit: $$\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 zwei beliebige Ein-Qubit-Gates anhand ihres Tensorprodukts ein Zwei-Qubit-Gate definieren, während das Umgekehrte nicht der Fall ist. 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 $\Lambda_x(U)$ gesteuert wird$. Ein Beispiel: $\Lambda_0(U) e_{{1}\otimes{\psi}=e_{1}\otimes U{\psi}$ und $\Lambda_0(U) e_{{0}\otimes{\psi}=e_{{0}\otimes{\psi}$. Hierbei sind $e_0$ und $e_1$ die Berechnungsbasisvektoren für ein einzelnes Qubit, die den Werten $0$ und $1$ entsprechen. 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, dies zu implementieren, erfordert das Erstellen einer Datenbank mit kontrollierten Versionen grundlegender Gates und das Ersetzen jedes grundlegenden Gates im ursprünglichen Einheitsvorgang durch das kontrollierte Gegenstück. Dies ist häufig sehr unwirtschaftlich und intelligente Erkenntnisse können angewandt werden, um nur einige Gates durch kontrollierte Versionen zu ersetzen, um die gleiche Auswirkung 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 gesteuertes Nicht-Gate ist z. B. nur ein normales Nicht-Gate, es wird aber nur angewendet, wenn ein klassisches Bit $1$ und kein 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-Tor$ auf das erste Qubit anwenden und dann eine CNOT zwischen den zweiten und dritten Qubits ausführen möchten, können Sie diese Transformation als ausdrucken.

\begin{\begin{align}&Ampere; (X \otimes\operatorname{CNOT}_{\mathbf{1}\otimes{12}\otimes \mathbf{\otimes\mathbf{1} \mathbf \mathbf{\mathbf{1}\otimes{\mathbf{1}) \begin{bmatrix} 0 \\ 1 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 0\begin{bmatrix} \end{bmatrix}\otimes\\ 1 0 1 \\ \end{bmatrix}\otimes\begin{bmatrix} 1\otimes\begin{bmatrix} \end{bmatrix}1\begin{bmatrix} \end{bmatrix}\otimes\\\begin{bmatrix} \\ \end{bmatrix}\otimes\\ 0 1 \end{bmatrix}\\&\qquad\qquad\equiv 0011001. \end{align}

In vielen Qubit-Systemen besteht oft die Notwendigkeit, Qubits zuzuweisen und freizugeben, die als temporärer Speicher für den Quantencomputer dienen. Ein solches Qubit gilt als helfend. 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 sie vor dem Deallocation erneut an $e_0$ zurückgegeben wird. Diese Annahme ist wichtig, denn wenn sich ein Hilfs-Qubit bei der Zuordnung mit einem anderen Qubit-Register verstrickt, wird der Hilfs-Qubit durch den Zuordnungsvorgang beschädigt. 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 Gates $H$, $T$ und CNOT bilden ein universelles Gate, das für viele Qubits festgelegt ist, da jede allgemeine unitäre Transformation in eine Reihe von zwei Qubit-Rotationen unterteilt werden kann. Anschließend können Sie die für den Zwei-Qubit-Fall entwickelte Theorie nutzen und es hier wieder verwenden, wenn Sie viele Qubits haben.

Hinweis

Während die lineare algebraische Notation, die bisher verwendet wurde, sicherlich zur Beschreibung von Multi-Qubit-Zuständen verwendet werden kann, wird sie zunehmend umständlich, wenn Sie die Größe der Zustände erhöhen. Der resultierende Spaltenvektor für eine Bitfolge der Länge 7 ist z. B. $128$ dimensional, was die Darstellung mit der zuvor beschriebenen Notierung sehr umständlich gestaltet. Stattdessen wird diracnotation, eine symbolische Kurzhand, die die Darstellung von Quantenzuständen vereinfacht, verwendet. Weitere Informationen finden Sie unter Diracnotation.