Q9 Verschränkung und andere 2-Qubit Phänomene
Der Einsatz des CNOT Gates in Q8, Beispiel 7 (Circuit 7), führte zu einem überraschenden Ergebnis im Vergleich zu den vorausgehenden 2-Qubit Circuits. Es gibt von den sonst möglichen vier 2-Bit Messergebnissen nur die Ergebnisse 00 und 11 aus. Die beiden Qubits sind scheinbar "gleichgeschaltet". Man bezeichnet dieses Phänomen in der Qubit-Welt auch als Verschränkung (entanglement). Warum, das wird weiter unten noch genauer erklärt.
Es drängen sich eine ganze Reihe von Experimenten mit Varianten von Circuit 7 auf, von denen wir uns einige ansehen wollen. Wir werden dabei nicht immer die Composer-Grafik dazu einfügen. Wer Lust hat, kann sich das Bild dazu aufmalen. Noch besser und spannender wäre es, die 2-Qubit Circuits nicht nur zu diskutieren, sondern selbst mit dem IBM Q Experience Simulator auszuprobieren. Der Zugang ist, wie gesagt einfach und in einem eigenen Blog kurz beschrieben, und das Erstellen und Testen im Composer ist ebenfalls "Drag&Drop"-leicht.
2-Qubit Circuits

