Diracnotation in Quantum Computing
Diracnotation ist eine präzise und leistungsstarke Möglichkeit, Quantenzustände und Operationen zu beschreiben. Es ist nach dem Physiker Paul Dirac benannt, der die Notation in den 1930er Jahren entwickelte. Dirac-Notation wird im Quantencomputing verwendet, um Quantenzustände, Quantenoperationen und Quantenmessungen zu beschreiben.
In diesem Artikel wird dirac notation vorgestellt und gezeigt, wie Sie es verwenden können, um Quantenzustände und -vorgänge zu beschreiben.
Vektoren in Dirac-Notation
Es gibt zwei Arten von Vektoren in der Dirac-Notation: der Bra--Vektor, der einem Zeilenvektor entspricht, und der Ket--Vektor, der einem Spaltenvektor entspricht. Deshalb wird die Dirac-Notation auch bra-ket-Notation genannt.
Wenn $\psi$ ein Spaltenvektor ist, dann können Sie ihn in der Dirac-Notation als $\ket{\psi}$ schreiben, wobei das $\ket{\cdot}$ bedeutet, dass es sich um einen ket Vektor handelt.
In ähnlicher Weise wird der Zeilenvektor $\psi^\dagger$ als $\bra{\psi}$ ausgedrückt, was ein bra-Vektor ist. Anders ausgedrückt, $\psi^\dagger$ erhalten wir, indem wir eine eingabeseitig komplexe Konjugation auf die Elemente der Transponierung von $\psi$ anwenden. Die bra-ket-Notation impliziert direkt, dass $\braket{\psi|\psi}$ das innere Produkt des Vektors $\psi$ mit sich selbst ist, was gemäß Definition $1$ ist.
Allgemeiner ausgedrückt: Wenn $\psi$ und $\phi$ Quantenzustandsvektoren sind, ist deren inneres Produkt $\braket{\phi|\psi}$. Das innere Produkt impliziert, dass die Wahrscheinlichkeit, den Zustand $\ket{\psi}$ als $\ket{\phi}$ zu messen, $|\braket{\phi|\psi}|^2$ beträgt.
Die Rechenbasiszustände $0$ und $1$ werden als $\begin{bmatrix} 1 \ 0 \end{bmatrix}=\ket{{0}$ bzw. $\begin{bmatrix} 0 \ 1 \end{bmatrix}=\ket{1}$dargestellt.
Beispiel: Darstellen des Hadamard-Vorgangs mit Dirac-Notation
Lassen Sie uns das Hadamard-Gate $H$ auf die Quantenzustände $\ket{0}$ und $\ket{1}$ mit Dirac-Notation anwenden:
$ \frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix}=H\ket{{0}=\ket{+}$
$$\frac{1}{\sqrt{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix}=H\ket{{1}=\ket{-}$$
Die resultierenden Zustände entsprechen den Einheitsvektoren in den Richtungen $+x$ und $-x$ auf der Bloch-Kugel. Diese Zustände können auch mithilfe der Dirac-Notation als Summen von $\ket{0}$ und $\ket{1}$ erweitert werden:
$$\ket{+}=\frac{{1}{\sqrt{2}}(\ket{0} + \ket{1}) $$
$$\ket{-}=\frac{1}{\sqrt{{2}}(\ket{0} - \ket{1}) $$
Berechnungsbasisvektoren
Jeder Quantenzustand kann immer als Summen von rechenbasierten Basisvektoren ausgedrückt werden, und solche Summen werden leicht mit Dirac-Notation ausgedrückt. Das Gegenteil trifft auch zu, da die Zustände $\ket{+}$ und $\ket{-}$ auch eine Basis für Quantenzustände bilden. Dies können Sie daran erkennen, dass
$$\ket{0}=\frac{1}{\sqrt{2}}(\ket{+} + \ket{-}) $$
$$\ket{1}=\frac{1}{\sqrt{2}}(\ket{+} - \ket{-}) $$
Betrachten Sie als Beispiel für die Dirac-Notation die „Braket“ $\braket{0|1}$, bei der es sich um das innere Produkt zwischen $0$ und $1$ handelt. Dies kann wie folgt ausgedrückt werden:
$$\braket{0 | 1 1}=\begin{bmatrix}& 0 0 \end{bmatrix}\begin{bmatrix}\\ 1\end{bmatrix}=0. $$
In diesem Beispiel sind $\ket{{0}$ und $\ket{{1}$ orthogonale Vektoren, was bedeutet, dass $\braket{0 | 1}=\braket{1 | 0}=0$ ist. Definitionsgemäß gilt auch: $\braket{0 | 0}=\braket{1 | 1}=1$. Das bedeutet, dass die beiden Berechnungsbasisvektoren auch als orthonormal bezeichnet werden können.
Diese orthonormalen Eigenschaften werden im folgenden Beispiel verwendet. Wenn der Zustand $\ket{\psi}={\frac{3}{5}}\ket{{1} + {\frac{{4}{5}}\ket{0}$ vorliegt, liegt die Wahrscheinlichkeit der Messung von $\braket{1| aufgrund von }1 = 0$$0$ bei:
$$\big|\braket{1 |\psi}\big|^2=\left|\frac{{3}{5}\braket{1 | 1} +\frac{{4}{5}\braket{1 | 0}\right|^2=\frac{{9}{{25}. $$
Tensor-Produkt-Notation
Dirac-Notation ist sehr nützlich, um das Tensorproduktauszudrücken. Tensorprodukt ist bei der Quantenberechnung wichtig, da der durch zwei unkorrelierte Quantenregister beschriebene Zustandsvektor das Tensorprodukt der beiden Zustandsvektoren ist.
Das Tensorprodukt $\psi\otimes\phi$ für zwei Quantenzustandsvektoren $\phi$ und $\psi$ wird in Dirac-Notation als $\ket{\psi}\otimes\ket{\phi}$geschrieben. Üblicherweise kann man das Tensorprodukt als $\ket{\psi}\ket{\phi}=\ket{\psi\phi}$schreiben.
Zum Beispiel ist der Zustand von zwei Qubits, die auf den Nullzustand initialisiert sind, $\ket{{0}\otimes\ket{0}=\ket{0}\ket{0}=\ket{00}$.
Beispiel: Beschreiben der Superposition mit Dirac-Notation
Als weiteres Beispiel für die Verwendung der Dirac-Notation zur Beschreibung eines Quantenzustands sollten Sie die folgenden äquivalenten Methoden zum Schreiben eines Quantenzustands berücksichtigen, der eine gleiche Superposition über jede mögliche Bitzeichenfolge der Länge $n ist.$
$$ H^{\otimes n}\ket{0}=\frac{1}{2^{n/2}}\sum_{j=0}^{2^n-1}\ket{j}=\ket{+}^{\otimes n}. $$
Hier fragen Sie sich vielleicht, warum die Summe sich ändert von $0$ auf $2^{n}-1$ for $n$ Bits. Beachten Sie zunächst, dass es $2^{n}$ verschiedene Konfigurationen gibt, die $n$ Bits annehmen können. Sie können dies daran erkennen, dass ein Bit $2$ Werte, zwei Bits jedoch $4$ Werte usw. enthalten können. Im Allgemeinen bedeutet dies, dass es $2^n$ verschiedene mögliche Bitzeichenfolgen gibt, aber der größte Wert, codiert in einer von diesen ist $1\cdots 1=2^n-1$ – und ist somit die Obergrenze für die Summe. Nebenbei bemerkt wurde in diesem Beispiel nicht $\ket{+}^{\otimes n}=\ket{+}$ analog zu $\ket{{0}^{\otimes n}=\ket{{0}$ verwendet. Diese Notationalkonvention ist für den berechnungsbasierten Basiszustand reserviert, wobei jeder qubit initialisiert auf Null ist. Eine solche Konvention ist in diesem Fall zwar sinnvoll, wird aber nicht in der Quantencomputing-Literatur eingesetzt.
Ausdrücken von Linearität mit Dirac-Notation
Ein weiteres Feature der Dirac-Notation ist ihre Linearität. Beispielsweise kann für zwei komplexe Zahlen $\alpha$ und $\beta$ Folgendes geschrieben werden:
$$\ket{\psi}\otimes ( \alpha\ket{\phi} + \beta\ket{\chi})=\alpha\ket{\psi}\ket{\phi} + \beta\ket{\psi}\ket{\chi}.$$
Das heißt, Sie können die Tensorprodukt-Notation in der Dirac-Notation verteilen, sodass die Übernahme von Tensorprodukten zwischen Zustandsvektoren wie eine normale Multiplikation aussieht.
Bra-Vektoren folgen einer ähnlichen Konvention wie Ket-Vektoren. Beispielsweise ist der Vektor $\bra{\psi}\bra{\phi}$ äquivalent zum Zustandsvektor $\psi^\dagger\otimes\phi^\dagger=(\psi\otimes\phi)^\dagger$. Angenommen, der Ket-Vektor $\ket{\psi}$ ist $\alpha\ket{0} + \beta\ket{1}$. Dann sieht die Bra-Version des Vektors wie folgt aus: $\bra{\psi}=\ket{\psi}^\dagger= (\bra{{0}\alpha^* +\bra{1}\beta^*)$.
Stellen Sie sich beispielsweise vor, dass Sie die Wahrscheinlichkeit der Messung des Zustands $\ket{\psi}=\frac{3}{5}\ket{{1} + \frac{4}{5}\ket{0}$ mithilfe eines Quantenprogramms berechnen möchten, das Zustände entweder als $\ket{+}$ oder als $\ket{{-}$ misst. Dann lautet die Wahrscheinlichkeit dafür, dass das Gerät ausgibt, dass der Status $\ket{-}$
$$|\braket{- |\psi}|^2=\left|\frac{{1}{\sqrt{{2}}(\bra{0} - \bra{{1})(\frac{3}{5}\ket{{1} + \frac{{4}{5}\ket{0}) \right|^2=\left|-\frac{3}{5\sqrt{{2}} + \frac{{4}{5\sqrt{2}}\right|^2=\frac{{1}{{50}.$$
Die Tatsache, dass das negative Vorzeichen bei der Berechnung der Wahrscheinlichkeit erscheint, ist ein Phänomen der Quanteninterferenz – einer der Mechanismen, welche dem Quantencomputing Vorteile gegenüber dem klassischen Computing verleihen.
Ketbra oder äußeres Produkt
Das letzte Element, das in der Dirac-Notation behandelt werden sollte, ist das Ketbra- oder äußere Produkt. Das äußere Produkt wird in Dirac-Notationen als $\ket{\psi}\bra{\phi}$dargestellt. Das äußere Produkt wird per Matrix-Multiplikation definiert als $\ket{\psi}\bra{\phi}=\psi\phi^\dagger$ für Quantenzustandsvektoren $\psi$ und $\phi$. Das einfachste und wohl gängigste Beispiel für diese Notation ist
$$\ket{0}\bra{{0}=\begin{bmatrix}1\\ 0 \end{bmatrix}\begin{bmatrix}1& 0 \end{bmatrix}=\begin{bmatrix}1 & 0 0\\& 0 0\end{bmatrix}\qquad\ket{1}\bra{1}=\begin{bmatrix}\\ 1 \end{bmatrix}\begin{bmatrix}0& 1 \end{bmatrix}=\begin{bmatrix}0 & 0 0\\& 1\end{bmatrix}. $$
Ketbras werden häufig als Projektoren bezeichnet, da sie einen Quantenzustand auf einen festen Wert projiziert haben. Da diese Vorgänge nicht unitär sind (und nicht einmal die Norm eines Vektors beibehalten), kann ein Quantencomputer einen Projektor nicht deterministisch anwenden. Projektoren können jedoch wunderbar die Aktion beschreiben, welche die Messung für einen Quantenzustand hat. Wenn Sie beispielsweise den Zustand $\ket{\psi}$ mit $0$ messen, sieht die resultierende Transformation, die der Zustand als Ergebnis der Messung erfährt, wie folgt aus:
$$\ket{\psi}\rightPfeil \frac{(\ket{{0}\bra{{0})\ket{\psi}}{|\braket{0 |\psi}|}=\ket{{0},$$
wie Erwartet, wenn Sie den Zustand gemessen und gefunden haben $\ket{0}$. Um dies zu wiederholen, können solche Projektoren nicht deterministisch auf einen Zustand in einem Quantencomputer angewendet werden. Stattdessen können sie bestenfalls nach dem Zufallsprinzip angewendet werden, wenn das Ergebnis $\ket{0}$ mit einer festen Wahrscheinlichkeit angezeigt wird. Die Wahrscheinlichkeit, dass eine solche Messung erfolgreich ist, kann geschrieben werden als Erwartungswert des Quantenprojektors im Zustand
$$\bra{\psi} (\ket{0}\bra{0})\ket{\psi}=|\braket{\psi| 0}|^2, $$
Dies veranschaulicht, dass Projektoren eine neue Möglichkeit bieten, den Messungsprozess auszudrücken.
Wenn stattdessen das erste Qubit eines Multi-Qubit-Zustands mit $1$ gemessen wird, lässt sich auch dieser Prozess bequem mithilfe von Projektoren und Dirac-Notation beschreiben:
$$P(\text{first qubit = 1})=\bra{\psi}\left(\ket{{1}\bra{{1}\otimes \mathbf{\mathbf{1}^{\otimes n-1}\right) . \ket{\psi} $$
Hier kann die Identitätsmatrix bequem in Dirac-Notation geschrieben werden als
$$\mathbb{I}=\ket{{0}\bra{0}+\ket{{1}\bra{1}=\begin{bmatrix}1& 0 0\\& amp; 1 \end{bmatrix}. $$
Für den Fall, dass zwei Qubits vorhanden sind, kann der Projektor erweitert werden als
$$\ket{1}\bra{1}\otimes\mathbb{I}=\ket{{1}\bra{1}\otimes (\ket{0}\bra{0}+\ket{1}\bra{{1})=\ket{10}\bra{{10} + . \ket{{11}\bra{{11} $$
Sie sehen dann, dass dies mit der Diskussion über die Wahrscheinlichkeit von Messungen für Multi-Qubit-Zustände mithilfe der Spaltenvektor-Notation konsistent ist:
$$ P(\text{erstes Qubit = 1})=\psi^\dagger (e_{10}e_{10}^\dagger + e_{{11}e_{{11}^\dagger)\psi=|e_{{10}^\dagger\psi|^2 + |e_{11}^\dagger\psi|^2, $$
Dies entspricht der Diskussion zur Multi-Qubit-Messung. Die Generalisierung dieses Ergebnisses für den Multi-Qubit-Fall ist jedoch mit Dirac-Notation etwas einfacher auszudrücken als mit Spaltenvektor-Notation und entspricht vollständig der vorherigen Behandlung.
Dichteoperatoren
Ein weiterer nützlicher Operator zum Ausdrücken mit Dirac-Notation ist ein Dichteoperator, der manchmal auch als Zustandsoperator bezeichnet wird. Als Quantenzustandsvektor beschreibt der Dichteoperator den Quantenzustand eines Systems. Während Quantenzustandsvektoren nur reine Zustände darstellen können, können Dichteoperatoren auch gemischte Zustände darstellen.
Im Allgemeinen ist eine bestimmte Matrix $\rod$ ein gültiger Dichteoperator, wenn die folgenden Bedingungen erfüllt sind:
- $\rho$ ist eine Matrix komplexer Zahlen.
- $\rho = \rho^{\dagger}$ (d. h. $\rho$ ist Hermitian)
- Jeder Eigenwert $p$ von $\rho$ ist nicht negativ
- Alle Eigenwerte von $\rho$ ergeben addiert 1
Zusammen garantieren diese Bedingungen, dass $\rho$ als Ensemble betrachtet werden kann. Ein Dichteoperator für einen Quantenzustandsvektor $\ket{\psi}$ hat die Form $\rho =\sum_i p_i \ket{\psi_i}\bra{\psi_i}$ ist eine Eigenwertdekomposition von $\rho$, und $\rho$ beschreibt dann das Ensemble $\rho ={\ket{\psi_i}\text{ mit der Wahrscheinlichkeit } p_i }$.
Reine Quantenzustände sind diejenigen, die durch einen einzelnen Ket-Vektor oder eine Wellenfunktion gekennzeichnet sind und nicht als statistische Mischung (oder konvexe Kombination) anderer Quantenzustände geschrieben werden können. Ein gemischter Quantenzustand ist ein statistisches Ensemble reiner Zustände.
Auf einer Bloch-Kugel werden reine Zustände durch einen Punkt auf der Oberfläche der Kugel dargestellt, während gemischte Zustände durch einen Innenpunkt dargestellt werden. Der gemischte Zustand eines einzelnen Qubits wird durch die Mitte der Kugel durch Symmetrie dargestellt. Die Reinheit eines Zustands kann als gradualisiert werden, in dem es nahe an der Oberfläche der Kugel liegt.
Dieses Konzept der Darstellung des Zustands als Matrix anstelle eines Vektors ist häufig praktisch, da es eine bequeme Möglichkeit zur Darstellung von Wahrscheinlichkeitsberechnungen bietet, und es Ihnen auch ermöglicht, sowohl statistische Unsicherheit als auch Quantenunsicherheit innerhalb desselben Formalismus zu beschreiben.
Ein Dichteoperator $\rho$ stellt nur dann einen reinen Zustand dar, wenn:
- $\rho$ als äußeres Produkt eines Zustandsvektors geschrieben werden kann: $\rho=\ket{\psi}\bra{\psi}$
- $\rho =\rho^2$
- $tr(\rho^2)=1$
Um herauszufinden, wie rein ein angegebener Dichteoperator $\rho$ ist, können Sie die Ablaufverfolgung (d. h., die Summe der diagonalen Elemente) von $\rho^2$ betrachten. Ein Dichteoperator stellt nur dann einen reinen Zustand dar, wenn $tr(\rho ^{2})=1$.
Q# Gatesequenzen, die Quantenzuständen entsprechen
Ein letzter Punkt zur Quantennotation und zur Programmiersprache Q#: Am Anfang dieses Dokuments wurde erwähnt, dass der Quantenzustand das grundlegende Objekt von Informationen beim Quantencomputing ist. Es kann dann eine Überraschung sein, dass es in Q# kein Konzept eines Quantenzustands gibt. Stattdessen werden alle Zustände nur von den Vorgängen beschrieben, die zu deren Vorbereitung verwendet werden. Das vorherige Beispiel ist eine hervorragende Veranschaulichung dafür. Anstatt eine einheitliche Superposition über jede Quantenbitzeichenfolge in einem Register auszudrücken, können Sie das Ergebnis als $H^{\otimes n}\ket{0}$ darstellen. Diese exponentiell kürzere Beschreibung des Zustands hat nicht nur den Vorteil, dass Sie klassisch darüber nachdenken können, sie definiert auch präzise die Vorgänge, die zum Implementieren des Algorithmus durch den Softwarestapel propagiert werden müssen. Aus diesem Grund ist Q# darauf ausgelegt, Gatesequenzen anstelle von Quantenzuständen auszugeben. Auf theoretischer Ebene sind die beiden Perspektiven jedoch gleichwertig.