Qiskit-Implementierung
In dieser Lektion implementieren wir einige der Ideen aus der Lektion über Verschränkung in der Praxis mit Qiskit.
# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-aer
from qiskit import __version__
print(__version__)
2.1.1
from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister
from qiskit_aer import AerSimulator
from qiskit.visualization import plot_histogram, array_to_latex
from qiskit.result import marginal_distribution
from qiskit.circuit.library import UGate
from numpy import pi, random
Hier ist eine Quantum-Circuit-Implementierung des Teleportationsprotokolls.
qubit = QuantumRegister(1, "Q")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")
a = ClassicalRegister(1, "a")
b = ClassicalRegister(1, "b")
protocol = QuantumCircuit(qubit, ebit0, ebit1, a, b)
# Prepare ebit used for teleportation
protocol.h(ebit0)
protocol.cx(ebit0, ebit1)
protocol.barrier()
# Alice's operations
protocol.cx(qubit, ebit0)
protocol.h(qubit)
protocol.barrier()
# Alice measures and sends classical bits to Bob
protocol.measure(ebit0, a)
protocol.measure(qubit, b)
protocol.barrier()
# Bob uses the classical bits to conditionally apply gates
with protocol.if_test((a, 1)):
protocol.x(ebit1)
with protocol.if_test((b, 1)):
protocol.z(ebit1)
display(protocol.draw(output="mpl"))

Der Circuit nutzt einige Qiskit-Funktionen, die wir in früheren Lektionen noch nicht gesehen haben, darunter die Funktionen barrier und if_test.
Die Funktion barrier erzeugt eine visuelle Trennung, die das Circuit-Diagramm leichter lesbar macht; außerdem verhindert sie, dass Qiskit während der Kompilierung verschiedene Vereinfachungen und Optimierungen über die Barrier hinweg vornimmt, wenn Circuits auf echter Hardware ausgeführt werden.
Die Funktion if_test wendet eine Operation bedingt in Abhängigkeit von einem klassischen Bit oder Register an.
Der Circuit initialisiert zunächst in einem -Zustand (was nicht Teil des Protokolls selbst ist), gefolgt von Alices Operationen, dann ihren Messungen und schließlich Bobs Operationen. Um zu testen, ob das Protokoll korrekt funktioniert, wenden wir ein zufällig erzeugtes Einzel-Qubit-Gate auf den initialisierten -Zustand von an, um einen zufälligen Quantenzustandsvektor zu erhalten, der teleportiert werden soll. Indem wir nach Ausführung des Protokolls das Inverse (d. h. die konjugiert-transponierte Matrix) dieses Gates auf anwenden, können wir verifizieren, dass der Zustand teleportiert wurde — wir messen und prüfen, ob er in den -Zustand zurückgekehrt ist.
Zunächst wählen wir zufällig ein unitäres Qubit-Gate aus.
random_gate = UGate(
theta=random.random() * 2 * pi,
phi=random.random() * 2 * pi,
lam=random.random() * 2 * pi,
)
display(array_to_latex(random_gate.to_matrix()))
Jetzt erstellen wir einen neuen Testcircuit, der zuerst unser zufälliges Gate auf anwendet, dann den Teleportationscircuit ausführt und schließlich das Inverse unseres zufälligen Gates auf das Qubit anwendet und misst. Das Ergebnis sollte mit Sicherheit sein.
# Create a new circuit including the same bits and qubits used in the
# teleportation protocol.
test = QuantumCircuit(qubit, ebit0, ebit1, a, b)
# Start with the randomly selected gate on Q
test.append(random_gate, qubit)
test.barrier()
# Append the entire teleportation protocol from above.
test = test.compose(protocol)
test.barrier()
# Finally, apply the inverse of the random unitary to B and measure.
test.append(random_gate.inverse(), ebit1)
result = ClassicalRegister(1, "Result")
test.add_register(result)
test.measure(ebit1, result)
display(test.draw(output="mpl"))

