Vai al contenuto principale

Implementazione con Qiskit

In questa lezione implementiamo alcune delle idee della lezione sull'entanglement in azione, usando 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

Ecco un'implementazione tramite circuito quantistico del protocollo di teleportazione.

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"))

Output of the previous code cell

Il circuito fa uso di alcune funzionalità di Qiskit che non abbiamo ancora visto nelle lezioni precedenti, tra cui le funzioni barrier e if_test. La funzione barrier crea una separazione visiva che rende il diagramma del circuito più leggibile, e impedisce anche a Qiskit di eseguire varie semplificazioni e ottimizzazioni attraverso la barriera durante la compilazione quando i circuiti vengono eseguiti su hardware reale. La funzione if_test applica un'operazione in modo condizionale a seconda di un bit o registro classico.

Il circuito inizializza prima (A,B)(\mathsf{A},\mathsf{B}) nello stato ϕ+\vert \phi^+\rangle (che non fa parte del protocollo stesso), seguito dalle operazioni di Alice, poi dalle sue misurazioni, e infine dalle operazioni di Bob. Per verificare che il protocollo funzioni correttamente, applicheremo un gate a qubit singolo generato casualmente allo stato inizializzato 0\vert 0\rangle di Q\mathsf{Q} per ottenere un vettore di stato quantistico casuale da teleportare. Applicando l'inverso (cioè la trasposta coniugata) di quel gate a B\mathsf{B} dopo l'esecuzione del protocollo, possiamo verificare che lo stato sia stato teleportato misurando e controllando che sia tornato allo stato 0\vert 0\rangle.

Per prima cosa scegliamo casualmente un gate unitario a qubit singolo.

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()))
[0.98972121580.01950801030.141673401i0.0603319186+0.1296609988i0.8319925233+0.5360378028i] \begin{bmatrix} 0.9897212158 & -0.0195080103 - 0.141673401 i \\ 0.0603319186 + 0.1296609988 i & -0.8319925233 + 0.5360378028 i \\ \end{bmatrix}

Ora creiamo un nuovo circuito di test che prima applica il nostro gate casuale a Q,\mathsf{Q}, poi esegue il circuito di teleportazione, e infine applica l'inverso del nostro gate casuale al qubit B\mathsf{B} e misura. Il risultato dovrebbe essere 00 con certezza.

# 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"))

Output of the previous code cell

Infine, eseguiamo il simulatore Aer su questo circuito e tracciamo un istogramma degli output. Vedremo le statistiche per tutti e tre i bit classici: il bit in basso/a sinistra dovrebbe essere sempre 0,0, indicando che il qubit Q\mathsf{Q} è stato teleportato con successo in B,\mathsf{B}, mentre gli altri due bit dovrebbero essere approssimativamente uniformi.

result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

Output of the previous code cell

Possiamo anche filtrare le statistiche per concentrarci esclusivamente sul qubit del risultato del test, in questo modo:

filtered_statistics = marginal_distribution(statistics, [2])
display(plot_histogram(filtered_statistics))

Output of the previous code cell

Superdense coding

Il superdense coding è un protocollo che, in un certo senso, raggiunge un obiettivo complementare alla teleportazione. Invece di consentire la trasmissione di un qubit usando due bit classici di comunicazione (al costo di un e-bit di entanglement), permette la trasmissione di due bit classici usando un qubit di comunicazione quantistica (anche in questo caso, al costo di un e-bit di entanglement).

In dettaglio, abbiamo un mittente (Alice) e un destinatario (Bob) che condividono un e-bit di entanglement. Secondo le convenzioni adottate nella lezione, questo significa che Alice detiene un qubit A,\mathsf{A}, Bob detiene un qubit B,\mathsf{B}, e insieme la coppia (A,B)(\mathsf{A},\mathsf{B}) si trova nello stato ϕ+.\vert\phi^+\rangle. Alice desidera trasmettere due bit classici a Bob, che indicheremo con cc e d,d, e lo farà inviandogli un qubit.

È ragionevole considerare questa operazione come meno interessante di quella che realizza la teleportazione. Inviare qubit sarà probabilmente molto più difficile che inviare bit classici nel prevedibile futuro, al punto che scambiare un qubit di comunicazione quantistica per due bit di comunicazione classica, oltretutto al costo di un e-bit, sembra difficilmente conveniente. Tuttavia, questo non implica che il superdense coding non sia interessante, perché lo è sicuramente.