Hier zunächst noch einmal die Ausgangsgrafik des "Circuit 7", der 00 und 11 mit der Häufigkeit 0.5 liefert.
1. Was würde passieren, wenn wir vor das H-Gate noch ein X einfügen würden? Einfache Überlegung: Der Startzustand |0> von q0 würde zunächst in |1> verändert. H angewendet auf |1> ergibt 1/√2 (|0>- |1>) (s. Q8, Beispiel 6). Der Unterschied zu Circuit 7 ist also das Minus-Zeichen. Nach CNOT mit q1 macht das aber keinen Unterschied im Messergebnis, denn die Häufigkeiten von 0 und 1 entsprechen dem Quadrat der Koeffizienten. Und (-1/√2)² ist das Gleiche wie (1/√2)². Damit erwarten wir das gleiche Ergebnis wie bei Circuit 7. Das Simulationsergebnis bestätigt dies.
2. Was wäre, wenn X auf q1 vor CNOT angewendet würde? Dann ist q1 vor CNOT im Zustand |1>. Für q0 im Zustand |1> ändert sich dann q1 zu |0>, sonst bleibt es |1>. Wie demnach zu erwarten, liefert die Messung nun 01 und 10 zu je rund 50%. Wir haben hier also einen Circuit der "Ungleichschaltung". Wenn wir bei einem Qubit z.B. eine 0 messen, wissen wir, dass das andere 1 ergeben muß. Und umgekehrt. Wir haben hier also auch eine Form der Verschränkung.
3. Was ist ausschlaggebend für das Verschränkungsphänomen? Ist es das H-Gate? Was ein X-Gate zusätzlich bewirkt, bei q0 oder q1, haben wir schon gesehen. Versuchen wir es mal mit anderen Gates und testen das mit dem Simulator. Bleiben wir zunächst bei Qubit 0 und ersetzen das H durch X bzw. durch unsere Rotation Ry.
Ersetzen wir H durch X, können wir das Ergebnis einfach vorhersagen: X verkehrt den Ausgangszustand, also ist q0 bei CNOT im Zustand |1>, damit wird q1 umgekehrt, also |1>. Wir bekommen determiniert das Ergebnis 11 bei 100% der Messungen.
Ersetzen wir H durch Ry mit dem Gate-Parameter π/3, dann wird der Startzustand von q0 im x-y-Koordinatensystem um 30º gedreht.
Als Simulatorergebnis (1024 shots) bekommen wir: 74% 0000, 26% 0011.
D.h. wir finden wieder eine "Gleichschaltung" der Zustände wie in Circuit 7, allerdings mit einer anderen Häufigkeitsverteilung. Die entspricht der Häufigkeitsverteilung bei einer 1-Qubit Anwendung von Ry(π/3) in Q8, Beispiel 3b. Offenbar ist das Vorliegen einer Superposition für q0 ausschlaggebend für Verschränkung. Wir werden später sehen, ob die Vermutung stimmt.
4. Nun zu q1. Was passiert, wenn wir q1 in eine Superposition versetzen, z.B. mittels H.
Als Simulationsergebnis bekommen wir hier eine Häufigkeitsverteilung über alle 4 Möglichkeiten. Z.B.:
Bit-Ergebnis | H | Ry(π/3) |
0000 | 26% | 36% |
0001 | 25% | 11% |
0010 | 23% | 13% |
0011 | 26% | 40% |
Setzen wir statt H die Rotation Ry(π/3) ein, ergibt sich das enstprechende Bild (rechte Spalte) zu rund 3/8, 1/8, 1/8, 3/8.
Die beiden Beispiele zeigen offenbar keine Verschränkung, sondern eine Verteilung über alle 4 möglichen Messergebnisse. Wenn wir aufgrund der Experimente mit den Varianten eine Vermutung anstellen wollten, dann die, dass CNOT eine Verschränkung (ob gleich oder ungleich geschaltet) nur dann liefert, wenn eines der Qubits in einem Basiszustand ist. Wir werden diese Vermutung weiter unten "rechnerisch" untersuchen.
5. Bisher haben wir zusätzliche Gates immer vor das CNOT geschaltet. Was ist, wenn wir das im verschränkten Zustand tun? Die einfachste Variante ist, ein X-Gate nach dem CNOT auf die q1-Leitung zu setzen. Also so:
Was würde man erwarten? Vor dem X-Gate ist der Zustand des 2-Qubit-Systems verschränkt bzgl. 00 und 11. Danach findet man als Messergebnis die "Umkehrung", 01 und 10. Das gleiche finden wir, wenn wir das X-Gate auf q0 setzen. Schalten wir dagegen für beide Qubits ein X-Gate nach, bleibt das Ergebnis 00 und 11 zu je 50%. Macht man die gleichen Tests mit dem H-Gate anstelle des X-Gate, bekommt man - und das ist nicht mehr ganz so überraschend - bei einem H-Gate jeweils eine Verteilung über alle 4 Möglichkeiten, bei H auf beiden Wires wiederum das Ergebnis 00 und 11 zu je 50%.
Es sei betont, dass wir immer nur die Messergebnisse sehen. Was mit den Zuständen passiert, können wir erst untersuchen, wenn wir ein formale Beschreibung für Systeme aus zwei oder mehr Qubits haben.
6. Ein algorithmisches Beispiel kann uns aber doch noch überraschen. Es ist gleichzeitig ein ziemlich wichtiger Baustein für Qubit-Algorithmen. Das Schaltbild dazu ist
Das Ergebnis ist - 01 und 11 zu je 50%! Das scheint zu keinem der bisherigen Ergebnisse zu passen. Ohne das nachgeschaltete H-Gate für q0 bekommen wir, wie zu erwarten, das Ergebnis von Beispiel 4, also alle vier Ergebnismöglichkeiten zu 25%. Abgesehen davon, wissen wir, dass H, zweimal hinternander auf |0> angewandt, wieder |0> ergbit.
Es würde uns jetzt nicht wundern, wenn es auch eine Circuit-Variante gibt, die 00 und 10 liefert. Richtig, ohne das X-Gate, also die initiale Umkehrung des Startzustands von q1! Wenn wir beides zusammen betrachten, sieht es so aus, als ob das Ergebnis von Qubit q0, das rechte der zwei Bits, durch q1 umgeschaltet. Durch das CNOT sollte aber doch eigentlich q0 das q1 beeinflusst. Trotzdem, dieser Effekt ist korrekt und hat den schönen Namen (phase) kickback - das von q0 gesteuerte q1 "schlägt zurück". (Wir werden davon in Q15 interessanten Gebrauch machen.)
Es gibt noch zwei weitere Ergebnisse ähnlicher Art, nämlich 00 und 01 zu 50% und 10 und 11 mit je 50%. Es ist interessant zu versuchen, 2-Qubit Circuits zu konstruieren, die diese Ergebnisse liefern. Wer Lust hat, möge das mit dem IBM Composer ausprobieren.
2-Qubit Zustände
Um das zu verstehen, müssen wir uns mit den "Formeln" für Zwei- und Mehr-Qubit-Systeme befassen. Zunächst mal für 2-Qubit-Systeme, auch 2-Qubit-Register genannt, in Anlehnung an das Bit-Register, der zentralen Komponente eines herkömmlichen (Bit-)Prozessors.
Wir erinnern uns, dass wir Qubit-Zustände als Punkte auf dem Einheitskreis im x-y-Koordinatensystems beschreiben können. Also z.B. (x,y) = (1/√2, -1/√2). Eine etwas andere Schreibweise, die häufig verwendet wird aber das Gleiche bedeutet, ist die, einen Qubit-Zustand als Kombination der Basis-Zustände (1,0) und (0,1) zu schreiben, für die außerdem die (aus der Quantenphysik stammenden) Symbole |0> und |1> verwendet werden. Das mag verwirren; es ist aber manchmal leichter einen Qubit-Zustands-Sachverhalt mal in der einen oder der anderen Form zu beschreiben. Man mache sich klar, dass (x,y) und x*(1,0)+y*(0,1) und x*|0>+y*|1> das Gleiche ausdrücken. Aus historischen Gründen nennt man diese Schreibweise die Ket-Schreibweise - statt z.B. "Rechts-Spitzklammer"-Schreibweise - und nennt ein Symbol |a> für einen Qubit-Zustand ein ket, bzw. ket-a.
Was ist nun der Zustand eines 2-Qubit-Systems? Eigentlich nur die Kombination von zwei Qubit-Zuständen nach der Methode "jeder mit jedem". (Wem das zu unmathematisch klingt, kann sagen, es ist das Tensorprodukt der beiden.) Haben wir also ein Qubit q0 im Zustand (u,v) und q1 im Zustand (x,y), so ist der Zustand des 2-Qubit-Systems (ux, uy, vx, vy). Er besteht also aus 4 Koordinaten, die sich aus der Multiplikation der Koordinaten der beiden Qubit-Zustände ergibt. Hier sind einige übliche Schreibweisen, an die man sich wohl gewöhnen muß - es steckt aber immer das Gleiche dahinter:
(u,v)⊗(x,y) = (ux, uy, vx, vy)
oder, wenn wir in der Ket-Schreibweise den Zustand von q0 mit |a> und den von q1 mit |b> symbolisieren
|a>⊗|b> = (ux, uy, vx, vy), wenn wir |a>=u*|0>+v*|1> und |b>=x*|0>+y*|1> für die Zustände von q0 und q1 schreiben.
Wenn man den 2-Qubit-Zustand so beschreibt, stellt man fest, dass erfreulicherweise die 4 Koodinaten wieder auf einem 4-dimensionalen "Einheitkreis" liegen. Das ist schwer vorzustellen, aber einfach als Formel auszudrücken:
|ux|²+|uy|²+|vx|²+|vy|² = 1
Da die Einzel-Zustände auf dem "normalen" Einheitskreis liegen, also |u|²+|v|²=1 und |x|²+|y|²=1, ergibt sich das einfach durch Ausrechnen von (|u|²+|v|²)* (|x|²+|y|²).
Wir konstruieren uns einige Beispiele und zeigen sie in der Tabelle in Koordinatenform. In der rechten Spalte ist das jeweilige 2-Zustands-Messergebnis dargestellt, also das, was wir z.B. bei den Messungen entsprechender 2-Qubit Circuits erwarten können.
Koordinaten | Koordinaten | Messung | |
q0 | q1 | 2-Qubit-Zustand | 2-Bit Ergebnis : Häufigkeit |
(1,0) | (1,0) | (1,0,0,0) | 00: 1.0 |
(1,0) | (0,1) | (0,1,0,0) | 01: 1.0 |
(0,1) | 1/√2*(1,1) | 1/√2*(0,0,1,1) | 10: 0.5 11: 0.5 |
(u,v) | (x,y) | (ux,uy,vx,vy) | 00: |ux|² 01: |uy|² 10: |vx|² 11: |vy|² |
Zum Vergleich - und zur Gewöhnung - schreiben wir die Tabelle noch einmal in Ket-Schreibweise. (Die Messergebnisse sind die gleichen.)
q0 - Ket | q1 - Ket | 2-Qubit-Zustand - Ket |
|0> | |0> | 1*|00> |
|0> | |1> | 1*|01> |
|1> | 1/√2*(|0>+|1>) | 1/√2*(|10>+|11>) |
u|0>+v|1> | x|0>+y|1> | ux|00>+ uy|01>+ vx|10> + vy|11> |
Etwas fällt vielleicht noch auf: die Kets mit zwei Ziffern, etwa |01>. Das ist einfach wieder eine abkürzende Schreibweise für |0>⊗|1>, also die Kombination von zwei Qubit-Zuständen (in Ket-Schreibweise) zu einem 2-Zustands-Ket.
Die Ket-Schreibweise erleichtert bei Zwei- und Mehr-Qubit-Zuständen die Sicht auf die Messergebnisse. Der Operator M, auf einen allgemeinen 2-Qubit-Zustand (w, x, y, z) angewendet liefert die Wahrscheinlichkeiten |w|², |x|², |y|², |z|². Aber was ist was? Man kann sich merken, dass |w|² für Bitfolge 00 der Messung, |x|² für 01 usw. gilt. Schreibt man den Zustand in Ket-Form, dann sieht man es sofort. Denn (w,x,y,z) = w|00> + x|01> + y|10> + z|11>. Damit ist, bei 2-Qubit-Zuständen,
M(w,x,y,z) = ( |w|², |x|², |y|², |z|²)
eine "theoretische Formel" für den Messvorgang. Gemessen wird der Zustand, das Ergebnis (rechts) sind Wahrscheinlichkeiten für die 2-Bit-Folgen. Man hat hiermit also eine Verknüpfung zwischen Qubits und klassichen Bits.
Um Verwirrung zu vermeiden, werden wir allerdings im Weiteren vorzugsweise die Koordinaten-Schreibweise verwenden.
Verschränkte 2-Qubit-Zustände
Im Prinzip kann man alle Punkte im 4-dim Koordinatensystem, die als Summe ihrer Quadrate 1 ergeben, als 2-Qubit-Zustände betrachten. Bei Messungen ergäben sich aus solchen Zuständen die Quadrate der Koordinaten als Häufigkeitsverteilung über die vier möglichen (Bit-) Messergebnisse 00, 01, 10, 11. D.h. beliebige 4 Zahlen (w, x, y, z) mit |w|²+|x²|+|y|²+|z|²=1 ergeben einen zulässigen 2-Qubit-Zustand.
Allerdings, nicht jeder Zustand in dieser Form lässt sich - wie oben - aus den Zuständen von zwei Qubits herstellen! Das ist verblüffend, aber lässt sich leicht überprüfen.
Circuit 7, oben, lieferte als Messung 00 und 11 mit Häufigkeit 0.5, und 01 bzw 10 mit Häufigkeit 0. Wenn der (unbekannte) 2-Quibt-Zustand, der zu dieser Messung führt, eine Kombination (u,v)⊗(x,y) = (ux, uy, vx, vy) von zwei Qubits wäre, müssten |ux|² = |vy|² = 0,5 sein und gleichzeitig |uy|² = |vx|² = 0. D.h. einerseits müssen u,x,v und y ungleich Null sein, andererseits müssen u oder y, sowie v oder x Null sein. Das ist offensichtlich ein Widerspruch.
Der Zustand, der in Circuit 7 gemessen wird, ist damit ein zulässiger und herstellbarer 2-Qubit-Zustand. Er kann aber nicht aus zwei Qubits zusammengesetzt werden, oder, anders ausgedrückt, er ist nicht separierbar. Das System aus zwei Qubits, das in einen nicht-separierbaren 2-Qubit-Zustand überführt wird, ist verschränkt. Das ist es, was dahinter steckt! Man mag nun selber überprüfen, welche der Circuits oben ebenfalls verschränkte Zustände liefern. (Wer Lust hat - der Kommentar-Bereich steht offen.)
Eine Konsequenz der Verschränkung ist, dass man nicht von den Zuständen der beiden Qubits sprechen kann. Im eigentlichen Sinne haben sie keinen Zustand. Allein das Gesamtsystem hat einen Zustand. Insofern kann man auch nur das Gesamtsystem messen, nicht die "involvierten" Qubits.
Die Wirkung von Gates
Mit Hilfe der Zustandsbeschreibungen können wir nun auch die Wirkung von Gates "berechenbar" machen. D.h., obwohl wir sie nicht per Messung verfolgen können, lässt sich die Abfolge der Zustände rechnerisch darstellen.
Das machen wir im nächsten Blog-Beitrag; denn jetzt haben wir uns spätestens eine Pause verdient, bei der wir entspannt noch mal über alles nachdenken können.
Hier geht's dann anschließend weiter.
Stay tuned!
Hier noch ein paar neue Begriffe aus diesem Anschnitt in Fortführung der tabellarischen Übersicht.
Begriff englisch | Begriff deutsch | Bedeutung |
Entanglement | Verschränkung | Nicht separierbarer Gesamtzustand eines 2-Qubit Systems |
Separable | Separierbar | 2-Qubit-Zustand, der sich aus zwei Qubit-Zuständen zusammensetzem lässt. |
Register | Register | System von zwei oder mehr Qubits auf dem algorithmische Operationen ausgeführt werden |
Ket | Ket | Zweite Silbe von Bra-cket. Schreibweise für Qubit-Zustände |
Symbol ⊗ | Symbol ⊗ | Symbolisiert die Kombination von zwei Qubit-Zuständen zu einem Gesamtzustand. |
|00>, |01> etc | |00>, |01> etc | Kurzschreibweise für |0>⊗|0>, |0>⊗|1>usw. |
(Phase) Kickback | (Phase) Kickback | Spezielle Rückwirkung zwischen CNOT verbundenen Qubits |
Q6 Zwischenspiel - ZBIT-Spielereien
Hier wollen wir mit dem verbesserten ZBIT-Modell aus Q5 ein wenig rumspielen, um mit dem Modell und den Definitionen ein wenig vertrauter zu werden. Um so leichter fällt dann der letzte (kleine) Schritt zum Qubit. Wegen des letzten Abschnitts ist dieser Blog etwas länger geraten. Dafür führt er uns aber zu einer Modell-Darstellung, die schon die für das Qubit-Modell sein wird. Wer keine Lust hat zum Spielen, kann auch einfach nur einen Kaffee trinken und gleich mit dem nächsten Blog weitermachen.
Wir hatten schon festgestellt, dass die inneren Zustände eigentlich beliebig wählbar sind, vorausgesetzt, die Maschinen-Tabellen (Output und Zustandsübergänge) sind konstistent.
1. Alice, Bob, Charly und Debbie
Statt [00] usw. können wir z.B. Namen nehmen:
Alice, Bob, Charly und Debbie statt [00], [10], [01], [11]. Wenn wir die vier dann als Ecken eines Quadrats aufstellen, etwa in der Sporthalle, können wir das Modell als Ballspiel beschreiben:
- Jede Runde beginnt bei Alice, sie hat den Ball (Operation R)
- Jeder spielt den Ball entsprechend den Regeln von X und H.
- Jeder ist dabei frei, welche der Regel sie oder er "werfen" will
- Irgendwann pfeift der Referee ab (M)
Die Grafik illustriert das Set-up. Die Pfeile zeigen, wie X und H gespielt werden dürfen. Da die Personen formal Zustände sind, zeigt die Grafik ein sog. Zustandsüberführungs-Diagramm, ein Wort, das man üben muss.
Wir haben noch nicht gesagt, was D, L und P sein sollen. Da wir die inneren Zustände und Übergänge beim Ballspiel beobachten, könnten wir trivialerweise festlegen: D, wenn der Ball bei Abpfiff bei Alice ist, L, wenn er bei Debbie ist und P, wenn er bei einem der beiden anderen ist. Das ist nicht beonders interessant.
Wie wäre es, wenn bei Abpfiff der Ball in einen Basketball-Korb geworfen werden muss? Das ganze Spiel findet hinter einem Vorhang statt, sodass wir es nicht sehen können. Allein den Wurf auf den Korb können wir sehen. Dabei bedeutet D, dass der Ball niemals versenkt wird (Alice), L, dass er mit Sicherheit reingeht (Debbie), und P, dass er manchmal trifft und manchmal nicht, im Verhältnis 1:1.
Fragen: Können wir herausfinden, wer den Ball zum Korb wirft? Wie wäre es, wenn wir dem Team bzw. dem Referee Spielpläne vorgeben würden (Algorithmen)? Wie könnte ein "autonomes" Spiel aussehen? D.h. jeder Spieler entscheidet (zufällig) welchen der möglichen Würfe (R, X, H, M) er oder sie macht.
Wer Lust hat, kann Überlegungen oder Antworten als Kommentar einfügen.
Nun gut, lassen wir die vier weiter spielen und wenden uns einer Darstellung zu, mit der wir das ZBIT-Modell simulieren können.
2. Ein ZBIT-Box Simulationsmodell
Wir haben im Beitrag "Etwas ist anders - Hello Qubit World" die Partitur eines QuBit-Algorithmus gesehen - ohne zu wissen, worum es geht. Solche Partituren können, wenn sie fehlerfrei sind, von Quanten-Computern oder auch von QC-Simulatoren abgearbeitet werden. Es wäre doch interessant, wenn wir die ZBIT-Experimente in diese Form bringen könnten und sie dem Simulator vorlegen könnten.
Da die Experimente mit den ZBIT- und BIT-Modellen schon in Anlehnung an die "Partitur-Form" beschrieben wurden, sollte es uns tatsächlich leicht fallen.
Die Modell-Beschreibung für den QC-Simulator ändert sich kaum: X und H werden vom Simulator "verstanden", das R gibt es nicht explizit, sondern jede Partitur beginnt mit dem Ausgangszustand. Der wird im Simulator mit |0> gekennzeichnet statt mit [00], aber die Namen der inneren Zustände sind ja unwesentlich. (Was |0> bedeutet, werden wir später sehen.) Das Anzeige-Symbol ("Tacho-Nadel") steht für die Operation M (Messen).
Anders als bei den bisherigen Modell-Beschreibungen können wir nichts über die inneren Zustände des Simulators wissen. Die Zeile der Zustandsübergänge in den bisherigen Experimenten ist nicht verfügbar - jedenfalls beim QC. Die Messergebnisse des Simulators können '0' oder '1' sein, das entspricht dem D und L im ZBIT-Modell. Was wir für P bekommen sehen wir im Experiment.
Wir nehmen das ZBIT-Vorhersage-Experiment aus dem vorausgehenden Blog:
R ------ H ----- X ----- H ---- H ----- M -> P
und bilden es ab auf den QC-Simulator (hier: IBM Q Experience Circuit Composer).
Mit dem QC-Simulator können wir dieses Experiment einmal durchführen und erhalten:
{'0': 1}. Wir wiederholen und bekommen wieder ein {'0': 1}, dann ein {'1': 1}. Das bedeutet, die ersten drei Experiment-Durchläufe resultierten jeweils in einer '0', bzw. einer '1'. Wir bekommen also D oder L als Output. Wie bei der ZBIT-Box machen wir jetzt Mehrfach-Experimente, z.B. eine Serie von 50 Durchläufen. Das Ergebnis:
also 28 mal L und 22 mal D in unserer ZBIT-Interpretation.
Das sieht schon recht spannend aus. Im Prinzip könnten wir alle bisherigen Experimente mit dem BIT-Modell und dem ZBIT-Modell in dieser Weise simulieren. Damit kommen wir dem Konzept von Qubit-Algorithmen schon sehr nahe.
Und wir gewinnen eine wichtige Erkenntnis: ZBIT (das verbesserte) und BIT sind Teilmodelle des - hier noch unbekannten - Qubit-Modells.
Wer Lust hat, kann nicht nur Fragen und Antworten als Kommentar unten anfügen, sondern auch unter IBM Q Experience sich registrieren und schon mal im Circuit Composer stöbern. Wir schauen uns das in einem späteren Blog noch mal näher an. Eine ähnliche Umgebung bietet auch Google an mit Cirq.
Nun wenden wir uns einer Darstellung zu, mit der wir das ZBIT-Modell mit einfachen Formeln berechnen können.
3. Ein Modell mit Formeln
Wir wollen nun versuchen, die Zustände so zu definieren, dass man mit ihnen "rechnen" kann. Statt in den Automaten-Tabellen die Zustandsübergänge nachzusehen, wollen wir sie mit einfachen Formeln berechnen können. Das gleiche für die Outputs.
Eine naheliegende Idee wäre es, die Ziffern in den Zuständen [00] usw. tatsächlich als Zahlen aufzufassen und dazu auch die Output-Ergebnisse in Zahlen umzuwandeln: D entspricht 0, L entpricht 1, und P dem Wert 1/2. Diese Werte können verstanden werden als Wahrscheinlichkeiten, dass wir Licht sehen, wenn wir die Klappe öffnen. Wir schreiben dafür p(L).
Allerdings hatten wir [00] usw. eigentlich nur als "Label" für die Zustände eingeführt und nicht als arithmetische Größen. Daher wäre es ein erstaunlicher Zufall, wenn wir damit ein konsistentes arithmetisches Modell bilden könnten.
Tatsächlich geht das aber, bis zu einem gewissen Punkt. Wer sich davon überzeugen will: es gibt einen Annex zu Q6, in dem das dargestellt wird. Wenn wir allerdings das Modell erweitern wollen, z.B. um Zustände, die p(L) = 1/4 als Output liefern, gibt es Schwierigkeiten.
Wir geben uns daher etwas mehr Freiheit bei der Definition eines rechnerischen Modells, indem wir die Zustände ("Labels"), in ein x-y-Koordinatensystem einbetten. (Wir erinnern uns, dass wir mit den zwei-ziffrigen Zuständen in Q5 so etwas wie 2-dimensionale Zustände eingeführt hatten.) Die Zustände werden dann zu Punkten in der x-y-Ebene.
Wir halten die Bezeichnungen [00] bzw. Alice zunächst einmal bei. Sie benennen die Punkt, so wie man Punkte A, B und C eines Dreiecks in der Ebene benennt und mit Koordinaten versieht. Trotzdem können die 0-en und 1-en etwas verwirrend wirken. Die Punkte werden mit ihren Koordinaten in normalen Klammern geschrieben, also z.B. (1,0), die [00] in eckigen Klammern sind die Label der Punkte, ebenso wie die Namen Alice etc.
Das Einfachste ist, die beiden Zustände [00] und [11] - die ja auch die BIT-Zustände repräsentieren - auf die Koordinaten-Achsen zu platzieren. [00] als Punkt auf der x-Achse bei 1: (x,y) = (0,1). Und [11] entsprechend auf der y-Achse: (x,y) = (1,0). Das Diagramm zeigt wie.