Zum Schluss führen wir den Aer-Simulator für diesen Circuit aus und zeigen ein Histogramm der Ausgaben an. Wir sehen die Statistiken für alle drei klassischen Bits: Das unterste/linkste Bit sollte stets sein — ein Zeichen dafür, dass Qubit erfolgreich nach teleportiert wurde —, während die anderen beiden Bits annähernd gleichverteilt sein sollten.
result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))
Wir können die Statistiken auch filtern, um uns ausschließlich auf das Testresultat-Qubit zu konzentrieren:
filtered_statistics = marginal_distribution(statistics, [2])
display(plot_histogram(filtered_statistics))
Superdense Coding
Superdense Coding ist ein Protokoll, das in gewisser Weise ein komplementäres Ziel zur Teleportation verfolgt. Anstatt die Übertragung eines Qubits mithilfe von zwei klassischen Kommunikationsbits zu ermöglichen (auf Kosten eines E-Bits an Verschränkung), erlaubt es die Übertragung von zwei klassischen Bits mithilfe eines Qubits an Quantenkommunikation (wiederum auf Kosten eines E-Bits an Verschränkung).
Genauer gesagt haben wir eine Senderin (Alice) und einen Empfänger (Bob), die ein E-Bit Verschränkung teilen. Gemäß den in der Lektion geltenden Konventionen bedeutet dies, dass Alice ein Qubit hält, Bob ein Qubit hält und das Paar gemeinsam im Zustand ist. Alice möchte zwei klassische Bits an Bob übermitteln, die wir mit und bezeichnen, und sie wird dies erreichen, indem sie ihm ein Qubit schickt.
Es ist naheliegend, diese Leistung als weniger beeindruckend zu betrachten als das, was die Teleportation erreicht. Das Senden von Qubits wird auf absehbare Zeit so viel schwieriger sein als das Senden klassischer Bits, dass der Tausch eines Qubits Quantenkommunikation gegen zwei Bits klassischer Kommunikation — noch dazu auf Kosten eines E-Bits — kaum lohnenswert erscheint. Das bedeutet jedoch nicht, dass Superdense Coding uninteressant wäre — ganz im Gegenteil.
Passend zum Thema der Lektion ist Superdense Coding aus einem Grund interessant: Es zeigt eine konkrete und (im Kontext der Informationstheorie) durchaus bemerkenswerte Anwendung von Verschränkung. Ein berühmtes Theorem der Quanteninformationstheorie, bekannt als Holevos Theorem, besagt, dass es ohne die Verwendung eines gemeinsam geteilten verschränkten Zustands unmöglich ist, mehr als ein Bit klassischer Information durch das Senden eines einzelnen Qubits zu übertragen. (Holevos Theorem ist allgemeiner gefasst als dies. Seine genaue Aussage ist technisch und erfordert Erläuterungen, aber dies ist eine seiner Konsequenzen.) Durch Superdense Coding ermöglicht geteilte Verschränkung also effektiv eine Verdopplung der klassischen Informationskapazität beim Senden von Qubits.
Protokoll
Das folgende Quantum-Circuit-Diagramm beschreibt das Superdense-Coding-Protokoll:

