Dirac-Notation

Die Dirac-Notation ist eine Sprache, die speziell für die Anforderungen des Ausdrückens von Zuständen in der Quantenmechanik entwickelt wurde. Die Beispiele in diesem Artikel sind Vorschläge, die verwendet werden können, um Quantenideen präzise auszudrücken.

Einschränkungen der Spaltenvektor-Notation

Während die Spaltenvektornotation in der linearen Algebra üblich ist, ist sie beim Quantencomputing häufig umständlich, insbesondere wenn es sich um mehrere Qubits handelt. Wenn Sie beispielsweise $\psi$ als Vektor definieren, ist nicht klar, ob $\psi$ ein Zeilen- oder ein Spaltenvektor ist. Wenn also $\phi$ und $\psi$ Vektoren sind, ist es ebenso unklar, ob $\phi\psi$ überhaupt definiert ist, da die Formen von $\phi$ und $\psi$ im Kontext möglicherweise unklar sind. Neben der Mehrdeutigkeit der Formen von Vektoren lassen sich ggf. selbst einfache Vektoren nur umständlich mit linearer algebraischer Notation ausdrücken. Wenn Sie beispielsweise einen $n$-Qubit-Zustand beschreiben möchten, bei dem jedes Qubit den Wert $0$ annimmt, würde der Zustand formell wie folgt ausgedrückt:

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\cdots\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}. $$

Die Auswertung dieses Tensorprodukts ist unpraktisch, da der Vektor in einem exponentiell großen Raum liegt. Daher ist diese Notation tatsächlich die beste Beschreibung des Zustands, der mithilfe der vorherigen Notation angegeben werden kann.

Vektortypen in Dirac-Notation

In der Dirac-Notation gibt es zwei Arten von Vektoren: den Bra-Vektor und den Ket-Vektor, welche so benannt werden, da sie beim Zusammensetzen eine Klammer (Bracket) bzw. ein inneres Produkt bilden. Wenn $\psi$ ein Spaltenvektor ist, können Sie ihn in Dirac-Notation als $\ket{\psi}$ schreiben. Dabei gibt $\ket{\cdot}$ an, dass es sich um einen Einheitenspaltenvektor handelt (also beispielsweise um einen Ket-Vektor). In ähnlicher Weise wird der Zeilenvektor $\psi^\dagger$ ausgedrückt als $\bra{\psi}$. 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 folgende Konvention wird verwendet, um die Quantenzustände zu beschreiben, welche die Werte von 0 und 1 codieren (die Berechnungsbasiszustände für einzelne Qubits):