Wo würden wir dann die Zustände [10] und [01] positionieren? Nun, das können wir bereits "ausrechnen". Schauen wir uns dazu zunächst die passenden Formeln für die Wirkung der Operatoren R, X und H an.
R ist einfach: R(x,y) = (1,0). Das Reset überführt jeden Zustand in den Ausgangszustand, der jetzt die Koordinaten (0,1) hat.
Auch X ist nicht schwer: X(x,y) = (y,x). X als "Switch" vertauscht die Koordinaten. Das passt schon mal für die beiden vorgegeben Zustände (1,0) <-> (0,1).
Wir haben uns noch nicht um den Output gekümmert. Der Output von (1,0) (i.e. [00]) muss p(L) = 0 sein, der vom (0,1) (i.e. [11]) entspechend p(L) = 1. Es liegt daher nahe, die y-Koordinate als p(L) zu übernehmen. Die x-Koordinate wäre entsprechend als Wahrscheinlichkeit für D zu interpretieren: p(D).
Hieraus folgt direkt und zwingend: p(L) + p(D) = 1.
Damit bekommen wir folgende Bedingungen für die Zustände [10] und [01]:
(1) Sie müssen so positioniert werden, dass die Summe ihrer beiden Koordinaten 1 ergeben.
(2) Der zugehörige Output muß 1/2 ergeben; die y-Koordinate muss also 1/2 sein.
(3) Wegen der Wirkung von HH, müssen H[00] = [01] und H[11] = [10] unterschiedliche Koordinaten haben.
Man sieht sofort, dass diese Bedingungen unvereinbar sind: [01] kann mit den Koordinaten (1/2,1/2) die Bedingung (1) und (2) erfüllen. Es gibt aber keinen weiteren Punkt, der (1) und (2) erfüllt.
Wir ändern daher die Output-Definition: M (x,y) = p(L) = |y|, d.h. die Wahrscheinlichkeit für L ist der Absolutbetrag von y. Die Bedingungen (1) und (2) werden dann zu
(1') Die Summe der Beträge der Koordinaten muss 1 sein: |x|+|y| = 1. Und
(2') Der Betrag der y-Koodinate muss 1/2 sein
Wenn wir dann [10] mit den Koordinaten (1/2,-1/2) versehen, werden alle drei Bedingungen erfüllt. (Siehe Grafik.)

Weiter stellen wir fest, dass aus der Anwendung X und H auf schon bekannte Zustände neue Punkte hervorgehen, die wir ebenfalls als Zustände zulassen müssen. So muß z.B. mit (1/2,-1/2), den Koordinaten für [10], auch X(1/2,-1/2) = (-1/2,1/2) = -(1/2,-1/2) ein zulässiger Zustand sein. Wenn H(1/2,-1/2) wieder (0,1) sein soll (doppelte H Anwendung auf [11]), dann muss H(-1/2,1/2) = (0,-1) zulässig sein. Und X(0,-1) = (-1,0) = -(1,0) ebenso. Das Diagramm zeigt die Zustände als Punkte, die Pfeile für die Operatoren sind wegen der Übersichtlichkeit nicht eingezeichnet. Man kann aber, wenn man Lust hat, selbst versuchen, diese Zustandsübergänge einzuzeichnen (gedanklich), soweit es geht.
Das ist zunächst einmal überraschend: Wenn wir die 4 Zustände des ZBIT-Modell durch Punkte im (x,y)-Koordinatensystem darstellen wollen, erweitert sich das Modell zwangsläufig auf 8 Zustände! In unserem ZBIT Ball Game oben, würden dann Alice, Bob, Charly und Debbie jeweils einen Zwilling bekommen, Twin-Alice usw. Eigentümlich - aber niemand zwingt uns, bei einem Modell für die ZBIT-Box mit nur 4 Zuständen auszukommen. Vier ist das Minimum, aber 8 geht auch. Im Diagramm sind die "Twins" als helle Punkte eingezeichnet. Frage: Welcher Punkt ist Twin von wem?
Damit haben wir für das Koordinaten-basierte Modell:
- Die Zustandsmenge
- Die Wirkung von R und X als Formel
- Die Zustand -> Output Abbildung M mit der Interpretation als p(L), Wahrscheinlichkeit für L als Messergebnis
Was fehlt, ist die Formel für H. Wir hatten festgelegt, dass (1,0) (Label [00]) durch H in (1/2,1/2) überführt werden soll und (0,1) (Label [11]) in (1/2,-1/2). Eine naheliegende Formel für H wäre: H(x,y) = 1/2 (x+y, x-y). Sie liefert für (1,0) und (0,1) genau das, was sie soll. Aber wie sieht es mit (1/2,1/2) und (1/2,-1/2) aus. H auf diese Zustände angewandt müsste ja wieder (1,0) bzw. (0,1) ergeben.
Jedoch: H(1/2,1/2) = 1/2 (1/2+1/2, 1/2-1/2) = 1/2 (1,0). Den gleichen Widerspruch erhalten wir für (1/2,-1/2). Der Faktor 1/2 macht die Inkonsistenz aus. Wenn wir allerdings den Faktor 1/2 in der Definition von H weg lassen, bekommen wir für (1,0) und (0,1) schon gleich falsche Ergebnisse.
Was tun? Vielleicht etwas dazwischen - zwischen 1/2 und 1? Wie es die Mathematiker gerne machen, wenn man sich nicht entscheiden kann, setzt man anstelle von 1/2 eine Variable, sagen wir a, und versucht, dafür einen passenden Wert zu bestimmen. Das ist sehr elegant. Probieren wir also: H(x,y) = a*(x+y,x-y).
H(1,0) ergibt dann nicht mehr (1/2,1/2) sondern (a,a), was immer a auch ist. Entsprechend H(0,1) = (a,-a). Wenn wir darauf wieder H anwenden, bekommen wir H(a,a) = a*(a+a,a-a) = a*(2a,0) und H(a,-a) = a*(a+(-a),a-(-a)) = a*(0,2a). Andererseits muss H(a,a) = (1,0) sein, also a*2a = 2a² = 1 oder a = 1/sqrt(2). Das klappt auch mit der zweiten Bedingung. Très chic !
Allerdings stehen wir damit wieder am Anfang. Wir müssen die drei Spiegelpunkte oben wieder neu festlegen. Aber dieses Mal lohnt sich die Spielerei; denn wir haben hiermit automatisch die grundlegenden Komponenten für ein Qubit-Modell in Q7 abgeleitet.
- Die 8 Zustände sind (1,0), (0.1), (-1,0), (0-1) und (a,a), (-a,a), (-a,-a), (a,-a) mit a = Wurzel aus 1/2. Alle diese Zustände liegen auf einem Kreis mit Radius 1.0 im x,y-Koordinatensystem. Sie erfüllen die Bedingung x² + y² = 1, die Gleichung des Einheitskreises.
- R und X sind genau wie zuvor definiert, und H als H(x,y) = a*(x+y,x-y).
- Wie ist die Zustand-Output Beziehung? Jetzt ergibt M(x,y) = y² das p(L), die Wahrscheinlichkeit für L bei einer Messung. Und p(D) ist entsprechend x² = 1-y², was ja für alle Zustände auf dem Einheitskreis stimmt.
Das Diagramm zeigt das ZBIT-Modell mit diesen Festlegungen.

Der letzte Abschnitt war sicher keine einfache Spielerei mehr. Aber wir haben es geschafft. Und, wie wir sehen werden, gleichzeitig DAS Werkzeug für Qubit-Algorithmen gefunden.
Frage: Wie würde das ZBIT Ball Game aussehen, wenn wir die vier neuen Spieler ins Feld bringen würden - nennen wir sie Twin-Alice, Twin-Bob, Twin-Charly und Twin-Debbie? Wer Lust hat usw.
Im nächsten Blog, versprochen, kommen wir aber zum QuBit-Modell - zumindest in einer ersten Form.
Fortsetzung folgt - Stay tuned!
Q2 Etwas ist anders! - Hello Qubit World
Schauen wir uns also als erstes einmal an, wie so ein Qubit-Algorithmus aussieht - auch ohne den schon zu verstehen.
Bekanntlich ist in der Welt der Informatiker, Programmierer, Hacker das erste, was man ausprobiert bei einem neuen System oder einer neuen Programmiersprache, ein "Hello World" zu erzeugen. Das allgemein anerkannte "Hello World" für Quantencomputer sieht allerdings schon etwas ungewöhnlich aus. Es liefert auch nicht die Grußformel, sondern ist nur so etwas wie das einfachste Qubit-Programm. (Natürlich kann man das Ergebnis daraus in der "normalen" Programmierwelt in ein "Hello World" umwandeln.) Wir werden sehen.
Und so sieht es aus, das "Hello World" der Qubit-Welt:
Sieht eher aus wie ein Ausschnitt aus einer Partitur moderner Musik? Der Vergleich ist gar nicht so unpassend. Dieser Ausschnitt "orchestriert" quasi die "Instrumente" eines Quantencomputers, die Qubits.
Am liebsten würde man das Bild sofort erklärt bekommen, aber das heben wir uns für später auf. Man sieht erst mal, ein Q-Algorithmus wird ganz anders dargestellt als üblich. Und dies ist eine einfache Möglichkeit einen Q-Algorithmus als Qubit-Programm grafisch zu beschreiben. (Das ist so ähnlich wie bei Scratch oder Roberta, wo man ein Programm visuell aus einzelnene Bausteinen zusammensetzen kann.) Natürlich kann man statt in der grafischen Form einen Q-Algorithmus auch in Worten beschreiben, wobei man aber sorgfältig mit der Sprache umgehen muss. Oder durch eine Programmiersprache, z.B. Python. Wir probieren das nachher mal.
Versuchen wir mal zu erraten, was die Grafik bedeutet, quasi als Partitur: Es gibt offenbar 2 Instrumente, q1 und q2. Die haben ihre eigene "Linie", auf denen etwas passiert. Klar, das sollen zwei Qubits sein - wobei wir erst in einem späteren Blog erklären, was Qubits sein sollen. Auf den Linien geschieht etwas, nacheinander, mit den jeweiligen Qubits. Was auch immer H macht, es macht es nur mit q1. Danach kommt etwas, dass offenbar q1 und q2 zusammen betrifft.
Am Ende jeder Qubit-Zeile steht eine Art Anzeige-Symbol, wie bei einem Messgerät, mit einem Pfeil nach unten auf die Doppel-Linie C. Tatsächlich, hier wird ein Qubit "gemessen". Und das Messergebnis wird an die C-Linie übertragen. Das "C" steht übrigens für "classical" - nein, nicht "klassische Musik", sondern "klassiches Bit", im Gegensatz zum Quanten-Bit oder Qubit. Danach kommt nichts mehr, es ist Schluß, das "Musikstück" zuende.
Was bedeuten die Zahlen unten auf der C-Linie? Das ist einfach zu erraten: die 2 besagt, dass C die "Messwerte" von 2 Qubits aufnimmt. Die 0, klar, steht für: "Hier kommt der Messwert von Qubit q0." Und die 1 für Messwert von q1 - falls es in einer größeren "Partitur" mal unübersichtlich werden sollte. Und da das C für "classical bit" steht, kann man schon schließen, dass die Messergebnisse herkömmliche Bits sind.
Jetzt wissen wir, was die Teile bedeuten, aber immer noch nicht, was der ganze Qubit-Schaltkreis macht (so nennt man das Gebilde in Anlehnung an herkömmliche elektronische Schaltkreise).
Das liegt daran, dass wir nicht wissen was die beiden blauen Symbole machen. Mal sehen, ob wir das auch noch verstehen können, z.B. indem wir den Hello Qubit World Algorithmus in normaler Sprache formulieren.
Aber jetzt ist es erst mal genug. Pause. Dann weiter lesen.
Cliff-Hanger - Stay tuned
Und hier geht's weiter.