In Worten beschrieben, geht Alice wie folgt vor:
-
Falls wendet Alice ein -Gate auf ihr Qubit an (falls tut sie es nicht).
-
Falls wendet Alice ein -Gate auf ihr Qubit an (falls tut sie es nicht).
Anschließend sendet Alice ihr Qubit an Bob.
Was Bob tut, wenn er das Qubit erhält: Zunächst wendet er ein controlled-NOT-Gate an, wobei das Kontrolqubit und das Zielqubit ist, und dann wendet er ein Hadamard-Gate auf an. Dann misst er , um zu erhalten, und , um zu erhalten — in beiden Fällen mit Standardbasismessungen.
Analyse
Die Idee hinter diesem Protokoll ist einfach: Alice wählt effektiv aus, in welchem Bell-Zustand sie sich mit Bob befinden möchte, sie schickt Bob ihr Qubit, und Bob misst, um festzustellen, welchen Bell-Zustand Alice gewählt hat.
Das heißt, sie teilen anfänglich , und abhängig von den Bits und lässt Alice diesen Zustand entweder unverändert oder verschiebt ihn in einen der anderen Bell-Zustände, indem sie oder auf ihr Qubit anwendet.
Bobs Aktionen haben folgende Auswirkungen auf die vier Bell-Zustände:
Dies kann direkt überprüft werden, indem man die Ergebnisse von Bobs Operationen auf diese Zustände nacheinander berechnet.
Wenn Bob also seine Messungen durchführt, kann er bestimmen, welchen Bell-Zustand Alice gewählt hat. Die Korrektheit des Protokolls lässt sich durch Überprüfung aller Fälle bestätigen:
-
Falls ist der Zustand von , wenn Bob erhält, Er transformiert diesen Zustand in und erhält
-
Falls ist der Zustand von , wenn Bob erhält, Er transformiert diesen Zustand in und erhält
-
Falls ist der Zustand von , wenn Bob erhält, Er transformiert diesen Zustand in und erhält
-
Falls ist der Zustand von , wenn Bob erhält, Er transformiert diesen Zustand in und erhält (Der Phasenfaktor hat hier keinen Einfluss.)
Superdense-Coding-Implementierung
Hier ist eine einfache Implementierung von Superdense Coding, bei der wir den Circuit selbst in Abhängigkeit von den zu übertragenden Bits festlegen. Zunächst wählen wir zwei zu übertragende Bits. (Später werden wir sie zufällig wählen, aber für den Moment treffen wir einfach eine beliebige Wahl.)
c = "1"
d = "0"
Jetzt bauen wir den Circuit entsprechend auf. Hier lassen wir Qiskit die Standardnamen für die Qubits verwenden: für das obere Qubit und für das untere.
protocol = QuantumCircuit(2)
# Prepare ebit used for superdense coding
protocol.h(0)
protocol.cx(0, 1)
protocol.barrier()
# Alice's operations
if d == "1":
protocol.z(0)
if c == "1":
protocol.x(0)
protocol.barrier()
# Bob's actions
protocol.cx(0, 1)
protocol.h(0)
protocol.measure_all()
display(protocol.draw(output="mpl"))

Neu hier ist vor allem die Funktion measure_all, die alle Qubits misst und die Ergebnisse in ein einziges klassisches Register schreibt (in diesem Fall also zwei Bits).
Der Aer-Simulator liefert die erwartete Ausgabe.
result = AerSimulator().run(protocol).result()
statistics = result.get_counts()
for outcome, frequency in statistics.items():
print(f"Measured {outcome} with frequency {frequency}")
display(plot_histogram(statistics))
Measured 10 with frequency 1024
Jetzt verwenden wir ein zusätzliches Qubit als Zufallsbit-Generator — im Wesentlichen zum Werfen fairer Münzen. Damit wählen wir und zufällig aus und führen anschließend das Superdense-Coding-Protokoll aus.
rbg = QuantumRegister(1, "coin")
ebit0 = QuantumRegister(1, "A")
ebit1 = QuantumRegister(1, "B")
Alice_c = ClassicalRegister(1, "Alice c")
Alice_d = ClassicalRegister(1, "Alice d")
test = QuantumCircuit(rbg, ebit0, ebit1, Alice_d, Alice_c)
# Initialize the ebit
test.h(ebit0)
test.cx(ebit0, ebit1)
test.barrier()
# Use the 'coin' qubit twice to generate Alice's bits c and d.
test.h(rbg)
test.measure(rbg, Alice_c)
test.h(rbg)
test.measure(rbg, Alice_d)
test.barrier()
# Now the protocol runs, starting with Alice's actions, which depend
# on her bits.
with test.if_test((Alice_d, 1), label="Z"):
test.z(ebit0)
with test.if_test((Alice_c, 1), label="X"):
test.x(ebit0)
test.barrier()
# Bob's actions
test.cx(ebit0, ebit1)
test.h(ebit0)
test.barrier()
Bob_c = ClassicalRegister(1, "Bob c")
Bob_d = ClassicalRegister(1, "Bob d")
test.add_register(Bob_d)
test.add_register(Bob_c)
test.measure(ebit0, Bob_d)
test.measure(ebit1, Bob_c)
display(test.draw(output="mpl"))