$$\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\ket{{0},\qquad\begin{bmatrix} 0 \\ 1 \end{bmatrix}=\ket{{1}. $$

Beispiel: Darstellen des Hadamard-Vorgangs mit Dirac-Notation

Die folgende Notation wird häufig verwendet, um die Zustände zu beschreiben, die sich aus der Anwendung des Hadamard-Gatters auf $\ket{0}$ und $\ket{1}$ ergeben. Diese Zustände entsprechen den Einheitenvektoren in der $+x$- und $-x$-Richtung auf der Bloch-Kugel:

$$\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ 1 \end{bmatrix}=H\ket{0}=\ket{+},\qquad\frac{1}{\sqrt{{2}}\begin{bmatrix} 1 \\ -1 \end{bmatrix}=H\ket{{1}=\ket{{-} . $$

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}),\qquad\ket{{-}=\frac{{1}{\sqrt{{2}}(\ket{{0} - \ket{1}). $$

Berechnungsbasisvektoren

Dies zeigt, warum diese Zustände häufig als Berechnungsbasis bezeichnet werden: Jeder Quantenzustand kann stets als Summen von Berechnungsbasisvektoren ausgedrückt werden und solche Summen lassen sich problemlos mithilfe der Dirac-Notation ausdrücken. 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{-}),\qquad\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}=\begin{bmatrix} 1 &Amp; 0 \end{bmatrix}\begin{bmatrix}0\\ 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 $1$ aufgrund von $\braket{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

Die Dirac-Notation enthält auch eine implizite Tensor-Produktstruktur . Diese Struktur ist wichtig, da der von zwei nicht korrelierten Quantenregistern beschriebene Zustandsvektor beim Quantencomputing den Tensorprodukten der beiden Zustandsvektoren entspricht. Eine präzise Beschreibung der Tensorproduktstruktur oder deren Fehlen ist wichtig, wenn Sie eine Quantenberechnung erläutern möchten. Die Tensorproduktstruktur impliziert, dass Sie $\psi\otimes\phi$ für zwei beliebige Quantenzustandsvektoren $\phi$ und $\psi$ als $\ket{\psi}\otimes\ket{\phi}$ schreiben können. Allerdings ist das Schreiben von $\otimes$ zwischen den Vektoren aufgrund der Konvention unnötig, und Sie können einfach $\ket{\psi}\ket{\phi}=\ket{\psi\phi}$ schreiben. Weitere Informationen zu Vektoren und Tensorprodukten finden Sie unter Vektoren und Matrizen im Quantencomputing. Der Zustand mit zwei Qubits, die mit dem Nullzustand initialisiert sind, lautet beispielsweise:

$$\ket{0}\otimes\ket{0}=\ket{{0}\ket{{0}=\ket{{00}=\begin{bmatrix} 1 \\ 0 \end{bmatrix}\otimes\begin{bmatrix} 1 \\ 0 \end{bmatrix}=\begin{bmatrix} 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}. $$

Analog dazu stellt der Zustand $\ket{p}$ für die ganze Zahl $p$ einen Quantenzustand dar, der die ganze Zahl $p$ in binärer Darstellung codiert. Wenn Sie beispielsweise die Zahl $5$ mithilfe einer binären Codierung ohne Vorzeichen ausdrücken möchten, können Sie sie auch wie folgt ausdrücken:

$$\ket{1}\ket{0}\ket{1}=\ket{101}=\ket{5}. $$

In dieser Notation muss $\ket{0}$ nicht auf einen Einzel-Qubit-Zustand verweisen, sondern auf ein Qubit-Register, das eine binäre Codierung von $0$ speichert. Die Unterschiede zwischen diesen beiden Notationen werden aus dem Kontext deutlich. Diese Konvention ist nützlich, um das erste Beispiel zu vereinfachen, das auf eine der folgenden Arten geschrieben werden kann:

$$\begin{bmatrix}1 \\ 0 \end{bmatrix}\otimes\cdots\otimes\begin{bmatrix}1 \\ 0 \end{bmatrix}=\ket{{0}\otimes\cdots\otimes\ket{0}=|0\cdots 0\rangle=\ket{{0}^{\otimes n}$$

bei dem $\ket{0}^{\otimes n}$ das Tensorprodukt von $n$$\ket{0}$ Quantenzuständen darstellt.

Beispiel: Beschreiben der Superposition mit Dirac-Notation

Als weiteres Beispiel für die Verwendung der Dirac-Notation zum Beschreiben eines Quantenzustands betrachten Sie die folgenden äquivalenten Methoden zum Schreiben eines Quantenzustands, der eine gleiche Überlagerung über jede mögliche Bitzeichenfolge der Länge $n darstellt$

$$ 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 notationale Konvention ist für den berechnungsbasierten Basiszustand reserviert, wobei jedes Qubit auf null initialisiert wird. Obwohl eine solche Konvention in diesem Fall sinnvoll ist, wird sie in der Quantencomputing-Literatur nicht verwendet.

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 dargestellt als $\ket{\psi}\bra{\phi}$ und manchmal als „Ketbras“ bezeichnet, da die Bras und Kets in umgekehrter Reihenfolge als bei „Brakets“ auftreten. 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&Amp; 0 \end{bmatrix}=\begin{bmatrix}1 &Amp; 0\\ 0 &Amp; 0\end{bmatrix}\bra{1}=\qquad\ket{1}\begin{bmatrix}0\\ 1 \end{bmatrix}\begin{bmatrix}0&Amp; 1 \end{bmatrix}=\begin{bmatrix}0 &Amp; 0\\ 0 &Amp; 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 Sie erwarten würden, wenn Sie den Zustand gemessen und festgestellt haben, dass er ist $\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{erstes 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

$$\mathbf{1}=\ket{0}\bra{0}+\ket{1}\begin{bmatrix}\bra{{1}=1&Amp; 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\id=\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. Quantenzustandsvektoren können zwar nur reine Zustände darstellen, Dichteoperatoren können jedoch 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 $0 <= p <= 1$
  • 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 inneren Punkt dargestellt werden. Der gemischte Zustand eines einzelnen Qubits wird durch das Zentrum der Kugel, durch Symmetrie dargestellt. Die Reinheit eines Zustands kann als grad visualisiert werden, in dem er sich nahe an der Oberfläche der Kugel befindet.

Dieses Konzept der Darstellung des Zustands als Matrix und nicht als Vektor ist häufig praktisch, da es eine bequeme Möglichkeit bietet, Wahrscheinlichkeitsberechnungen darzustellen, 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.

Nächste Schritte