In linea con il tema della lezione, uno dei motivi per cui il superdense coding è interessante è che dimostra un uso concreto e (nel contesto della teoria dell'informazione) piuttosto sorprendente dell'entanglement. Un famoso teorema nella teoria dell'informazione quantistica, noto come teorema di Holevo, implica che senza l'uso di uno stato entangled condiviso, è impossibile comunicare più di un bit di informazione classica inviando un singolo qubit. (Il teorema di Holevo è più generale di così. La sua formulazione precisa è tecnica e richiede una spiegazione, ma questa è una delle sue conseguenze.) Quindi, attraverso il superdense coding, l'entanglement condiviso consente effettivamente il raddoppio della capacità di trasporto di informazione classica dell'invio di qubit.

Protocollo

Il seguente diagramma di circuito quantistico descrive il protocollo di superdense coding:

Superdense coding circuit

In parole, ecco cosa fa Alice:

  1. Se d=1,d=1, Alice esegue un gate ZZ sul suo qubit A\mathsf{A} (e se d=0d=0 non lo fa).

  2. Se c=1,c=1, Alice esegue un gate XX sul suo qubit A\mathsf{A} (e se c=0c=0 non lo fa).

Alice invia quindi il suo qubit A\mathsf{A} a Bob.

Quando Bob riceve il qubit A,\mathsf{A}, prima esegue un gate controlled-NOT, con A\mathsf{A} come controllo e B\mathsf{B} come target, e poi applica un gate di Hadamard ad A.\mathsf{A}. Poi misura B\mathsf{B} per ottenere cc e A\mathsf{A} per ottenere d,d, con misurazioni nella base standard in entrambi i casi.

Analisi

L'idea alla base di questo protocollo è semplice: Alice sceglie effettivamente quale stato di Bell vuole condividere con Bob, invia a Bob il suo qubit, e Bob misura per determinare quale stato di Bell Alice ha scelto.

Cioè, inizialmente condividono ϕ+,\vert\phi^+\rangle, e a seconda dei bit cc e d,d, Alice lascia questo stato invariato o lo sposta in uno degli altri stati di Bell applicando I,\mathbb{I}, X,X, Z,Z, o XZXZ al suo qubit A.\mathsf{A}.

(II)ϕ+=ϕ+(IZ)ϕ+=ϕ(IX)ϕ+=ψ+(IXZ)ϕ+=ψ\begin{aligned} (\mathbb{I} \otimes \mathbb{I}) \vert \phi^+ \rangle & = \vert \phi^+\rangle \\ (\mathbb{I} \otimes Z) \vert \phi^+ \rangle & = \vert \phi^-\rangle \\ (\mathbb{I} \otimes X) \vert \phi^+ \rangle & = \vert \psi^+\rangle \\ (\mathbb{I} \otimes XZ) \vert \phi^+ \rangle & = \vert \psi^-\rangle \end{aligned}

Le azioni di Bob hanno i seguenti effetti sui quattro stati di Bell:

ϕ+00ϕ01ψ+10ψ11\begin{aligned} \vert \phi^+\rangle & \mapsto \vert 00\rangle\\ \vert \phi^-\rangle & \mapsto \vert 01\rangle\\ \vert \psi^+\rangle & \mapsto \vert 10\rangle\\ \vert \psi^-\rangle & \mapsto -\vert 11\rangle\\ \end{aligned}

Questo può essere verificato direttamente, calcolando i risultati delle operazioni di Bob su questi stati uno alla volta.

Quindi, quando Bob esegue le sue misurazioni, è in grado di determinare quale stato di Bell Alice ha scelto. Verificare che il protocollo funzioni correttamente è una questione di controllare ogni caso:

  • Se cd=00,cd = 00, allora lo stato di (B,A)(\mathsf{B},\mathsf{A}) quando Bob riceve A\mathsf{A} è ϕ+.\vert \phi^+\rangle. Trasforma questo stato in 00\vert 00\rangle e ottiene cd=00.cd = 00.

  • Se cd=01,cd = 01, allora lo stato di (B,A)(\mathsf{B},\mathsf{A}) quando Bob riceve A\mathsf{A} è ϕ.\vert \phi^-\rangle. Trasforma questo stato in 01\vert 01\rangle e ottiene cd=01.cd = 01.

  • Se cd=10,cd = 10, allora lo stato di (B,A)(\mathsf{B},\mathsf{A}) quando Bob riceve A\mathsf{A} è ψ+.\vert \psi^+\rangle. Trasforma questo stato in 10\vert 10\rangle e ottiene cd=10.cd = 10.

  • Se cd=11,cd = 11, allora lo stato di (B,A)(\mathsf{B},\mathsf{A}) quando Bob riceve A\mathsf{A} è ψ.\vert \psi^-\rangle. Trasforma questo stato in 11-\vert 11\rangle e ottiene cd=11.cd = 11. (Il fattore di fase negativo non ha alcun effetto qui.)

Implementazione del superdense coding

Ecco una semplice implementazione del superdense coding in cui specifichiamo il circuito stesso in base ai bit da trasmettere. Per prima cosa scegliamo due bit da trasmettere. (In seguito li sceglieremo casualmente, ma per ora facciamo semplicemente una scelta arbitraria.)

c = "1"
d = "0"

Ora costruiamo il circuito di conseguenza. Qui lasceremo che Qiskit usi i nomi predefiniti per i qubit: q0\mathsf{q}_0 per il qubit in alto e q1\mathsf{q}_1 per quello in basso.

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"))

Output of the previous code cell

Non c'è molto di nuovo qui, tranne la funzione measure_all, che misura tutti i qubit e inserisce i risultati in un unico registro classico (e quindi avendo due bit in questo caso).

L'esecuzione del simulatore Aer produce l'output atteso.

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

Output of the previous code cell

Ora usiamo un qubit aggiuntivo come generatore di bit casuali — essenzialmente per lanciare monete equilibrate. Lo useremo per scegliere casualmente cc e d,d, e poi eseguire il protocollo di superdense coding.

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"))

Output of the previous code cell

L'esecuzione del simulatore Aer mostra i risultati: i bit classici di Alice e Bob concordano sempre.

result = AerSimulator().run(test).result()
statistics = result.get_counts()
display(plot_histogram(statistics))

Output of the previous code cell

Il gioco CHSH

L'ultimo esempio che verrà discusso in questa lezione non è un protocollo, ma un gioco noto come il gioco CHSH.

Quando parliamo di un gioco in questo contesto, non ci riferiamo a qualcosa pensato per essere giocato per divertimento o sport, ma piuttosto a un'astrazione matematica nel senso della teoria dei giochi. Le astrazioni matematiche dei giochi vengono studiate in economia e informatica, ad esempio, e sono sia affascinanti che utili.

Le lettere CHSH si riferiscono agli autori — John Clauser, Michael Horne, Abner Shimony e Richard Holt — di un articolo del 1969 in cui l'esempio fu descritto per la prima volta. Essi non descrissero l'esempio come un gioco, ma piuttosto come un esperimento. La sua descrizione come gioco, tuttavia, è sia naturale che intuitiva.

Il gioco CHSH rientra in una classe di giochi noti come giochi non locali. I giochi non locali sono incredibilmente interessanti e hanno profondi legami con la fisica, l'informatica e la matematica — e custodiscono misteri che rimangono ancora irrisolti. Inizieremo la sezione spiegando cosa sono i giochi non locali, per poi concentrarci sul gioco CHSH e su ciò che lo rende interessante.

Giochi non locali

Un gioco non locale è un gioco cooperativo in cui due giocatori, Alice e Bob, lavorano insieme per ottenere un determinato risultato. Il gioco è gestito da un arbitro, che si comporta secondo linee guida rigide note ad Alice e Bob.

Alice e Bob possono prepararsi al gioco come preferiscono, ma una volta che il gioco inizia è loro vietato comunicare. Potremmo immaginare che il gioco si svolga in una struttura sicura di qualche tipo — come se l'arbitro facesse la parte di un detective e Alice e Bob fossero sospettati interrogati in stanze separate. Ma un altro modo di pensare all'impostazione è che Alice e Bob siano separati da una grande distanza, e la comunicazione sia proibita perché la velocità della luce non la consente entro il tempo di esecuzione del gioco. Vale a dire, se Alice cerca di inviare un messaggio a Bob, il gioco sarà finito quando lui lo riceverà, e viceversa.

Il funzionamento di un gioco non locale prevede che l'arbitro ponga prima una domanda ciascuno ad Alice e Bob. Useremo la lettera xx per riferirci alla domanda di Alice e yy per riferirci a quella di Bob. Qui pensiamo a xx e yy come stati classici, e nel gioco CHSH xx e yy sono bit.

L'arbitro usa la casualità per selezionare queste domande. Per essere precisi, esiste una certa probabilità p(x,y)p(x,y) associata a ogni possibile coppia (x,y)(x,y) di domande, e l'arbitro si è impegnato a scegliere le domande in modo casuale, al momento del gioco, in questo modo. Tutti, inclusi Alice e Bob, conoscono queste probabilità — ma nessuno sa specificamente quale coppia (x,y)(x,y) sarà scelta fino all'inizio del gioco.

Dopo che Alice e Bob hanno ricevuto le loro domande, devono fornire le risposte: la risposta di Alice è aa e quella di Bob è b.b. Anche queste sono stati classici in generale, e bit nel gioco CHSH.

A questo punto l'arbitro prende una decisione: Alice e Bob vincono o perdono a seconda che la coppia di risposte (a,b)(a,b) sia considerata corretta per la coppia di domande (x,y)(x,y) secondo un insieme fisso di regole. Regole diverse danno luogo a giochi diversi, e le regole del gioco CHSH nello specifico sono descritte nella sezione che segue. Come già accennato, le regole sono note a tutti.

Il seguente diagramma fornisce una rappresentazione grafica delle interazioni.

Nonlocal game

È l'incertezza su quali domande verranno poste, e in particolare il fatto che ogni giocatore non conosce la domanda dell'altro giocatore, a rendere i giochi non locali difficili per Alice e Bob — proprio come sospettati in collusione in stanze diverse che cercano di mantenere coerente la loro versione dei fatti.

Una descrizione precisa dell'arbitro definisce un'istanza di un gioco non locale. Questo include una specifica delle probabilità p(x,y)p(x,y) per ogni coppia di domande, insieme alle regole che determinano se ogni coppia di risposte (a,b)(a,b) vince o perde per ogni possibile coppia di domande (x,y).(x,y).

Daremo un'occhiata al gioco CHSH tra poco, ma prima di farlo, riconosciamo brevemente che è interessante considerare anche altri giochi non locali. In effetti, è estremamente interessante; esistono giochi non locali abbastanza semplici per i quali al momento non si sa quanto bene Alice e Bob possano giocare usando l'entanglement. L'impostazione è semplice, ma c'è una complessità in gioco — e per alcuni giochi può essere impossibilmente difficile calcolare le strategie migliori o quasi migliori per Alice e Bob. Questa è la natura sorprendentemente controintuitiva del modello dei giochi non locali.

Descrizione del gioco CHSH

Ecco la descrizione precisa del gioco CHSH, in cui (come sopra) xx è la domanda di Alice, yy è la domanda di Bob, aa è la risposta di Alice e bb è la risposta di Bob:

  • Le domande e le risposte sono tutte bit: x,y,a,b{0,1}.x,y,a,b\in\{0,1\}.

  • L'arbitro sceglie le domande (x,y)(x,y) in modo uniformemente casuale. Cioè, ognuna delle quattro possibilità, (0,0),(0,0), (0,1),(0,1), (1,0)(1,0) e (1,1),(1,1), viene selezionata con probabilità 1/4.1/4.

  • Le risposte (a,b)(a,b) vincono per le domande (x,y)(x,y) se ab=xya\oplus b = x\wedge y e perdono altrimenti. La seguente tabella esprime questa regola elencando le condizioni di vittoria e sconfitta sulle risposte (a,b)(a,b) per ogni coppia di domande (x,y).(x,y).

(x,y)winlose(0,0)a=bab(0,1)a=bab(1,0)a=bab(1,1)aba=b\begin{array}{ccc} (x,y) & \text{win} & \text{lose} \\[1mm]\hline \rule{0mm}{4mm}(0,0) & a = b & a \neq b \\[1mm] (0,1) & a = b & a \neq b \\[1mm] (1,0) & a = b & a \neq b \\[1mm] (1,1) & a \neq b & a = b \end{array}

Limitazione delle strategie classiche

Consideriamo ora le strategie per Alice e Bob nel gioco CHSH, partendo dalle strategie classiche.

Strategie deterministiche

Iniziamo con le strategie deterministiche, in cui la risposta aa di Alice è una funzione della domanda xx che riceve, e analogamente la risposta bb di Bob è una funzione della domanda yy che riceve. Così, per esempio, possiamo scrivere a(0)a(0) per rappresentare la risposta di Alice quando la sua domanda è 0,0, e a(1)a(1) per rappresentare la risposta di Alice quando la sua domanda è 1.1.

Nessuna strategia deterministica può vincere il gioco CHSH ogni volta. Un modo per capirlo è semplicemente passare in rassegna una per una tutte le possibili strategie deterministiche e verificare che ognuna di esse perda per almeno una delle quattro possibili coppie di domande. Alice e Bob possono scegliere ciascuno tra quattro possibili funzioni da un bit a un bit — che abbiamo incontrato nella lezione sui Sistemi singoli — quindi ci sono in totale 1616 diverse strategie deterministiche da controllare.

Possiamo anche ragionare analiticamente su questo. Se la strategia di Alice e Bob vince quando (x,y)=(0,0),(x,y) = (0,0), allora deve essere che a(0)=b(0);a(0) = b(0); se la loro strategia vince quando (x,y)=(0,1),(x,y) = (0,1), allora a(0)=b(1);a(0) = b(1); e analogamente, se la strategia vince per (x,y)=(1,0)(x,y)=(1,0) allora a(1)=b(0).a(1) = b(0). Quindi, se la loro strategia vince per tutte e tre le possibilità, allora

b(1)=a(0)=b(0)=a(1).b(1) = a(0) = b(0) = a(1).

Ciò implica che la strategia perde nell'ultimo caso (x,y)=(1,1),(x,y) = (1,1), dove per vincere è richiesto che a(1)b(1).a(1) \neq b(1). Dunque, non può esistere una strategia deterministica che vinca sempre.

D'altra parte, è facile trovare strategie deterministiche che vincano in tre dei quattro casi, come a(0)=a(1)=b(0)=b(1)=0.a(0)=a(1)=b(0)=b(1)=0. Da ciò concludiamo che la probabilità massima di vittoria per Alice e Bob utilizzando una strategia deterministica è 3/4.3/4.

Strategie probabilistiche

Come abbiamo appena concluso, Alice e Bob non riescono a fare meglio di vincere il gioco CHSH il 75% delle volte usando una strategia deterministica. Ma che dire di una strategia probabilistica? Potrebbe aiutare Alice e Bob usare la casualità — inclusa la possibilità di casualità condivisa, in cui le loro scelte casuali sono correlate?

Si scopre che le strategie probabilistiche non aiutano affatto ad aumentare la probabilità di vittoria di Alice e Bob. Questo perché ogni strategia probabilistica può essere vista alternativamente come una selezione casuale di una strategia deterministica, proprio come (come menzionato nella lezione sui Sistemi singoli) le operazioni probabilistiche possono essere viste come selezioni casuali di operazioni deterministiche. La media non è mai maggiore del massimo, e quindi ne consegue che le strategie probabilistiche non offrono alcun vantaggio in termini di probabilità di vittoria complessiva.

Quindi, vincere con probabilità 3/43/4 è il massimo che Alice e Bob possono ottenere usando qualsiasi strategia classica, deterministica o probabilistica.

Strategia per il gioco CHSH

Una domanda naturale da porsi a questo punto è se Alice e Bob possano fare di meglio usando una strategia quantistica. In particolare, se condividono uno stato quantistico entangled come suggerisce la seguente figura, che avrebbero potuto preparare prima di giocare, possono aumentare la loro probabilità di vittoria?

Nonlocal game with entanglement

La risposta è sì, e questo è il punto principale dell'esempio e il motivo per cui è così interessante. Vediamo quindi esattamente come Alice e Bob possono fare meglio in questo gioco usando l'entanglement.

Vettori e matrici necessari

La prima cosa che dobbiamo fare è definire un vettore di stato qubit ψθ,\vert \psi_{\theta}\rangle, per ogni numero reale θ\theta (che penseremo come un angolo misurato in radianti) come segue.

ψθ=cos(θ)0+sin(θ)1\vert\psi_{\theta}\rangle = \cos(\theta)\vert 0\rangle + \sin(\theta) \vert 1\rangle

Ecco alcuni esempi semplici:

ψ0=0ψπ/2=1ψπ/4=+ψπ/4=\begin{aligned} \vert\psi_{0}\rangle & = \vert 0\rangle \\ \vert\psi_{\pi/2}\rangle & = \vert 1\rangle \\ \vert\psi_{\pi/4}\rangle & = \vert + \rangle \\ \vert\psi_{-\pi/4}\rangle & = \vert - \rangle \end{aligned}

Abbiamo anche i seguenti esempi, che compaiono nell'analisi sottostante:

ψπ/8=2+2202221ψπ/8=2+220+2221ψ3π/8=2220+2+221ψ5π/8=2220+2+221\begin{aligned} \vert\psi_{-\pi/8}\rangle & = \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 0\rangle -\frac{\sqrt{2 - \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{\pi/8}\rangle & = \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 - \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{3\pi/8}\rangle & = \frac{\sqrt{2 - \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 1\rangle \\[1mm] \vert\psi_{5\pi/8}\rangle & = -\frac{\sqrt{2 - \sqrt{2}}}{2}\vert 0\rangle + \frac{\sqrt{2 + \sqrt{2}}}{2}\vert 1\rangle \end{aligned}

Guardando la forma generale, vediamo che il prodotto interno tra due qualsiasi di questi vettori ha questa formula:

ψαψβ=cos(α)cos(β)+sin(α)sin(β)=cos(αβ).(3)\langle \psi_{\alpha} \vert \psi_{\beta} \rangle = \cos(\alpha)\cos(\beta) + \sin(\alpha)\sin(\beta) = \cos(\alpha-\beta). \tag{3}

In dettaglio, questi vettori contengono solo numeri reali, quindi non ci sono coniugati complessi di cui preoccuparsi: il prodotto interno è il prodotto dei coseni più il prodotto dei seni. L'uso di una delle formule di addizione degli angoli della trigonometria porta alla semplificazione di cui sopra. Questa formula rivela l'interpretazione geometrica del prodotto interno tra vettori unitari reali come il coseno dell'angolo tra essi.

Se calcoliamo il prodotto interno del prodotto tensoriale di due qualsiasi di questi vettori con lo stato ϕ+\vert \phi^+\rangle, otteniamo un'espressione simile, ma con un 2\sqrt{2} al denominatore:

ψαψβϕ+=cos(α)cos(β)+sin(α)sin(β)2=cos(αβ)2.(4)\langle \psi_{\alpha} \otimes \psi_{\beta} \vert \phi^+ \rangle = \frac{\cos(\alpha)\cos(\beta) + \sin(\alpha)\sin(\beta)}{\sqrt{2}} = \frac{\cos(\alpha-\beta)}{\sqrt{2}}. \tag{4}

Il nostro interesse per questo particolare prodotto interno diventerà chiaro a breve, ma per ora ci limitiamo a osservarlo come formula.

Definiamo poi una matrice unitaria UθU_{\theta} per ogni angolo θ\theta come segue.

Uθ=0ψθ+1ψθ+π/2U_{\theta} = \vert 0 \rangle \langle \psi_{\theta} \vert + \vert 1\rangle\langle \psi_{\theta+\pi/2} \vert

In termini intuitivi, questa matrice trasforma ψθ\vert\psi_{\theta}\rangle in 0\vert 0\rangle e ψθ+π/2\vert \psi_{\theta + \pi/2}\rangle in 1.\vert 1\rangle. Per verificare che si tratti di una matrice unitaria, un'osservazione chiave è che i vettori ψθ\vert\psi_{\theta}\rangle e ψθ+π/2\vert\psi_{\theta + \pi/2}\rangle sono ortogonali per ogni angolo θ\theta:

ψθψθ+π/2=cos(π/2)=0.\langle \psi_{\theta} \vert \psi_{\theta + \pi/2} \rangle = \cos(\pi/2) = 0.

Quindi, troviamo che

UθUθ=(0ψθ+1ψθ+π/2)(ψθ0+ψθ+π/21)=0ψθψθ0+0ψθψθ+π/21+1ψθ+π/2ψθ0+1ψθ+π/2ψθ+π/21=00+11=I.\begin{aligned} U_{\theta} U_{\theta}^{\dagger} & = \bigl(\vert 0 \rangle \langle \psi_{\theta} \vert + \vert 1\rangle\langle \psi_{\theta+\pi/2} \vert\bigr) \bigl(\vert \psi_{\theta} \rangle \langle 0 \vert + \vert \psi_{\theta+\pi/2}\rangle\langle 1 \vert\bigr) \\[1mm] & = \vert 0 \rangle \langle \psi_{\theta} \vert \psi_{\theta} \rangle \langle 0 \vert + \vert 0 \rangle \langle \psi_{\theta} \vert \psi_{\theta+\pi/2} \rangle \langle 1 \vert + \vert 1 \rangle \langle \psi_{\theta+\pi/2} \vert \psi_{\theta} \rangle \langle 0 \vert + \vert 1 \rangle \langle \psi_{\theta+\pi/2} \vert \psi_{\theta+\pi/2} \rangle \langle 1 \vert \\[1mm] & = \vert 0 \rangle \langle 0 \vert + \vert 1 \rangle \langle 1 \vert\\[1mm] & = \mathbb{I}. \end{aligned}

Possiamo in alternativa scrivere questa matrice esplicitamente come

Uθ=(cos(θ)sin(θ)cos(θ+π/2)sin(θ+π/2))=(cos(θ)sin(θ)sin(θ)cos(θ)).U_{\theta} = \begin{pmatrix} \cos(\theta) & \sin(\theta)\\[1mm] \cos(\theta+ \pi/2) & \sin(\theta + \pi/2) \end{pmatrix} = \begin{pmatrix} \cos(\theta) & \sin(\theta)\\[1mm] -\sin(\theta) & \cos(\theta) \end{pmatrix}.

Questo è un esempio di matrice di rotazione, e in particolare ruota vettori bidimensionali con elementi numerici reali di un angolo di θ-\theta attorno all'origine. Se seguiamo una convenzione standard per il nome e la parametrizzazione delle rotazioni di varie forme, abbiamo Uθ=Ry(2θ)U_{\theta} = R_y(-2\theta) dove

Ry(θ)=(cos(θ/2)sin(θ/2)sin(θ/2)cos(θ/2)).R_y(\theta) = \begin{pmatrix} \cos(\theta/2) & -\sin(\theta/2)\\[1mm] \sin(\theta/2) & \cos(\theta/2) \end{pmatrix}.

Descrizione della strategia

Possiamo ora descrivere la strategia quantistica.

  • Configurazione: Alice e Bob iniziano il gioco condividendo un e-bit: Alice tiene un qubit A,\mathsf{A}, Bob tiene un qubit B,\mathsf{B}, e insieme i due qubit (X,Y)(\mathsf{X},\mathsf{Y}) si trovano nello stato ϕ+\vert\phi^+\rangle.

  • Azioni di Alice:

    • Se Alice riceve la domanda x=0,x=0, applica U0U_{0} al suo qubit A.\mathsf{A}.
    • Se Alice riceve la domanda x=1,x=1, applica Uπ/4U_{\pi/4} al suo qubit A.\mathsf{A}.

    L'operazione che Alice esegue su A\mathsf{A} può essere descritta alternativamente così:

    {U0if x=0Uπ/4if x=1\begin{cases} U_0 & \text{if $x = 0$}\\ U_{\pi/4} & \text{if $x = 1$} \end{cases}

    Dopo che Alice ha applicato questa operazione, misura A\mathsf{A} con una misura nella base standard e imposta la sua risposta aa come risultato della misura.

  • Azioni di Bob:

    • Se Bob riceve la domanda y=0,y=0, applica Uπ/8U_{\pi/8} al suo qubit B.\mathsf{B}.
    • Se Bob riceve la domanda y=1,y=1, applica Uπ/8U_{-\pi/8} al suo qubit B.\mathsf{B}.

    Come abbiamo fatto per Alice, possiamo esprimere l'operazione di Bob su B\mathsf{B} così:

    {Uπ/8if y=0Uπ/8if y=1\begin{cases} U_{\pi/8} & \text{if $y = 0$}\\ U_{-\pi/8} & \text{if $y = 1$} \end{cases}

    Dopo che Bob ha applicato questa operazione, misura B\mathsf{B} con una misura nella base standard e imposta la sua risposta bb come risultato della misura.

Ecco un diagramma di circuito quantistico che descrive questa strategia:

CHSH game circuit

In questo diagramma vediamo due gate controllati ordinari, uno per Uπ/8U_{-\pi/8} in alto e uno per Uπ/4U_{\pi/4} in basso. Abbiamo anche due gate che sembrano gate controllati, uno per Uπ/8U_{\pi/8} in alto e uno per U0U_{0} in basso, ma il cerchio che rappresenta il controllo non è riempito. Questo indica un tipo diverso di gate controllato in cui il gate viene eseguito se il controllo è impostato su 00 (anziché su 11 come in un normale gate controllato). Quindi, in pratica, Bob esegue Uπ/8U_{\pi/8} sul suo qubit se y=0y=0 e Uπ/8U_{-\pi/8} se y=1;y=1; e Alice esegue U0U_0 sul suo qubit se x=0x=0 e Uπ/4U_{\pi/4} se x=1,x=1, il che è coerente con la descrizione del protocollo a parole sopra.

Resta da capire quanto bene funziona questa strategia per Alice e Bob. Lo faremo esaminando uno per uno i quattro possibili coppie di domande.

Analisi caso per caso

  • Caso 1: (x,y)=(0,0).(x,y) = (0,0).

    In questo caso Alice esegue U0U_{0} sul suo qubit e Bob esegue Uπ/8U_{\pi/8} sul suo, quindi lo stato dei due qubit (A,B)(\mathsf{A},\mathsf{B}) dopo che hanno eseguito le loro operazioni è

    (U0Uπ/8)ϕ+=00ψ0ψπ/8ϕ++01ψ0ψ5π/8ϕ++10ψπ/2ψπ/8ϕ++11ψπ/2ψ5π/8ϕ+=cos(π8)00+cos(5π8)01+cos(3π8)10+cos(π8)112.\begin{aligned} \bigl(U_0 \otimes U_{\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_0 \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_0 \otimes\psi_{5\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{\pi/2} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\pi/2} \otimes \psi_{5\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(-\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{5\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{3\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(-\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    Le probabilità per le quattro possibili coppie di risposta (a,b)(a,b) sono quindi le seguenti.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(5π8)=228Pr((a,b)=(1,0))=12cos2(3π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    Possiamo quindi ottenere le probabilità che a=ba=b e aba\neq b sommando.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    Per la coppia di domande (0,0),(0,0), Alice e Bob vincono se a=b,a=b, e quindi vincono in questo caso con probabilità

    2+24.\frac{2 + \sqrt{2}}{4}.
  • Caso 2: (x,y)=(0,1).(x,y) = (0,1).

    In questo caso Alice esegue U0U_{0} sul suo qubit e Bob esegue Uπ/8U_{-\pi/8} sul suo, quindi lo stato dei due qubit (A,B)(\mathsf{A},\mathsf{B}) dopo che hanno eseguito le loro operazioni è

    (U0Uπ/8)ϕ+=00ψ0ψπ/8ϕ++01ψ0ψ3π/8ϕ++10ψπ/2ψπ/8ϕ++11ψπ/2ψ3π/8ϕ+=cos(π8)00+cos(3π8)01+cos(5π8)10+cos(π8)112.\begin{aligned} \bigl(U_0 \otimes U_{-\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_0 \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_0 \otimes\psi_{3\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{\pi/2} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\pi/2} \otimes \psi_{3\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{3\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{5\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    Le probabilità per le quattro possibili coppie di risposta (a,b)(a,b) sono quindi le seguenti.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(3π8)=228Pr((a,b)=(1,0))=12cos2(5π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    Anche in questo caso, possiamo ottenere le probabilità che a=ba=b e aba\neq b sommando.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    Per la coppia di domande (0,1),(0,1), Alice e Bob vincono se a=b,a=b, e quindi vincono in questo caso con probabilità

    2+24.\frac{2 + \sqrt{2}}{4}.
  • Caso 3: (x,y)=(1,0).(x,y) = (1,0).

    In questo caso Alice esegue Uπ/4U_{\pi/4} sul suo qubit e Bob esegue Uπ/8U_{\pi/8} sul suo, quindi lo stato dei due qubit (A,B)(\mathsf{A},\mathsf{B}) dopo che hanno eseguito le loro operazioni è

    (Uπ/4Uπ/8)ϕ+=00ψπ/4ψπ/8ϕ++01ψπ/4ψ5π/8ϕ++10ψ3π/4ψπ/8ϕ++11ψ3π/4ψ5π/8ϕ+=cos(π8)00+cos(3π8)01+cos(5π8)10+cos(π8)112.\begin{aligned} \bigl(U_{\pi/4} \otimes U_{\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_{\pi/4} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\pi/4} \otimes\psi_{5\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{3\pi/4} \otimes \psi_{\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{3\pi/4} \otimes \psi_{5\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{3\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{5\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    Le probabilità per le quattro possibili coppie di risposta (a,b)(a,b) sono quindi le seguenti.

    Pr((a,b)=(0,0))=12cos2(π8)=2+28Pr((a,b)=(0,1))=12cos2(3π8)=228Pr((a,b)=(1,0))=12cos2(5π8)=228Pr((a,b)=(1,1))=12cos2(π8)=2+28\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{5\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8} \end{aligned}

    Troviamo, ancora una volta, che le probabilità che a=ba=b e aba\neq b sono le seguenti.

    Pr(a=b)=2+24Pr(ab)=224\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 + \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 - \sqrt{2}}{4} \end{aligned}

    Per la coppia di domande (1,0),(1,0), Alice e Bob vincono se a=b,a=b, quindi vincono in questo caso con probabilità

    2+24.\frac{2 + \sqrt{2}}{4}.
  • Caso 4: (x,y)=(1,1).(x,y) = (1,1).

    L'ultimo caso è un po' diverso, come ci aspetteremmo perché la condizione di vittoria è diversa in questo caso. Quando xx e yy sono entrambi 1,1, Alice e Bob vincono quando aa e bb sono diversi. In questo caso Alice esegue Uπ/4U_{\pi/4} sul suo qubit e Bob esegue Uπ/8U_{-\pi/8} sul suo, quindi lo stato dei due qubit (A,B)(\mathsf{A},\mathsf{B}) dopo che hanno eseguito le loro operazioni è

    (Uπ/4Uπ/8)ϕ+=00ψπ/4ψπ/8ϕ++01ψπ/4ψ3π/8ϕ++10ψ3π/4ψπ/8ϕ++11ψ3π/4ψ3π/8ϕ+=cos(3π8)00+cos(π8)01+cos(7π8)10+cos(3π8)112.\begin{aligned} \bigl(U_{\pi/4} \otimes U_{-\pi/8}\bigr) \vert \phi^+\rangle & = \vert 00 \rangle \langle \psi_{\pi/4} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\pi/4} \otimes\psi_{3\pi/8}\vert \phi^+\rangle \\ & \qquad + \vert 10 \rangle \langle \psi_{3\pi/4} \otimes \psi_{-\pi/8}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{3\pi/4} \otimes \psi_{3\pi/8}\vert \phi^+\rangle\\[2mm] & = \frac{ \cos\bigl(\frac{3\pi}{8}\bigr) \vert 00\rangle + \cos\bigl(-\frac{\pi}{8}\bigr) \vert 01\rangle + \cos\bigl(\frac{7\pi}{8}\bigr) \vert 10\rangle + \cos\bigl(\frac{3\pi}{8}\bigr) \vert 11\rangle}{\sqrt{2}}. \end{aligned}

    Le probabilità per le quattro possibili coppie di risposta (a,b)(a,b) sono quindi le seguenti.

    Pr((a,b)=(0,0))=12cos2(3π8)=228Pr((a,b)=(0,1))=12cos2(π8)=2+28Pr((a,b)=(1,0))=12cos2(7π8)=2+28Pr((a,b)=(1,1))=12cos2(3π8)=228\begin{aligned} \operatorname{Pr}\bigl((a,b)=(0,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8} \\[2mm] \operatorname{Pr}\bigl((a,b)=(0,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(-\frac{\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,0)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{7\pi}{8}\Bigr) = \frac{2+\sqrt{2}}{8}\\[2mm] \operatorname{Pr}\bigl((a,b)=(1,1)\bigr) & = \frac{1}{2}\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2-\sqrt{2}}{8} \end{aligned}

    Le probabilità hanno effettivamente scambiato le posizioni rispetto agli altri tre casi. Otteniamo le probabilità che a=ba=b e aba\neq b sommando.

    Pr(a=b)=224Pr(ab)=2+24\begin{aligned} \operatorname{Pr}(a = b) & = \frac{2 - \sqrt{2}}{4}\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{2 + \sqrt{2}}{4} \end{aligned}

    Per la coppia di domande (1,1),(1,1), Alice e Bob vincono se ab,a\neq b, e quindi vincono in questo caso con probabilità

    2+24.\frac{2 + \sqrt{2}}{4}.

Vincono in ogni caso con la stessa probabilità:

2+240.85. \frac{2 + \sqrt{2}}{4} \approx 0.85.

Questa è quindi la probabilità complessiva di vittoria. È significativamente meglio di quanto possa fare qualsiasi strategia classica per questo gioco; le strategie classiche hanno una probabilità di vittoria limitata a 3/4.3/4. E questo rende il gioco CHSH un esempio molto interessante.

Questa è la probabilità di vittoria ottimale per le strategie quantistiche; non possiamo fare di meglio, indipendentemente dallo stato entangled o dalle misure che scegliamo. Questo fatto è noto come disuguaglianza di Tsirelson, dal nome di Boris Tsirelson che la dimostrò per primo — e che descrisse per primo l'esperimento CHSH come un gioco.

Interpretazione geometrica

È possibile pensare alla strategia descritta sopra in modo geometrico, il che può essere utile per comprendere le relazioni tra i vari angoli scelti per le operazioni di Alice e Bob.

Ciò che Alice fa in sostanza è scegliere un angolo α,\alpha, in base alla sua domanda x,x, e poi applicare UαU_{\alpha} al suo qubit e misurare. Analogamente, Bob sceglie un angolo β,\beta, in base a y,y, e poi applica UβU_{\beta} al suo qubit e misura. Abbiamo scelto α\alpha e β\beta come segue.

α={0x=0π/4x=1β={π/8y=0π/8y=1\begin{aligned} \alpha & = \begin{cases} 0 & x=0\\ \pi/4 & x=1 \end{cases}\\[4mm] \beta & = \begin{cases} \pi/8 & y = 0\\ -\pi/8 & y = 1 \end{cases} \end{aligned}

Per il momento, però, prendiamo α\alpha e β\beta come arbitrari. Scegliendo α,\alpha, Alice definisce di fatto una base ortonormale di vettori che ha questo aspetto:

Basis for Alice

Bob fa lo stesso, ma con il suo angolo β\beta:

Basis for Bob

I colori dei vettori corrispondono alle risposte di Alice e Bob: blu per 00 e rosso per 1.1.

Ora, se combiniamo insieme (33) e (44) otteniamo la formula

ψαψβϕ+=12ψαψβ;\langle \psi_{\alpha} \otimes\psi_{\beta} \vert \phi^+ \rangle = \frac{1}{\sqrt{2}} \langle \psi_{\alpha} \vert \psi_{\beta} \rangle;

questo vale per tutti i numeri reali α\alpha e β.\beta.

Seguendo lo stesso tipo di analisi che abbiamo svolto sopra, ma con α\alpha e β\beta come variabili, troviamo questo:

(UαUβ)ϕ+=00ψαψβϕ++01ψαψβ+π/2ϕ++10ψα+π/2ψβϕ++11ψα+π/2ψβ+π/2ϕ+=ψαψβ00+ψαψβ+π/201+ψα+π/2ψβ10+ψα+π/2ψβ+π/2112. \begin{aligned} & \bigl(U_{\alpha} \otimes U_{\beta}\bigr) \vert \phi^+\rangle\\[1mm] & \qquad = \vert 00 \rangle \langle \psi_{\alpha} \otimes \psi_{\beta}\vert \phi^+\rangle + \vert 01 \rangle \langle \psi_{\alpha} \otimes\psi_{\beta + \pi/2}\vert \phi^+\rangle \\ & \qquad \qquad + \vert 10 \rangle \langle \psi_{\alpha+\pi/2} \otimes \psi_{\beta}\vert \phi^+\rangle + \vert 11 \rangle \langle \psi_{\alpha+\pi/2} \otimes \psi_{\beta+\pi/2}\vert \phi^+\rangle\\[2mm] & \qquad = \frac{ \langle \psi_\alpha \vert \psi_\beta \rangle \vert 00\rangle + \langle \psi_\alpha \vert \psi_{\beta+\pi/2} \rangle \vert 01\rangle + \langle \psi_{\alpha+\pi/2} \vert \psi_\beta \rangle \vert 10\rangle + \langle \psi_{\alpha+\pi/2} \vert \psi_{\beta+\pi/2} \rangle \vert 11\rangle }{\sqrt{2}}. \end{aligned}

Concludiamo queste due formule:

Pr(a=b)=12ψαψβ2+12ψα+π/2ψβ+π/22=cos2(αβ)Pr(ab)=12ψαψβ+π/22+12ψα+π/2ψβ2=sin2(αβ).\begin{aligned} \operatorname{Pr}(a = b) & = \frac{1}{2} \vert \langle \psi_\alpha \vert \psi_\beta \rangle \vert^2 + \frac{1}{2} \vert \langle \psi_{\alpha+\pi/2} \vert \psi_{\beta+\pi/2} \rangle \vert^2 = \cos^2(\alpha - \beta)\\[2mm] \operatorname{Pr}(a \neq b) & = \frac{1}{2} \vert \langle \psi_\alpha \vert \psi_{\beta+\pi/2} \rangle \vert^2 + \frac{1}{2} \vert \langle \psi_{\alpha+\pi/2} \vert \psi_\beta \rangle \vert^2 = \sin^2(\alpha - \beta). \end{aligned}

Queste equazioni possono essere collegate alle figure precedenti immaginando di sovrapporre le basi scelte da Alice e Bob.

Esplora la strategia

Quando (x,y)=(0,0),(x,y) = (0,0), Alice e Bob scelgono α=0\alpha = 0 e β=π/8,\beta = \pi/8, e sovrapponendo le loro basi otteniamo questa figura:

Alice and Bob bases case 1

L'angolo tra i vettori rossi è π/8,\pi/8, lo stesso dell'angolo tra i due vettori blu. La probabilità che i risultati di Alice e Bob coincidano è il coseno al quadrato di questo angolo,

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

mentre la probabilità che differiscano è il seno al quadrato di questo angolo,

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

Quando (x,y)=(0,1),(x,y) = (0,1), Alice e Bob scelgono α=0\alpha = 0 e β=π/8,\beta = -\pi/8, e sovrapponendo le loro basi otteniamo questa figura:

Alice and Bob bases case 1

L'angolo tra i vettori rossi è di nuovo π/8,\pi/8, così come l'angolo tra i vettori blu. La probabilità che i risultati di Alice e Bob coincidano è ancora il coseno al quadrato di questo angolo,

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

mentre la probabilità che differiscano è il seno al quadrato di questo angolo,

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

Quando (x,y)=(1,0),(x,y) = (1,0), Alice e Bob scelgono α=π/4\alpha = \pi/4 e β=π/8,\beta = \pi/8, e sovrapponendo le loro basi otteniamo questa figura:

Alice and Bob bases case 1

Le basi sono cambiate ma gli angoli no — ancora una volta l'angolo tra vettori dello stesso colore è π/8.\pi/8. La probabilità che i risultati di Alice e Bob coincidano è

cos2(π8)=2+24,\cos^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4},

e la probabilità che differiscano è

sin2(π8)=224.\sin^2\Bigl(\frac{\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

Quando (x,y)=(1,1),(x,y) = (1,1), Alice e Bob scelgono α=π/4\alpha = \pi/4 e β=π/8.\beta = -\pi/8. Sovrapponendo le loro basi, vediamo che è successo qualcosa di diverso:

Alice and Bob bases case 1

Per come sono stati scelti gli angoli, questa volta l'angolo tra vettori dello stesso colore è 3π/83\pi/8 invece di π/8.\pi/8. La probabilità che i risultati di Alice e Bob coincidano è ancora il coseno al quadrato di questo angolo, ma questa volta il valore è

cos2(3π8)=224.\cos^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2 - \sqrt{2}}{4}.

La probabilità che i risultati differiscano è il seno al quadrato di questo angolo, che in questo caso è:

sin2(3π8)=2+24.\sin^2\Bigl(\frac{3\pi}{8}\Bigr) = \frac{2 + \sqrt{2}}{4}.

Osservazioni

L'idea di base di un esperimento come il gioco CHSH, in cui l'entanglement porta a risultati statistici incompatibili con il ragionamento puramente classico, è dovuta a John Bell, il personaggio che dà il nome agli stati di Bell. Per questo motivo, le persone si riferiscono spesso a esperimenti di questo tipo come test di Bell. A volte si fa anche riferimento al teorema di Bell, che può essere formulato in modi diversi — ma la sua essenza è che la meccanica quantistica non è compatibile con le cosiddette teorie a variabili nascoste locali. Il gioco CHSH è un esempio particolarmente chiaro e semplice di un test di Bell, e può essere visto come una dimostrazione del teorema di Bell.

Il gioco CHSH offre un modo per testare sperimentalmente la teoria dell'informazione quantistica. Possiamo condurre esperimenti che implementano il gioco CHSH e testare i tipi di strategie basate sull'entanglement descritte sopra. Questo ci fornisce un alto grado di fiducia nel fatto che l'entanglement sia reale — e a differenza dei modi a volte vaghi o poetici con cui cerchiamo di spiegare l'entanglement, il gioco CHSH ci dà un modo concreto e verificabile per osservare l'entanglement. Il Premio Nobel per la Fisica 2022 riconosce l'importanza di questa linea di ricerca: il premio è stato assegnato ad Alain Aspect, John Clauser (la C di CHSH) e Anton Zeilinger, per l'osservazione dell'entanglement attraverso test di Bell su fotoni entangled.

Implementazione con Qiskit

Possiamo implementare il gioco CHSH, insieme alla strategia quantistica definita sopra, in Qiskit come segue.

Per prima cosa, ecco la definizione del gioco stesso, che consente di inserire una strategia arbitraria come argomento.

def chsh_game(strategy):
# This function runs the CHSH game, using the strategy (a function
# from two bits to two bits), returning 1 for a win and 0 for a loss.

# Choose x and y randomly
x, y = random.randint(0, 1), random.randint(0, 1)

# Use the strategy to determine a and b
a, b = strategy(x, y)

# Decide if the strategy wins or loses
if (a != b) == (x & y):
return 1 # Win
return 0 # Lose

Ora creeremo una funzione che produce un circuito in base alle domande per Alice e Bob. Per semplicità lasceremo ai qubit i loro nomi predefiniti, e utilizzeremo il gate Ry(θ)R_y(\theta) integrato per le azioni di Alice e Bob.

def chsh_circuit(x, y):
# This function creates a `QuantumCircuit` implementing the quantum
# strategy described above (including the e-bit preparation).

qc = QuantumCircuit(2, 2)

# Prepare an e-bit
qc.h(0)
qc.cx(0, 1)
qc.barrier()

# Alice's actions
if x == 0:
qc.ry(0, 0)
else:
qc.ry(-pi / 2, 0)
qc.measure(0, 0)

# Bob's actions
if y == 0:
qc.ry(-pi / 4, 1)
else:
qc.ry(pi / 4, 1)
qc.measure(1, 1)

return qc

Ecco i quattro possibili circuiti, a seconda delle domande poste.

# Draw the four possible circuits

print("(x,y) = (0,0)")
display(chsh_circuit(0, 0).draw(output="mpl"))

print("(x,y) = (0,1)")
display(chsh_circuit(0, 1).draw(output="mpl"))

print("(x,y) = (1,0)")
display(chsh_circuit(1, 0).draw(output="mpl"))

print("(x,y) = (1,1)")
display(chsh_circuit(1, 1).draw(output="mpl"))
(x,y) = (0,0)

Output of the previous code cell

(x,y) = (0,1)

Output of the previous code cell

(x,y) = (1,0)

Output of the previous code cell

(x,y) = (1,1)

Output of the previous code cell

Ora creeremo un job usando il simulatore Aer che esegue il circuito una sola volta per una data coppia di input (x,y).(x,y).

def quantum_strategy(x, y):
# This function runs the appropriate quantum circuit defined above
# one time and returns the measurement results

# Setting `shots=1` to run the circuit once
result = AerSimulator().run(chsh_circuit(x, y), shots=1).result()
statistics = result.get_counts()

# Determine the output bits and return them
bits = list(statistics.keys())[0]
a, b = bits[0], bits[1]
return a, b

Infine, giocheremo al gioco 1000 volte e calcoleremo la frazione di partite vinte dalla strategia.

NUM_GAMES = 1000
TOTAL_SCORE = 0

for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(quantum_strategy)

print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.867

Possiamo anche definire una strategia classica e vedere quanto bene funziona. Questa è solo una strategia — altre possono essere testate modificando il codice — ma è tra le strategie classiche ottimali.

def classical_strategy(x, y):
# This function implements just one example of an optimal classical
# strategy for the CHSH game. Other classical strategies can be
# implemented by changing the bit values assigned to a and b.

# Alice's answer
if x == 0:
a = 0
elif x == 1:
a = 1

# Bob's answer
if y == 0:
b = 1
elif y == 1:
b = 0

return a, b

Giochiamo di nuovo al gioco 1000 volte per vedere quanto bene funziona.

NUM_GAMES = 1000
TOTAL_SCORE = 0

for _ in range(NUM_GAMES):
TOTAL_SCORE += chsh_game(classical_strategy)

print("Fraction of games won:", TOTAL_SCORE / NUM_GAMES)
Fraction of games won: 0.747

Sebbene ci sia della casualità in gioco, le statistiche difficilmente si discostano molto dopo 1000 esecuzioni. La strategia quantistica vince circa l'85% delle volte, mentre una strategia classica non può vincere più di circa il 75% delle volte.