Die Ausführung des Aer-Simulators zeigt die Ergebnisse: Die klassischen Bits von Alice und Bob stimmen stets überein.
result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

Das CHSH-Spiel
Das letzte Beispiel in dieser Lektion ist kein Protokoll, sondern ein Spiel, bekannt als das CHSH-Spiel.
Wenn wir hier von einem Spiel sprechen, meinen wir damit keine Freizeitbeschäftigung oder ein sportliches Kräftemessen, sondern eine mathematische Abstraktion im Sinne der Spieltheorie. Mathematische Abstraktionen von Spielen werden beispielsweise in der Wirtschaftswissenschaft und der Informatik untersucht — sie sind sowohl faszinierend als auch nützlich.
Die Buchstaben CHSH stehen für die Autoren — John Clauser, Michael Horne, Abner Shimony und Richard Holt — eines Aufsatzes von 1969, in dem das Beispiel erstmals beschrieben wurde. Sie beschrieben das Beispiel nicht als Spiel, sondern als Experiment. Die Beschreibung als Spiel ist jedoch sowohl naheliegend als auch intuitiv.
Das CHSH-Spiel gehört zu einer Klasse von Spielen, die als nichtlokale Spiele bekannt sind. Nichtlokale Spiele sind ungemein interessant und stehen in tiefem Zusammenhang mit Physik, Informatik und Mathematik — mit Rätseln, die bis heute ungelöst bleiben. Wir beginnen den Abschnitt damit, nichtlokale Spiele zu erklären, und widmen uns dann dem CHSH-Spiel und dem, was es so besonders macht.
Nichtlokale Spiele
Ein nichtlokales Spiel ist ein kooperatives Spiel, bei dem zwei Spieler, Alice und Bob, zusammenarbeiten, um ein bestimmtes Ergebnis zu erzielen. Das Spiel wird von einem Schiedsrichter geleitet, der sich an strenge Regeln hält, die Alice und Bob bekannt sind.
Alice und Bob können sich nach Belieben auf das Spiel vorbereiten, doch sobald das Spiel beginnt, ist ihnen die Kommunikation verboten. Man kann sich vorstellen, dass das Spiel in einer Art Sicherheitseinrichtung stattfindet — als ob der Schiedsrichter die Rolle eines Detektivs spielt und Alice und Bob Verdächtige sind, die in getrennten Räumen verhört werden. Eine andere Sichtweise auf die Situation ist, dass Alice und Bob durch eine enorme Entfernung voneinander getrennt sind und die Kommunikation untersagt ist, weil die Lichtgeschwindigkeit innerhalb der Laufzeit des Spiels keine Übermittlung erlaubt. Das heißt: Wenn Alice versucht, Bob eine Nachricht zu senden, ist das Spiel bereits vorbei, bevor er sie erhält, und umgekehrt.
Bei einem nichtlokalen Spiel stellt der Schiedsrichter zunächst Alice und Bob je eine Frage. Wir verwenden den Buchstaben für Alices Frage und für Bobs Frage. Dabei denken wir an und als klassische Zustände; im CHSH-Spiel sind und Bits.
Der Schiedsrichter wählt diese Fragen mittels Zufälligkeit aus. Genauer gesagt ist jedem möglichen Fragepaar eine Wahrscheinlichkeit zugeordnet, und der Schiedsrichter hat zugesichert, die Fragen zum Zeitpunkt des Spiels auf diese Weise zufällig auszuwählen. Alle — einschließlich Alice und Bob — kennen diese Wahrscheinlichkeiten, aber niemand weiß konkret, welches Paar gewählt wird, bis das Spiel beginnt.
Nachdem Alice und Bob ihre Fragen erhalten haben, müssen sie Antworten geben: Alices Antwort ist und Bobs Antwort ist Auch diese sind im Allgemeinen klassische Zustände und im CHSH-Spiel Bits.
An diesem Punkt trifft der Schiedsrichter eine Entscheidung: Alice und Bob gewinnen oder verlieren je nachdem, ob das Antwortpaar gemäß einem festen Regelwerk als korrekt für das Fragepaar gilt oder nicht. Unterschiedliche Regeln bedeuten unterschiedliche Spiele; die Regeln für das CHSH-Spiel werden im nächsten Abschnitt beschrieben. Wie bereits angedeutet, sind die Regeln allen bekannt.
Das folgende Diagramm zeigt eine grafische Darstellung der Interaktionen.

