Bei der Analyse von Schaltkreisen, geht es darum, zu bestimmen was ein Schaltkreis macht. Dazu gibt es verschiedene Möglichkeiten:

  1. Schrittweise durch den Schaltkreis gehen und die Wirkung auf die Basiszustände beobachten
  2. Der Schaltkreis kann als Matrix aufgefasst werden, die Analyse besteht dann aus der Multiplikation dieser Matrix mit dem Initialzustand der Qubits.

Im Folgenden werden wir beide Wege anhand dieses Schaltkreises durchspielen.

./circuit.tex

Schrittweise Analyse

Für die Schrittweise Analyse teilen wir den Schaltkreis in kleinere Schritte auf, für den Anfang empfiehlt sich in jedem Schritt nur ein Gatter zu haben. Wenn Sie etwas sicherer im Umgang mit den Gattern sind, können Sie auch jeweils mehrere Gatter in einem Schritt zusammen fassen. So wie das im folgenden Beispiel der Fall ist. ./statevec-analyse.tex

Die Dicke rote Linie trennt dabei, den Schaltkreis von der Analyse und die geschtrichelten Linien zeigen dabei die einzelnen Schritte an. Zu jedem Zeitschritt lässt sich der Zustandsvektor dann z.B. tabelarisch aufführen.

Hinweis: Persönlich schreibe ich die Basisvektoren in die erste Spalte der Tabelle, um den Überblick zu behalten, so kann ich die amplituden in den weiteren Spalten direkt zuordnen.

Zum ersten Zeitschritt befindet sich dieser Schaltkreis im Zustand $\ket{0}$.

Der Vorteil dieser Methode ist, das der Zustand des Systems nach jedem Zeitschritt bekannt ist.

Schaltkreis als Matrix

Eine andere Möglichkeit ist es, zunächst den kompletten Schaltkreis als eine Matrix zu betrachten. So kann der Endzustand als Produkt as Initialzustand und Matrix berechnet werden.

Der Schaltkreis: ./circuit.tex ergibt dann die folgende Matrix $U$:

$$ U = (CNot_{2,1} \otimes{} \mathop{Id_2}) (CNot_{1,2} \otimes{} H) (H \otimes X \otimes{} \mathop{Id_2}) $$

Zur Erinnerung $\otimes$ beschreib das Tensorprodukt

Der Endzustand $\ket{\varphi’}$ in diesem Beispiel ist dann gegeben durch: $$ \ket{\varphi’} = U \ket{000} = \frac{1}{2} (\ket{100} + \ket{101} + \ket{110} + \ket{111}) $$

Übung: stellen Sie die Matrix $U$ auf, und berechnen Sie $U\ket{011}$. (Also die Wirkung des Schaltkreises für den Fall das dieser mit $\ket{011}$ statt $\ket{000}$ initialisiert ist) Vergleichen Sie danach Ihr Ergebnis in zweier Gruppen.

Übung: Implementieren Sie den Schaltkreis in Qiskit (oder PennyLane) und plotten Sie die Ergebnisse der Simulation. Testen Sie dann was passiert, wenn die Qubits in anderen Zuständen initialisiert sind. (Mit dieser Übung können Sie dann auch Ihre Ergebnisse der letzten Übung vergleichen, achten Sie dabei aber auf die Qubit-Reihnfolge (big endian vs. little endian))