Die Unsicherheit darüber, welche Fragen gestellt werden, und insbesondere die Tatsache, dass jeder Spieler die Frage des anderen nicht kennt, macht nichtlokale Spiele für Alice und Bob anspruchsvoll — ganz wie zwei kolludierende Verdächtige in getrennten Räumen, die versuchen, ihre Geschichte konsistent zu halten.
Eine präzise Beschreibung des Schiedsrichters definiert eine Instanz eines nichtlokalen Spiels. Dazu gehört eine Angabe der Wahrscheinlichkeiten für jedes Fragepaar sowie die Regeln, die bestimmen, ob jedes Antwortpaar für jedes mögliche Fragepaar gewinnt oder verliert.
Wir werden uns gleich das CHSH-Spiel ansehen, doch zuvor sei kurz erwähnt, dass es auch sehr interessant ist, andere nichtlokale Spiele zu betrachten. Tatsächlich ist das äußerst interessant: Es gibt einige recht einfache nichtlokale Spiele, bei denen bisher nicht bekannt ist, wie gut Alice und Bob mit Verschränkung spielen können. Die Grundkonstruktion ist einfach, doch dahinter steckt Komplexität — und bei manchen Spielen kann es unmöglich schwierig sein, beste oder nahezu optimale Strategien für Alice und Bob zu berechnen. Das ist die überraschend kontraintuitive Natur des nichtlokalen Spielemodells.
Beschreibung des CHSH-Spiels
Hier ist die genaue Beschreibung des CHSH-Spiels, wobei (wie oben) Alices Frage, Bobs Frage, Alices Antwort und Bobs Antwort ist:
-
Die Fragen und Antworten sind allesamt Bits:
-
Der Schiedsrichter wählt die Fragen gleichmäßig zufällig. Das heißt, jede der vier Möglichkeiten, und wird mit der Wahrscheinlichkeit ausgewählt.
-
Die Antworten gewinnen für die Fragen wenn gilt, und verlieren andernfalls. Die folgende Tabelle drückt diese Regel aus, indem sie für jedes Fragepaar die Gewinn- und Verlustbedingungen der Antworten auflistet.
Grenzen klassischer Strategien
Betrachten wir nun Strategien für Alice und Bob im CHSH-Spiel, beginnend mit klassischen Strategien.
Deterministische Strategien
Wir beginnen mit deterministischen Strategien, bei denen Alices Antwort eine Funktion der Frage ist, die sie erhält, und entsprechend Bobs Antwort eine Funktion der Frage , die er erhält. So können wir beispielsweise für Alices Antwort schreiben, wenn ihre Frage ist, und für Alices Antwort, wenn ihre Frage ist.
Keine deterministische Strategie kann das CHSH-Spiel jedes Mal gewinnen. Eine Möglichkeit, dies einzusehen, besteht darin, alle möglichen deterministischen Strategien einzeln durchzugehen und zu prüfen, dass jede von ihnen bei mindestens einem der vier möglichen Fragepaare verliert. Alice und Bob können jeweils aus vier möglichen Funktionen von einem Bit auf ein Bit wählen — die wir in der Lektion über Einzelsysteme kennengelernt haben — sodass insgesamt verschiedene deterministische Strategien zu überprüfen sind.
Wir können dies auch analytisch begründen. Wenn Alice und Bobs Strategie bei gewinnt, muss gelten; wenn ihre Strategie bei gewinnt, gilt und wenn die Strategie bei gewinnt, gilt Wenn ihre Strategie also bei allen drei Möglichkeiten gewinnt, gilt
Das bedeutet, dass die Strategie im letzten Fall verliert, wo zum Gewinnen erforderlich ist. Es kann daher keine deterministische Strategie geben, die immer gewinnt.
Andererseits ist es leicht, deterministische Strategien zu finden, die in drei der vier Fälle gewinnen, etwa Daraus schließen wir, dass die maximale Gewinnwahrscheinlichkeit für Alice und Bob mit einer deterministischen Strategie beträgt.
Probabilistische Strategien
Wie wir gerade festgestellt haben, können Alice und Bob mit einer deterministischen Strategie das CHSH-Spiel nicht öfter als 75 % der Zeit gewinnen. Aber was ist mit einer probabilistischen Strategie? Könnte es Alice und Bob helfen, Zufälligkeit zu nutzen — einschließlich der Möglichkeit gemeinsamer Zufälligkeit, bei der ihre zufälligen Entscheidungen korreliert sind?
Es stellt sich heraus, dass probabilistische Strategien überhaupt nicht helfen, die Gewinnwahrscheinlichkeit von Alice und Bob zu erhöhen. Der Grund dafür ist, dass jede probabilistische Strategie alternativ als eine zufällige Auswahl einer deterministischen Strategie angesehen werden kann, genauso wie (wie in der Lektion über Einzelsysteme erwähnt) probabilistische Operationen als zufällige Auswahl deterministischer Operationen betrachtet werden können. Der Durchschnitt ist nie größer als das Maximum, und daher bieten probabilistische Strategien keinen Vorteil hinsichtlich ihrer gesamten Gewinnwahrscheinlichkeit.
Somit ist das Gewinnen mit Wahrscheinlichkeit das Beste, was Alice und Bob mit irgendeiner klassischen Strategie erreichen können, egal ob deterministisch oder probabilistisch.
Strategie für das CHSH-Spiel
An diesem Punkt stellt sich die natürliche Frage, ob Alice und Bob mit einer Quantenstrategie besser abschneiden können. Insbesondere: Wenn sie sich einen verschränkten Quantenzustand teilen, wie die folgende Abbildung andeutet — den sie vor dem Spiel hätten vorbereiten können —, können sie dann ihre Gewinnwahrscheinlichkeit erhöhen?

Die Antwort ist ja, und das ist der Kernpunkt dieses Beispiels und der Grund, warum es so interessant ist. Schauen wir uns also genau an, wie Alice und Bob mit Verschränkung in diesem Spiel besser abschneiden können.
Benötigte Vektoren und Matrizen
Als Erstes müssen wir einen Qubit-Zustandsvektor für jede reelle Zahl (die wir als Winkel in Radiant auffassen) wie folgt definieren.
Hier sind einige einfache Beispiele:
Wir haben außerdem die folgenden Beispiele, die in der nachfolgenden Analyse auftreten:
Betrachten wir die allgemeine Form, so stellen wir fest, dass das innere Produkt zwischen zwei dieser Vektoren die folgende Formel hat:
Genauer gesagt enthalten diese Vektoren nur reelle Einträge, sodass man sich keine Gedanken über komplexe Konjugation machen muss: das innere Produkt ist das Produkt der Kosinusse plus das Produkt der Sinusse. Die Anwendung einer der Winkeladditionsformeln aus der Trigonometrie führt zur obigen Vereinfachung. Diese Formel offenbart die geometrische Interpretation des inneren Produkts zwischen reellen Einheitsvektoren als Kosinus des Winkels zwischen ihnen.
Berechnen wir das innere Produkt des Tensorprodukts zweier dieser Vektoren mit dem -Zustand, erhalten wir einen ähnlichen Ausdruck, jedoch mit einem im Nenner:
Unser Interesse an diesem bestimmten inneren Produkt wird gleich klar werden; vorerst halten wir dies lediglich als Formel fest.
Als Nächstes definieren wir eine unitäre Matrix für jeden Winkel wie folgt.
Intuitiv gesprochen transformiert diese Matrix in und in Um zu überprüfen, dass dies eine unitäre Matrix ist, ist eine wichtige Beobachtung, dass die Vektoren und für jeden Winkel orthogonal sind:
Damit ergibt sich
Wir können diese Matrix alternativ auch explizit schreiben als
Dies ist ein Beispiel einer Rotationsmatrix, die zweidimensionale Vektoren mit reellen Einträgen um den Winkel um den Ursprung dreht. Folgen wir einer Standardkonvention für die Benennung und Parametrisierung von Rotationen verschiedener Formen, so gilt mit
Strategiebeschreibung
Nun können wir die Quantenstrategie beschreiben.
-
Vorbereitung: Alice und Bob beginnen das Spiel mit einem gemeinsamen E-Bit: Alice hält ein Qubit Bob hält ein Qubit und zusammen befinden sich die beiden Qubits im Zustand
-
Alices Aktionen:
- Erhält Alice die Frage wendet sie auf ihr Qubit an.
- Erhält Alice die Frage wendet sie auf ihr Qubit an.
Die Operation, die Alice auf ausführt, lässt sich alternativ so beschreiben:
Nachdem Alice diese Operation angewendet hat, misst sie mit einer Standardbasismessung und setzt ihre Antwort gleich dem Messergebnis.
-
Bobs Aktionen:
- Erhält Bob die Frage wendet er auf sein Qubit an.
- Erhält Bob die Frage wendet er auf sein Qubit an.
Wie bei Alice können wir Bobs Operation auf so ausdrücken:
Nachdem Bob diese Operation angewendet hat, misst er mit einer Standardbasismessung und setzt seine Antwort gleich dem Messergebnis.
Hier ist ein Quantenschaltkreisdiagramm, das diese Strategie beschreibt:

In diesem Diagramm sehen wir zwei gewöhnliche kontrollierte Gates, eines für oben und eines für unten. Außerdem gibt es zwei Gates, die wie kontrollierte Gates aussehen, eines für oben und eines für unten, aber der Kreis, der das Steuersignal darstellt, ist nicht ausgefüllt. Das bezeichnet einen anderen Typ von kontrolliertem Gate, bei dem das Gate ausgeführt wird, wenn das Steuersignal auf gesetzt ist (anstatt auf wie bei einem gewöhnlichen kontrollierten Gate). Effektiv führt Bob also auf seinem Qubit aus, wenn , und , wenn ; und Alice führt auf ihrem Qubit aus, wenn , und , wenn , was mit der oben stehenden Protokollbeschreibung übereinstimmt.
Es bleibt noch herauszufinden, wie gut diese Strategie für Alice und Bob funktioniert. Dazu gehen wir die vier möglichen Fragepaare einzeln durch.
Fallweise Analyse
-
Fall 1:
In diesem Fall wendet Alice auf ihr Qubit und Bob auf seines an, sodass der Zustand der beiden Qubits nach Ausführung ihrer Operationen ist: