Vai al contenuto principale

La natura degli stati quantistici: variabili nascoste versus disuguaglianza di Bell

Per questo modulo Qiskit in Classrooms, gli studenti devono disporre di un ambiente Python funzionante con i seguenti pacchetti installati:

  • qiskit v2.1.0 o più recente
  • qiskit-ibm-runtime v0.40.1 o più recente
  • qiskit-aer v0.17.0 o più recente
  • qiskit.visualization
  • numpy
  • pylatexenc

Per configurare e installare i pacchetti indicati, consulta la guida Installa Qiskit. Per eseguire job su computer quantistici reali, gli studenti dovranno creare un account con IBM Quantum® seguendo i passaggi nella guida Configura il tuo account IBM Cloud.

Questo modulo è stato testato e ha utilizzato 12 secondi di tempo QPU. Si tratta solo di una stima. Il tuo utilizzo effettivo potrebbe variare.

# Added by doQumentation — required packages for this notebook
!pip install -q numpy qiskit qiskit-ibm-runtime
# Uncomment and modify this line as needed to install dependencies
#!pip install 'qiskit>=2.1.0' 'qiskit-ibm-runtime>=0.40.1' 'qiskit-aer>=0.17.0' 'numpy' 'pylatexenc'

Guarda il video introduttivo del modulo con la dott.ssa Katie McCormick qui sotto, oppure clicca qui per guardarlo su YouTube.


Contesto

In molti calcoli della meccanica quantistica si parte da uno stato noto del sistema, ottenuto tipicamente tramite una misura. Oggi vogliamo rispondere alla domanda: "Che cosa si può dire dello stato di una particella prima di qualsiasi misura?" Un corollario ovvio è: "Come possiamo saperlo, se non ci è permesso misurare?"

Questa domanda risale ai primi giorni della meccanica quantistica. I pionieri del campo si divisero in fazioni: Einstein e molti altri sostenevano che una particella si trovasse semplicemente in uno stato sconosciuto prima della misura. Altri, in particolare Max Born e in seguito Niels Bohr, avanzarono un'affermazione più radicale: lo stato di una particella era davvero indeterminato dalla natura prima della misura, non semplicemente ignoto agli esseri umani. La misura collassa quindi probabilisticamente la particella in uno stato definito. Einstein, insoddisfatto di questa spiegazione, disse la celebre frase "Gott würfelt nicht", che si traduce grossomodo come "Dio non gioca a dadi."

Per decenni, molti pensarono che questo disaccordo non potesse mai essere risolto, o che fosse una questione di prospettiva. Poi, nel 1964, John Bell, un fisico dell'Irlanda del Nord, scrisse un articolo in cui esplorò le statistiche di certi esperimenti in grado di rispondere a questa domanda in modo definitivo. Mostrò che in un determinato test si ottiene un insieme di statistiche da stati quantistici definiti (ma sconosciuti), e un insieme diverso di statistiche da stati quantistici indeterminati dalla natura.

All'epoca dell'articolo di Bell, i test sperimentali delle statistiche coinvolte erano accessibili solo ai ricercatori al vertice della fisica. Ma oggi IBM Quantum ha reso possibile per studenti di tutto il mondo l'utilizzo di dispositivi quantistici reali, da remoto tramite il cloud e gratuitamente, per esplorare la natura degli stati quantistici. Questo è ciò che farai oggi.

Configurazione dell'esperimento mentale: entanglement dello spin

Esistono processi in cui una particella priva di spin decade in due particelle che possiedono ciascuna uno spin. Poiché lo spin è una forma di momento angolare, la legge di conservazione del momento angolare suggerisce che le due particelle risultanti debbano avere spin esattamente anti-allineati. Questo è effettivamente osservato sperimentalmente.

Un esempio: un mesone pi neutro decade talvolta in un positrone e un elettrone: π0e++e\pi^0\rightarrow e^+ + e^- Non preoccuparti se non sai cosa siano queste particelle, e non preoccuparti se le conosci così bene da sapere che questo tipo di decadimento è relativamente improbabile. Basta sapere che se una delle particelle risultanti ha spin su, l'altra deve avere spin giù, e viceversa. Naturalmente non c'è nulla di speciale in "su" e "giù"; lo stesso anti-allineamento si osserva anche se le misure vengono effettuate lungo quello che spesso chiamiamo xx o yy. Questo decadimento è un contesto interessante da considerare, perché possiamo evitare domande sulle misure effettuate in passato: il positrone e l'elettrone non esistevano nemmeno fino al momento del decadimento.

Possiamo lasciare che i mesoni π0\pi^0 decadano e osservare la deflessione delle particelle risultanti sotto l'influenza di un campo magnetico inomogeneo. Un campo inomogeneo usato per deflettere gli spin è spesso chiamato dispositivo di Stern-Gerlach, dal nome dei ricercatori che lo utilizzarono per primi per raccogliere (accidentalmente) prove dell'esistenza dello spin quantistico. Si noti che la situazione qui è più complessa dell'esperimento originale, poiché l'elettrone e il positrone sono anche carichi (a differenza degli atomi d'argento nell'esperimento di Stern-Gerlach). Ma sappiamo come si muovono le particelle cariche in un campo magnetico e possiamo sottrarre tale effetto. In quanto segue, assumeremo che le deflessioni usate nei nostri calcoli siano dovute allo spin delle particelle e non alla carica. Di conseguenza, ai nostri fini non ha importanza quale osservatore riceva il positrone e quale l'elettrone. La configurazione sperimentale è qualcosa del genere:

Un diagramma della configurazione di un esperimento EPR. Una sorgente emette una particella verso sinistra e una verso destra. Ciascuna passa attraverso un dispositivo di Stern-Gerlach, un campo magnetico inomogeneo e uno schermo di misura.

Quando il mesone decade, un elettrone viene emesso in una direzione e un positrone nell'altra. Ciascuna di queste due particelle attraverserà un campo magnetico inomogeneo, venendo deflessa nella direzione del campo magnetico o in direzione opposta.

Se disponiamo di una sorgente di molti mesoni, possiamo raccogliere statistiche su questo. Se un osservatore a sinistra e uno a destra (chiamiamoli Lucas e Rihanna, rispettivamente) misurano sempre lungo lo stesso asse, queste statistiche non saranno molto interessanti: ogni volta che uno misura su, l'altro misura giù; ogni volta che uno misura verso l'interno della pagina, l'altro misurerà verso l'esterno, e così via. Tuttavia, se i due sono liberi di misurare lo spin lungo qualsiasi direzione vogliano, potremmo trovare qualcosa di più interessante.

L'esperimento descritto sopra, in cui le particelle si allontanano con momento angolare di spin misurato da due osservatori, fu inizialmente proposto da Einstein, Podolsky e Rosen (EPR) in questo articolo, ed è talvolta indicato come "esperimento EPR".

Le nostre opzioni

Riformuliamo chiaramente i due punti di vista storici:

Opzione 1 (Einstein): I due spin (l'elettrone e il positrone) sono determinati, nel senso che il risultato di qualsiasi misura lungo qualsiasi asse è predeterminato dalla natura, anche se non lo conosciamo. Si potrebbe pensare agli spin come aventi un orientamento reale e ben definito nello spazio, che non ci è noto ma che esiste. Oppure si potrebbe pensare a un insieme di informazioni o istruzioni che determinano i risultati delle misure lungo xx, yy, zz o qualsiasi direzione intermedia. Misurare lo spin del positrone (diciamo lungo z) lo forza ad orientarsi nella direzione z o -z. Ciò non ha alcuna influenza causale sullo spin dell'elettrone, sebbene sappiamo che lo spin dell'elettrone era inizialmente opposto a quello del positrone, quindi se lo spin del positrone viene misurato come +z, lo spin dell'elettrone viene misurato come -z. Al di là della condizione iniziale di istruzioni che conservano il momento angolare (gli spin sono anti-allineati), non vi è alcun legame tra i due spin. Questa opzione è talvolta chiamata "variabili nascoste", nel senso che le proiezioni lungo i diversi assi sono determinate, ma ci sono nascoste.

Opzione 2 (Born): Gli spin sono entrambi indeterminati nei loro stati iniziali... non semplicemente ignoti, ma fisicamente indefiniti, senza un orientamento definito né istruzioni sui risultati sperimentali, finché non vengono misurati. La misura dello spin del positrone "collassa" lo spazio di tutte le possibilità in un unico stato determinato, lungo l'asse +z o -z. Questa misura del positrone forza anche lo spin dell'elettrone a collassare in una proiezione ben definita lungo z, esattamente opposta a quella del positrone. Questo effetto si propaga attraverso lo spazio tra il positrone e l'elettrone. Ciò è stato chiamato "azione fantasma a distanza", ma potrebbe essere chiamato, con minor drammaticità, "fisica non locale".

Verifica la tua comprensione

Leggi la domanda qui sotto, pensa alla tua risposta, poi clicca il triangolo per vedere la soluzione.

Sarebbe utile distinguere sperimentalmente tra le opzioni di Einstein e di Born. Quali sono alcuni esperimenti che darebbero gli stessi risultati indipendentemente da quale opzione sia vera? Riesci a pensare a un esperimento che darebbe risultati diversi per le due opzioni? Nota Sarebbe molto impressionante se riuscissi a ideare un esperimento che distingua le opzioni di Einstein e di Born; agli esseri umani ci sono voluti decenni per trovarne uno.

Risposta:

Restando all'esperimento descritto finora (ovvero, senza spin netto con positrone ed elettrone anti-allineati), la misura di entrambi gli spin lungo ±x\pm x, ±y\pm y o ±z\pm z darebbe sempre segni opposti per via della conservazione del momento angolare, indipendentemente dall'opzione corretta. Misurare lo spin di una particella (diciamo l'elettrone) lungo una direzione (diciamo +z+z) significa che lo spin dell'altra particella, il positrone, verrebbe misurato lungo z-z. Se invece misuri lo spin del positrone lungo la direzione xx, è ugualmente probabile che esca +x+x o x-x. Ciò potrebbe essere dovuto a quanto prescrivono le istruzioni nascoste (opzione 1 di Einstein) oppure perché la distribuzione di probabilità dello spin del positrone si aggiorna dopo la misura dello spin dell'elettrone, e la nuova distribuzione di probabilità è consistente con una divisione 50-50 tra ±x\pm x (opzione 2 di Born). Questi punti sono spiegati in modo più dettagliato di seguito.

La risposta è solo leggermente diversa se si considera il decadimento di una particella con spin-1, tale che le due particelle emergenti (come il positrone e l'elettrone) debbano avere gli spin allineati, anziché anti-allineati. Se uno viene misurato lungo +y+y, una misura dell'altra particella lungo l'asse yy deve anch'essa dare +y+y, e così via. Come prima, ciò potrebbe derivare da entrambe le opzioni.

Il resto di questa lezione è dedicato a un esperimento in grado di distinguere tra le opzioni di Einstein e di Born, quindi non approfondiremo molto qui. Tuttavia, parte del trucco consiste nel misurare le due particelle lungo direzioni diverse (come xx e zz, o anche qualche direzione intermedia tra gli assi cartesiani tradizionali). Il resto deriva da un'attenta considerazione della precisa probabilità di ottenere risultati diversi date le previsioni della meccanica quantistica e quelle dell'informazione classica come nelle variabili nascoste.

In entrambe le opzioni, se i due osservatori, Lucas e Rihanna, misurano lungo lo stesso asse, ci aspetteremmo spin anti-allineati, indipendentemente dall'opzione vera. Per capire perché, considera i diagrammi qui sotto.

Tre diagrammi. Prima c'è un diagramma di due vettori di spin orientati in direzioni opposte, giacenti su una diagonale tra gli assi x e z. Poi, quando viene effettuata una misura lungo z, un amico ottiene uno spin lungo z negativo e l'altro lungo z positivo. Infine, la situazione è mostrata per misure lungo l'asse x, in cui uno misura uno spin lungo x negativo e l'altro lungo x positivo.

La figura sopra mostra l'opzione di Einstein. Le direzioni degli spin sono opposte e determinate. Se misuriamo lungo l'asse zz, uno sarà lungo +z+z e uno lungo z-z. Non c'è motivo di supporre che il positrone sia lungo +z+z e l'elettrone lungo z-z; l'immagine mostra semplicemente che gli spin verranno misurati in direzioni opposte. In realtà, nel caso dell'opzione di Einstein, uno spin dato non deve necessariamente avere una componente lungo la direzione eventualmente misurata. L'affermazione più debole dell'opzione di Einstein è che esiste un insieme di istruzioni memorizzate nello spin che determinano i risultati delle misure lungo qualsiasi asse. Non dobbiamo immaginare che queste istruzioni abbiano la forma di un semplice vettore (vedi diagramma sotto); ci torneremo in seguito.

Tre diagrammi. Il primo non mostra più direzioni vettoriali ben definite, ma invece un elenco di regole che determinano i risultati delle misure. Il secondo e il terzo diagramma sono gli stessi dell'immagine precedente, e mostrano misure lungo z positivo/negativo e lungo x positivo/negativo.

La figura sotto mostra l'opzione di Born, in cui le direzioni degli spin del positrone e dell'elettrone sono distribuite in una nuvola di probabilità e non hanno una direzione definita. Non dare troppa importanza alla forma della distribuzione. Ogni spin potrebbe effettivamente avere una probabilità non nulla di puntare in qualsiasi direzione, purché siano opposti tra loro; li abbiamo semplicemente disegnati come frazioni del cerchio per poterli distinguere visivamente nella discussione. Si noti che nel caso dell'opzione di Born, il momento angolare deve comunque essere conservato. Quindi se un'onda di probabilità viene "collassata" in modo che lo spin punti lungo +z+z, l'altro punterà lungo z-z e verrà deflesso nella direzione opposta. Le opzioni appaiono identiche.

Un diagramma che mostra una sfocatura di possibili direzioni per un vettore di spin, seguita dagli stessi risultati di misura delle immagini precedenti.

Ma cosa succede quando gli osservatori L e R possono misurare lungo uno qualsiasi di tre assi, con ciascuna coppia separata da 120 gradi, come mostrato nelle Figure 4 e 5? Ogni osservatore può decidere casualmente lungo quale asse misurare lo spin (a, b, o c). I due non devono necessariamente misurare lungo lo stesso asse. Quando ciascuno misura, potrebbe trovare una proiezione positiva sul proprio asse scelto, o una proiezione negativa. Per esempio, Lucas e Rihanna potrebbero misurare +a e -b oppure +b e +c. Si noti che se capita che scelgano di misurare lungo lo stesso asse, devono ottenere segni opposti nelle loro proiezioni: +a e -a, +b e -b, o +c e -c; non possono entrambi trovare, per esempio, +a. Nella prossima sezione elaboreremo come calcolare la probabilità che Lucas e Rihanna ottengano lo stesso segno sugli assi misurati (++ o --) e segni opposti (+- o -+).

Un diagramma che mostra due vettori di spin iniziali, seguiti da possibili misure lungo tre rette, a, b e c, ciascuna con una direzione positiva e una negativa. Poiché questi assi non sono mutuamente perpendicolari, Lucas e Rihanna non misureranno spin in direzioni opposte a meno che non scelgano di misurare lungo gli stessi assi.

Le due figure sopra illustrano possibili interpretazioni a variabili nascoste in questo nuovo scenario di misura a tre assi. Ovvero, gli spin sono già determinati, come vettori, oppure esiste un insieme di istruzioni fisiche in qualche modo incorporate nel sistema tali che i risultati di tutte le possibili misure siano predeterminati, anche se non conoscibili dagli sperimentatori prima della misura. L'alternativa è illustrata di seguito. Esiste una distribuzione di probabilità dei risultati, e questa distribuzione può dirci qualcosa sulla probabilità dei diversi esiti delle misure, ma i risultati sono indeterminati dalla natura prima della misura.

Una distribuzione di probabilità sfocata viene mostrata ancora una volta, questa volta con i tre nuovi assi a, b e c. Ciò comporta diverse probabilità di misura lungo le varie direzioni.

Possiamo chiederci: "Con quale frequenza i due osservatori dovrebbero trovare lo stesso segno della proiezione dello spin?" Ovvero, non stiamo nemmeno registrando lungo quale asse hanno scelto di misurare; stiamo semplicemente registrando se hanno trovato lo stesso segno o un segno diverso. Non è ovvio se le opzioni di Einstein e di Born daranno lo stesso risultato in questo schema di misura più complicato. Ma dovrebbe essere chiaro dalle Figure 4 e 5 che è possibilepossibile che vi sia una differenza. Nel caso mostrato nell'opzione di Einstein, una misura della proiezione dello spin e+e+ sull'asse aa darà sicuramente +a+a, e la proiezione dello spin ee- sull'asse bb darà b-b (appena). Ma nell'opzione di Born, le possibilità sono aperte. È vero che il momento angolare è ancora conservato. Ma poiché i due campi magnetici non sono orientati lungo lo stesso asse, costringiamo le particelle in una situazione in cui devono collassare su assi diversi (attraverso le interazioni con il campo). Nella prossima sezione utilizzeremo la meccanica quantistica per determinare quali dovrebbero essere le probabilità, data l'opzione di Born, che Lucas e Rihanna ottengano lo stesso segno sui loro assi misurati (++ o --), e le probabilità che ottengano segni opposti (+- o -+).

Previsioni

Cosa prevede l'opzione di Einstein (variabili nascoste)?

Se l'opzione di Einstein è vera, allora ogni coppia di e+e+ ed ee- avrà un insieme di componenti vettoriali per i propri spin. Per esempio, l'elettrone potrebbe avere componenti (+a^,b^,+c^)(+\hat{a},-\hat{b}, +\hat{c}), nel qual caso il positrone deve avere componenti (a^,+b^,c^)(-\hat{a},+\hat{b}, -\hat{c}). Qui specifichiamo solo il segno della proiezione su ciascun asse, non la grandezza. Immagina di permettere a un numero molto grande NN di tali decadimenti di avvenire e di raccogliere misure per popolare la tabella qui sotto.

PopolazioneParticella 1Particella 2
N1N_1(+a^,+b^,+c^)(+\hat{a},+\hat{b},+\hat{c})(a^,b^,c^)(-\hat{a},-\hat{b},-\hat{c})
N2N_2(+a^,+b^,c^)(+\hat{a},+\hat{b},-\hat{c})(a^,b^,+c^)(-\hat{a},-\hat{b},+\hat{c})
N3N_3(+a^,b^,+c^)(+\hat{a},-\hat{b},+\hat{c})(a^,+b^,c^)(-\hat{a},+\hat{b},-\hat{c})
N4N_4(+a^,b^,c^)(+\hat{a},-\hat{b},-\hat{c})(a^,+b^,+c^)(-\hat{a},+\hat{b},+\hat{c})
N5N_5(a^,+b^,+c^)(-\hat{a},+\hat{b},+\hat{c})(+a^,b^,c^)(+\hat{a},-\hat{b},-\hat{c})
N6N_6(a^,+b^,c^)(-\hat{a},+\hat{b},-\hat{c})(+a^,b^,+c^)(+\hat{a},-\hat{b},+\hat{c})
N7N_7(a^,b^,+c^)(-\hat{a},-\hat{b},+\hat{c})(+a^,+b^,c^)(+\hat{a},+\hat{b},-\hat{c})
N8N_8(a^,b^,c^)(-\hat{a},-\hat{b},-\hat{c})(+a^,+b^,+c^)(+\hat{a},+\hat{b},+\hat{c})

Per ciascun caso della tabella sopra, ci sono 9 possibili scelte per gli assi di Lucas e Rihanna: aaaa, abab, acac, baba, bbbb, bcbc, caca, cbcb e cccc. Leggendo dalla tabella, la probabilità che i due osservatori misurino lo stesso segno per le righe 1 e 8 è zero. Per le righe 2-7, ci sono 4 modi per ottenere lo stesso segno, che mostreremo solo per la riga 2:

Segni uguali: acac, bcbc, caca, cbcb Segni opposti: aaaa, abab, baba, bbbb, cccc

Quindi, se l'opzione di Einstein è la corretta interpretazione degli stati quantistici, la probabilità totale sommata su tutte le possibili popolazioni che Lucas e Rihanna ottengano lo stesso segno della proiezione dello spin sui loro assi scelti casualmente sarebbe: Psame=1iNi49(N2+N3+N4+N5+N6+N7)49 P_\text{same}=\frac{1}{\sum_i{N_i}} \frac{4}{9} (N_2+N_3+N_4+N_5+N_6+N_7)\leq \frac{4}{9} dove l'uguaglianza vale solo se N1=N8=0N_1=N_8=0.

Verifica la tua comprensione

Leggi le domande qui sotto, pensa alle tue risposte, poi clicca i triangoli per vedere le soluzioni.

Per la riga 2 della tabella sopra, abbiamo elencato tutti i modi possibili in cui Lucas e Rihanna possono ottenere lo stesso segno per le loro misure, e tutti i modi in cui possono ottenere segni diversi. Ripeti questo per la terza riga.

Risposta:

Segni uguali: abab, baba, bcbc, cbcb

Segni opposti: aaaa, acac, bbbb, caca, cccc

La tabella sopra si riferisce a "popolazioni", nel senso che non sappiamo quante istruzioni di ciascun tipo la natura produce, se il trattamento a variabili nascoste è corretto. Mostra che, indipendentemente dalla distribuzione di N1N_1 fino a N8N_8, la probabilità di ottenere lo stesso segno dalle misure è sempre minore o uguale a 4/9.

Risposta:

Partiamo assumendo un numero costante di trial di misura totali, in modo che iNi=Ntot\sum_i{N_i} = N_{tot} sia costante. Si noti che nel caso speciale in cui N1=N8=0N_1=N_8=0, l'espressione si riduce a

Psame=1N2+N3+N4+N5+N6+N7×49×(N2+N3+N4+N5+N6+N7)=1Ntot×49×Ntot=49P_{same}=\frac{1}{N_2+N_3+N_4+N_5+N_6+N_7} \times \frac{4}{9} \times (N_2+N_3+N_4+N_5+N_6+N_7) = \frac{1}{N_{tot}} \times \frac{4}{9} \times N_{tot}= \frac{4}{9}

Supponiamo ora che N10N_1 \neq 0 oppure N80N_8 \neq 0. Allora

Psame=1N1+N2+N3+N4+N5+N6+N7+N8×49×(N2+N3+N4+N5+N6+N7)=49P_{same}=\frac{1}{N'_1+N'_2+N'_3+N'_4+N'_5+N'_6+N'_7+N'_8} \times \frac{4}{9} \times (N'_2+N'_3+N'_4+N'_5+N'_6+N'_7) = \frac{4}{9}

La somma di tutti i trial, NtotN_tot, è ancora la stessa di prima. Ma poiché N1N'_1 o N8N'_8 è aumentato da 0, la somma di N2N'_2 fino a N7N'_7 deve essere inferiore a prima. In particolare, la somma di N2N'_2 fino a N7N'_7 è minore di NtotN_{tot}. Quindi

Psame=1Ntot×49×(N2+N3+N4+N5+N6+N7)<49P_{same}=\frac{1}{N_{tot}} \times \frac{4}{9} \times (N'_2+N'_3+N'_4+N'_5+N'_6+N'_7) < \frac{4}{9}

Combinando tutti i casi possibili, abbiamo Psame49P_{same} \leq \frac{4}{9}.

Generalizzazione

Nel trattamento sopra abbiamo considerato misure lungo assi specifici. Naturalmente si può misurare lungo qualsiasi asse. Chiamiamo i due vettori di spin delle due particelle a\vec{a} e b\vec{b}. Sia λ\lambda una variabile nascosta tale che uno stato del sistema a due particelle corrisponda a un valore ben definito di lambdalambda. Sia ρ(λ)\rho(\lambda) la densità di probabilità in λ\lambda. Infine, scegliamo i simboli A(a,λ)A(\vec{a},\lambda) e B(b,λ)B(\vec{b},\lambda) come il risultato predeterminato di una misura effettuata su ciascuna delle particelle (A o B), dati i vettori di spin e la variabile nascosta. Criticamente, nota che AA è indipendente da b\vec{b} e BB è indipendente da a\vec{a}. Si potrebbe ora porre qualsiasi numero di domande relative alle correlazioni tra le misure su A e B. In particolare, si potrebbe chiedere del valore di aspettazione dato da

E(a,b)dλρ(λ)A(a,λ)B(b,λ)E(\vec{a},\vec{b})\equiv\int{d\lambda \rho(\lambda)A(\vec{a},\lambda)B(\vec{b},\lambda)}

Date alcune assunzioni standard su questi valori, come A(a,λ)1A(\vec{a},\lambda)\leq 1, B(b,λ)1B(\vec{b},\lambda)\leq 1 e la normalizzazione su ρ(λ)\rho(\lambda), si può dimostrare che le correlazioni tra le due particelle soddisfano la relazione

E(a,b)E(a,d)+E(c,d)+E(c,b)2,|E(\vec{a},\vec{b})-E(\vec{a},\vec{d})|+|E(\vec{c},\vec{d})+E(\vec{c},\vec{b})|\leq 2,

dove a\vec{a} e b\vec{b} sono gli stati di spin del tuo sistema e c\vec{c} e d\vec{d} sono stati di spin di riferimento (qualsiasi altro possibile stato di spin del sistema). Questa è una delle tante diseguaglianze ora note come "disuguaglianze di Bell". Non utilizzeremo questa forma generale qui. Invece, ci concentreremo su una specifica configurazione sperimentale, in modo da poterla mappare su un circuito quantistico.

Cosa prevede l'opzione di Born (meccanica quantistica non deterministica)?

Lucas sceglierà un asse e troverà che lo spin di una particella è nella direzione positiva o negativa. Qualunque cosa ottenga, orientiamo i nostri assi in modo che l'asse zz sia quella direzione. Possiamo quindi scrivere lo stato iniziale dopo il decadimento del mesone e prima di qualsiasi misura come

ψ=12(+LRL+R)|\psi \rangle =\frac{1}{\sqrt{2}}(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R)

Rihanna misurerà lo spin della sua particella lungo un'altra direzione formante un angolo θ\theta rispetto a quella di Lucas. L'operatore di spin lungo una direzione arbitraria n^\hat{n} è dato da

S^n^=2[cos(θ)sin(θ)eiϕsin(θ)eiϕcos(θ)]\hat{S}_{\hat{n}}=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta) & \sin(\theta) e^{-i\phi} \\ \sin(\theta) e^{i\phi} & -\cos(\theta) \end{bmatrix}

Gli autostati di questo operatore sono

+n^=cos(θ/2)0+sin(θ/2)eiϕ1n^=sin(θ/2)0cos(θ/2)eiϕ1|+\rangle_{\hat{n}}=\cos(\theta/2)|0\rangle+\sin(\theta/2)e^{i\phi}|1\rangle \\ |-\rangle_{\hat{n}}=\sin(\theta/2)|0\rangle-\cos(\theta/2)e^{i\phi}|1\rangle

Verifica la tua comprensione

Leggi le domande qui sotto, pensa alle tue risposte, poi clicca i triangoli per vedere le soluzioni.

Verifica che +n^|+\rangle_{\hat{n}} sia un autostato dell'operatore S^n^\hat{S}_{\hat{n}} sopra e trova l'autovalore.

Risposta:

S^n^+n^=2[cos(θ)sin(θ)eiϕsin(θ)eiϕcos(θ)][cos(θ/2)sin(θ/2)eiϕ]\hat{S}_{\hat{n}}|+\rangle_{\hat{n}}=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta) & \sin(\theta) e^{-i\phi} \\ \sin(\theta) e^{i\phi} & -\cos(\theta) \end{bmatrix} \begin{bmatrix} \cos(\theta/2) \\ \sin(\theta/2)e^{i\phi}\end{bmatrix}=2[cos(θ)cos(θ/2)+sin(θ)sin(θ/2)eiϕeiϕcos(θ/2)sin(θ)eiϕcos(θ)sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta)\cos(\theta/2) + \sin(\theta)\sin(\theta/2)e^{i\phi} e^{-i\phi} \\ \cos(\theta/2)\sin(\theta) e^{i\phi} -\cos(\theta)\sin(\theta/2)e^{i\phi} \end{bmatrix}

Usando cos(θ)=cos2(θ/2)sin2(θ/2)\cos(\theta)=\cos^2(\theta/2)-\sin^2(\theta/2) e sin(θ)=2cos(θ/2)sin(θ/2)\sin(\theta)=2\cos(\theta/2)\sin(\theta/2), abbiamo

=2[(cos(θ)+2sin2(θ/2))cos(θ/2)(2cos2(θ/2)cos2(θ/2)+sin2(θ/2))sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \left(\cos(\theta) + 2\sin^2(\theta/2)\right) \cos(\theta/2) \\ \left(2\cos^2(\theta/2) -\cos^2(\theta/2)+\sin^2(\theta/2)\right)\sin(\theta/2)e^{i\phi} \end{bmatrix}=2[(cos2(θ/2)sin2(θ/2)+2sin2(θ/2))cos(θ/2)(2cos2(θ/2)cos2(θ/2)+sin2(θ/2))sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \left(\cos^2(\theta/2)-\sin^2(\theta/2) + 2\sin^2(\theta/2)\right) \cos(\theta/2) \\ \left(2\cos^2(\theta/2) -\cos^2(\theta/2)+\sin^2(\theta/2)\right)\sin(\theta/2)e^{i\phi} \end{bmatrix}=2[cos(θ/2)sin(θ/2)eiϕ]=\frac{\hbar}{2}\begin{bmatrix} \cos(\theta/2) \\ \sin(\theta/2)e^{i\phi} \end{bmatrix}

Questo dimostra che +n^|+\rangle_{\hat{n}} è un autostato e l'autovalore corrispondente è 2\frac{\hbar}{2}.

La probabilità che Lucas misuri lo spin nella direzione positiva lungo il suo asse scelto +|+\rangle ee che anche Rihanna misuri uno spin positivo lungo la sua direzione scelta +n^|+\rangle_{\hat{n}} è

P++=(L+R,n^+)ψ2P_{++}=\left|\left(_L\langle+|_{R,\hat{n}}\langle+|\right)|\psi\rangle\right|^2 P++=(L+R(cos(θ/2)++sin(θ/2)eiϕ))12(+LRL+R)2P_{++}=\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)e^{-i\phi}\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2 P++=12(L+R(cos(θ/2)++sin(θ/2)eiϕ))(+LR)2P_{++}=\frac{1}{2}\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)e^{-i\phi}\langle-|\right)\right) \left(|+\rangle_L|-\rangle_R\right) \right|^2 P++=12(sin(θ/2)eiϕpR)R2P_{++}=\frac{1}{2}\left| \left(\sin(\theta/2)e^{-i\phi}\vphantom{p}_R\langle-|\right) |-\rangle_R \right|^2 P++=12sin2(θ/2)P_{++}=\frac{1}{2}\sin^2(\theta/2)

Verifica la tua comprensione

Leggi le domande qui sotto, pensa alle tue risposte, poi clicca i triangoli per vedere le soluzioni.

Esegui lo stesso calcolo per PP_{--}. Verifica che anch'essa sia uguale a 12sin2(θ).\frac{1}{2}\sin^2(\theta).

Risposta:

P=(LR,n^+)ψ2P_{--}=\left|\left(_L\langle-|_{R,\hat{-n}}\langle+|\right)|\psi\rangle\right|^2P=(LR(sin(θ/2)+cos(θ/2)eiϕ))12(+LRL+R)2P_{--}=\left| \left(_L\langle-|_R\left(\sin(\theta/2)\langle+|-\cos(\theta/2)e^{-i\phi}\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2P=12(LR(sin(θ/2)+cos(θ/2)eiϕ))(L+R)2P_{--}=\frac{1}{2}\left| \left(_L\langle-|_R\left(\sin(\theta/2)\langle+|-\cos(\theta/2)e^{-i\phi}\langle-|\right)\right) \left(-|-\rangle_L|+\rangle_R\right) \right|^2P=12(sin(θ/2)pR+)+R2P_{--}=\frac{1}{2}\left| \left(\sin(\theta/2) \vphantom{p}_R\langle+|\right) |+\rangle_R \right|^2P=12sin2(θ/2)P_{--}=\frac{1}{2}\sin^2(\theta/2)

Sommando questi risultati, troviamo che la probabilità che i segni dei due assi misurati siano uguali è Psame=sin2(θ/2)P_{\text{same}}=\sin^2(\theta/2).

Verifica la tua comprensione

Leggi la domanda qui sotto, pensa alla tua risposta, poi clicca il triangolo per vedere la soluzione.

Come potresti verificare il risultato matematico? Per essere chiari, non ti stiamo chiedendo di verificare ancora che corrisponda alla natura, solo di assicurarti che non sia andato storto nulla nella matematica.

Risposta:

(1) Esegui lo stesso calcolo per Pdiff=cos2(θ/2)P_{\text{diff}}=\cos^2(\theta/2) per verificare la conservazione della probabilità.

(2) Verifica un caso noto. Inserisci θ=0\theta = 0. Allora PsameP_{\text{same}} corrisponde ai due osservatori che misurano ciascuno il proprio spin lungo lo stesso asse, il che violerebbe la conservazione del momento angolare. Quindi ci aspetterebbe che tale probabilità sia zero, e in effetti inserendo θ=0\theta = 0 si ottiene sin2(0/2)=0\sin^2(0/2) = 0.

(3) Verifica un caso diverso noto. Prova con θ=π\theta = \pi. Cosa dovresti ottenere? Attenzione a quel 12\frac{1}{2}.

Stavamo descrivendo nello specifico il caso in cui gli assi sono a 120deg120\deg l'uno dall'altro. Ricorda, qualunque direzione (±a\pm a, ±b\pm b, o ±c\pm c) ottenga Lucas, la chiamiamo zz. Poi Rihanna sceglie casualmente di misurare lungo ±a\pm a, ±b\pm b o ±c\pm c. Se la sua scelta coincide con quella di Lucas (a meno di un segno), entrambi stanno misurando lungo zz, e la probabilità che Rihanna misuri anch'essa +z+z è zero. Questo dovrebbe accadere 1/3 delle volte, poiché la scelta dell'asse di Rihanna è indipendente da quella di Lucas. Per qualsiasi altra scelta, Rihanna misurerà lungo un asse a 120deg=2π/3120\deg = 2\pi/3 radianti da zz (1/3 delle volte) o a 240deg=4π/3240\deg = 4\pi/3 radianti da zz (1/3 delle volte). E naturalmente, lungo ciascuno di questi assi, lo spin potrebbe essere misurato nella direzione positiva o negativa. Questo ci dà una probabilità totale che Lucas e Rihanna ottengano lo stesso segno:

Psame=13(0+sin2(π/3)+sin2(2π/3))=13(0+34+34)=12P_{\text{same}} = \frac{1}{3}\left( 0 + \sin^2(\pi/3) + \sin^2(2\pi/3) \right) = \frac{1}{3}\left( 0 + \frac{3}{4} + \frac{3}{4} \right) = \frac{1}{2}

Notevole

Abbiamo appena dimostrato che

(Psame)max, Einstein<(Psame)max, Born.(P_\text{same})_\text{max, Einstein}<(P_\text{same})_\text{max, Born}.

Facciamo un passo indietro.

Le opzioni di Einstein e di Born sembravano dover dare sempre gli stessi risultati, poiché differivano solo nella descrizione di ciò che accade prima della misura. Eppure, assumendo che ci fossero istruzioni che predeterminavano il segno della misura dello spin lungo certi assi, abbiamo ottenuto un vincolo sulla probabilità che le misure diano lo stesso segno (Psame)Einstein49(P_{\text{same}})_\text{Einstein}\leq\frac{4}{9}. Poi abbiamo assunto distribuzioni di probabilità come nella meccanica quantistica... e abbiamo ottenuto un valore diverso per (Psame)Born=12(P_{\text{same}})_\text{Born}=\frac{1}{2}. La previsione della meccanica quantistica è superiore a quella consentita dal trattamento a variabili nascoste. Possiamo quindi effettivamente fare un esperimento e scoprire se gli stati quantistici sono determinati dalla natura prima della misura, o se si trovano davvero in una sovrapposizione probabilistica di stati possibili.

Questo esperimento è stato eseguito molte volte usando molti sistemi fisici diversi, spesso fotoni. Vi sono molte considerazioni delicate, come i bias nelle misure, la temporizzazione (simultaneità) delle misure, e molte altre. Nel corso dei decenni, le preoccupazioni su queste sottigliezze sono state gradualmente superate. I test vengono ancora eseguiti mentre impariamo di più sulla realtà, ma ora c'è ampio accordo che la risposta che otterrai qui, usando i computer quantistici IBM®, sia corretta.

Verifica con veri computer quantistici!

In linea con il trattamento precedente, definiamo la direzione di misura di Lucas come +z+z. Questa scelta era comoda anche nell'approccio algebrico, ma lo è ancora di più per il calcolo quantistico, poiché ciò che si misura tipicamente è la proiezione del qubit lungo zz. Vogliamo costruire un circuito quantistico che fornisca le stesse condizioni di probabilità descritte sopra per P++P_{++}. Siamo liberi di orientare il nostro piano in modo che ϕ=0\phi=0, e otteniamo

P++=(L+R(cos(θ/2)++sin(θ/2)))12(+LRL+R)2P_{++}=\left| \left(_L\langle+|_R\left(\cos(\theta/2)\langle+|+\sin(\theta/2)\langle-|\right)\right) \frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right) \right|^2

Dobbiamo conoscere alcune cose sui computer quantistici IBM per guidare la nostra discussione. Prima di tutto, i qubit iniziano inizializzati nello stato 0=+z|0\rangle = |+\rangle_z. Come detto in precedenza, quando si eseguono misure, queste avvengono lungo l'asse zz. L'obiettivo è quindi determinare quali operatori inserire tra gli stati di base di misura 00\langle 0|\langle 0| e gli stati iniziali dei qubit 00|0\rangle |0\rangle per ottenere l'espressione complessa di cui sopra. Per farlo, occorre ripassare alcuni gate fondamentali del calcolo quantistico.

gate XX: Equivalente all'operazione NOT. gate a singolo qubit.

X0=1,X1=0X|0\rangle = |1\rangle,\\X|1\rangle=|0\rangle X=[0110]X=\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}

In Qiskit, creare un circuito con un gate XX si fa così:

from qiskit import QuantumCircuit

qc = QuantumCircuit(1)
qc.x(0)
qc.draw("mpl")

Output of the previous code cell

gate di Hadamard HH: Crea uno stato di sovrapposizione. gate a singolo qubit.

H0=12(0+1),H|0\rangle = \frac{1}{2}\left(|0\rangle+|1\rangle\right), H1=12(01)H|1\rangle = \frac{1}{2}\left(|0\rangle-|1\rangle\right) H=12[1111]H=\frac{1}{2}\begin{bmatrix} 1 & 1 \\ 1 & -1 \end{bmatrix}

Un circuito con un gate di Hadamard si crea nel modo seguente:

qc = QuantumCircuit(1)
qc.h(0)
qc.draw("mpl")

Output of the previous code cell

gate CNOT (NOT controllato): Questo gate utilizza due qubit: un controllo e un bersaglio. Verifica lo stato del qubit di controllo, che rimane invariato. Se il qubit di controllo è nello stato 1|1\rangle, il gate modifica lo stato del qubit bersaglio; se il qubit di controllo è nello stato 0|0\rangle, non viene apportata alcuna modifica. Nella notazione seguente, il primo qubit è il controllo e il secondo è il bersaglio.

CNOT00=00,CNOT01=01CNOT10=11CNOT11=10CNOT|00\rangle = |00\rangle, \\ CNOT|01\rangle = |01\rangle \\ CNOT|10\rangle = |11\rangle \\ CNOT|11\rangle = |10\rangle

Il gate CNOT ha un aspetto leggermente diverso in un circuito, poiché richiede due qubit. Ecco come viene implementato:

qc = QuantumCircuit(2)
qc.cx(0, 1)
qc.draw("mpl")

Output of the previous code cell

Nota che il primo qubit elencato in qc.cx(0,1) è il controllo, e il secondo è il bersaglio. Diagrammaticamente, il bersaglio è quello con il segno "+" o la croce su di esso.

gate di rotazione Ry(θ)R_y(\theta) sull'asse Y: Ruota lo stato attorno all'asse y. È un gate a singolo qubit.

Ry(θ)0=cos(θ/2)0+sin(θ/2)1,Ry(θ)0=sin(θ/2)0+cos(θ/2)1R_y(\theta)|0\rangle = \cos(\theta/2)|0\rangle+\sin(\theta/2)|1\rangle,\\R_y(\theta)|0\rangle = -\sin(\theta/2)|0\rangle+\cos(\theta/2)|1\rangle Ry(θ)=[cos(θ/2)sin(θ/2)sin(θ/2)cos(θ/2)]R_y(\theta)=\begin{bmatrix} \cos(\theta/2) & -\sin(\theta/2) \\ \sin(\theta/2) & \cos(\theta/2) \end{bmatrix}

I gate di rotazione si implementano specificando il tipo di gate, l'entità della rotazione e il qubit su cui applicarlo, in quest'ordine:

import numpy as np

pi = np.pi

qc = QuantumCircuit(2)
qc.ry(pi / 2, 0)
qc.draw("mpl")

Output of the previous code cell

Il nome del gate ry specifica l'asse attorno al quale avviene la rotazione. Il primo argomento π/2\pi/2 indica l'entità della rotazione, e il secondo argomento specifica il qubit su cui il gate deve essere applicato.

Verifica la tua comprensione

Leggi la/le domanda/e seguenti, rifletti sulla tua risposta, poi clicca sul triangolo per scoprire la soluzione.

Usando la sintassi introdotta o ripassata sopra, crea qualsiasi circuito quantistico che utilizzi quattro diversi tipi di gate quantistici.

Risposta:

Esistono naturalmente infinite possibilità. Ecco un esempio:

qc=QuantumCircuit(2)
qc.ry(pi/2,0)
qc.cx(1,0)
qc.x(1)
qc.h(0)
qc.cx(0,1)
qc.draw("mpl")

Dall'esperimento fisico ai circuiti quantistici

Dalle operazioni di questi gate, possiamo vedere, ad esempio, che i ket nelle espressioni per P++P_{++}:

12(+LRL+R)\frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right)

probabilmente coinvolgono un gate di Hadamard per ottenere la sovrapposizione, e un gate CNOT per creare l'entanglement.

Ora useremo i gate H, X e CNOT per trasformare 0L0R|0\rangle_L|0\rangle_R in 12(+LRL+R)\frac{1}{\sqrt{2}}\left(|+\rangle_L|-\rangle_R-|-\rangle_L|+\rangle_R\right):

12(0L1R1L0R)\frac{1}{\sqrt{2}}\left(|0\rangle_L|1\rangle_R-|1\rangle_L|0\rangle_R\right) 12CNOTLR(0L1R1L1R)\frac{1}{\sqrt{2}}CNOT_{LR}\left(|0\rangle_L|1\rangle_R-|1\rangle_L|1\rangle_R\right)

Qui CNOTLRCNOT_{LR} indica un gate CNOT che usa L come controllo e R come bersaglio. Possiamo ora fattorizzare la parte R dello stato:

CNOTLR12(0L1L)1R\text{CNOT}_{LR}\frac{1}{\sqrt{2}}\left(|0\rangle_L-|1\rangle_L\right)|1\rangle_R CNOTLRHL1L1R\text{CNOT}_{LR} H_L|1\rangle_L|1\rangle_R CNOTLRHLXLXR0L0R\text{CNOT}_{LR} H_L X_L X_R|0\rangle_L|0\rangle_R

Abbiamo ora scritto il ket interamente come gate quantistici che agiscono sullo stato iniziale predefinito dei qubit.

Ora possiamo usare Ry(θ)R_y(\theta) applicato a pL0R1\vphantom{p}_L\langle 0|_R\langle 1| per ottenere il bra nell'espressione per P++P_{++}.

pL0R(cos(θ/2)0+sin(θ/2)1)\vphantom{p}_L\langle0|_R\left(\cos(\theta/2)\langle0|+\sin(\theta/2)\langle1|\right) pL0R(0cos(θ/2)+1sin(θ/2))\vphantom{p}_L\langle0|_R\left(|0\rangle \cos(\theta/2)+|1\rangle \sin(\theta/2)\right)^{\dagger} pL0(Ry,R(θ)0R)\vphantom{p}_L\langle0|\left(R_{y,R}(\theta)|0\rangle_R\right)^{\dagger} pL0R0Ry,R(θ)\vphantom{p}_L\langle0|_R\langle0|R_{y,R}(-\theta)

Combinando questi risultati, possiamo scrivere la probabilità P++P_{++} come

p++=pL0R0Ry,R(θ)CNOTLRHLXLXR0L0R2p_{++}=\left|\vphantom{p}_L\langle0|_R\langle0|R_{y,R}(-\theta)\text{CNOT}_{LR} H_L X_L X_R|0\rangle_L|0\rangle_R\right|^2

Questo ci fornisce istruzioni esplicite su come costruire il nostro circuito quantistico. Applicheremo gate X, H, CNOT e RyR_y ai qubit che rappresentano gli stati quantistici delle particelle misurate da Lucas e Rihanna, ed eseguiremo misure per ottenere la probabilità.

IBM Quantum consiglia di affrontare i problemi di calcolo quantistico usando un framework chiamato Qiskit patterns. Consiste nei seguenti passi.

  • Passo 1: Mappa il tuo problema su un circuito quantistico
  • Passo 2: Ottimizza il tuo circuito per l'esecuzione su hardware quantistico reale
  • Passo 3: Esegui il tuo job su computer quantistici IBM usando le Runtime Primitives
  • Passo 4: Post-elabora i risultati

Praticamente tutto il lavoro svolto sopra corrispondeva al passo 1. Costruiamo il circuito risultante usando Qiskit!

Passo 1: Mappare i nostri risultati su un circuito quantistico

# We'll begin by importing qiskit and a visualization module so that we can plot a histogram of our results.

from qiskit.visualization import plot_histogram

Ricorda che 1/3 delle volte l'asse di scelta di Rihanna sarà a 2π/32\pi/3 radianti da quello di Lucas, 1/3 delle volte sarà a 4π/34 \pi/3 radianti, e 1/3 delle volte sceglieranno lo stesso asse. Quindi dobbiamo costruire 3 circuiti quantistici per questi 3 casi e sommare i risultati. Spiegheremo attentamente il primo, mentre gli ultimi due li enunceremo semplicemente.

# We start by declaring our first quantum circuit, and giving it two qubits (the first "2") and two classical bits for storing outputs (the second "2")
# Define registers
from qiskit import ClassicalRegister, QuantumRegister

qr = QuantumRegister(2, "q")
cr = ClassicalRegister(2, "c")
qc1 = QuantumCircuit(qr, cr)

# We know from our analysis above that we need an X gate acting on each of the qubits (L and R)
qc1.x([0, 1])
# We need a Hadamard gate acting on Lucas's qubit, which we're calling the 0th qubit.
qc1.h(0)
# The controlled-NOT gate uses the 0th qubit (Lucas's) as the control and the 1st qubit (Rihanna's) as the target.
qc1.cx(0, 1)
# The rotation gate acts on the 1st qubit (Rihanna's) and has an argument of -2 pi/3
qc1.ry(-2 * pi / 3, 1)
# Finally, we want to measure all the qubits in the circuit to obtain measurement probabilities, and store the results in the classical bits.
qc1.measure([0, 1], [0, 1])
# Now we can draw the first of the three circuits that will check Bell's inequality for us.
qc1.draw(output="mpl")

Output of the previous code cell

Il codice seguente costruisce rapidamente tutti e tre i circuiti in modo più snello. Nota che l'unica differenza tra i tre circuiti è l'entità della rotazione dei due qubit attorno all'asse yy.

qcs = [QuantumCircuit(2, 2), QuantumCircuit(2, 2), QuantumCircuit(2, 2)]
for i in range(0, len(qcs)):
qcs[i].x([0, 1])
qcs[i].h(0)
qcs[i].cx(0, 1)

qcs[0].ry(-2 * pi / 3, 1)
qcs[1].ry(-4 * pi / 3, 1)
qcs[2].ry(-2 * pi / 3, 1)
qcs[2].ry(-4 * pi / 3, 1)

for i in range(0, len(qcs)):
qcs[i].barrier()
qcs[i].measure([0, 1], [0, 1])

counts_list = [None] * len(qcs)
qcs[0].draw(output="mpl")

Output of the previous code cell

Ora utilizzeremo una primitiva Qiskit chiamata StatevectorSampler. Un sampler è una primitiva progettata per campionare tutti i possibili stati di un sistema e restituire le probabilità (o in alcuni casi le quasiprobabilità) di ottenere ciascuno stato. Possiamo specificare un numero di "shots" e osservare i "counts" per ogni stato.

from qiskit.primitives import StatevectorSampler

sampler = StatevectorSampler()

# Start a job that will return shots for all 100 parameter value sets.
for i in range(0, len(qcs)):
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result = job.result()
data_pub = result[0].data
counts = data_pub.c.get_counts()
counts_list[i] = counts
# plot_histogram(counts)

Se osserviamo i conteggi di ciascun circuito, notiamo che due di essi erano sostanzialmente identici, mentre il terzo era molto diverso.

plot_histogram(counts_list)

Output of the previous code cell

Creiamo un elenco dei possibili risultati e sommiamo tutti i conteggi di ciascuno stato dai tre circuiti per ottenere le probabilità complessive.

outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if counts_list[i].get(outcomes[j]) is None:
counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

total_counts = {}
for i in range(0, len(outcomes)):
total_counts[outcomes[i]] = sum(
counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)

Ora possiamo stampare i conteggi totali per ciascun risultato e tracciare l'istogramma.

print(total_counts)
plot_histogram(total_counts)
{'00': 7493, '01': 7432, '10': 7605, '11': 7470}

Output of the previous code cell

Verifica la tua comprensione

Leggi la/le domanda/e seguenti, rifletti sulla tua risposta, poi clicca sul triangolo per scoprire la soluzione.

L'immagine di cui sopra è coerente con i risultati predetti dalle variabili nascoste e dal determinismo? O è coerente con la meccanica quantistica probabilistica (e non locale)?

Risposta:

È coerente con la meccanica quantistica probabilistica e non locale. Il trattamento delle variabili nascoste aveva predetto che la probabilità di ottenere lo stesso segno fosse minore o uguale a 4/9. La meccanica quantistica aveva predetto una probabilità del 50%. L'istogramma sopra descrive una probabilità di 00 o 11 pari al 49,97%. Questo è molto vicino alla previsione della meccanica quantistica probabilistica, ma soprattutto è maggiore dell'intervallo consentito nel trattamento con variabili nascoste.

Questo dimostra qualcosa sulla natura?

Risposta:

No! Stavamo usando un simulatore! Si tratta di un computer programmato per comportarsi secondo le leggi della meccanica quantistica probabilistica. Se proponiamo una regola e poi programmiamo un computer per seguirla, la sua capacità di rispettare quella regola non è una prova che la regola sia corretta! L'unico modo per dimostrarlo è usare un vero computer quantistico!

Passo 2: Ottimizzare il circuito quantistico per l'esecuzione su hardware reale

Sebbene inizialmente abbiamo usato un simulatore per eseguire il debug del nostro codice, vogliamo davvero girare su hardware reale. Dopotutto, un simulatore sta solo fingendo di essere quantistico, basandosi sulle equazioni sopra. Se il simulatore ci dicesse che quelle equazioni sono corrette, non ci convincerebbe molto. Vogliamo che sia un vero computer quantistico a dirci cosa sta succedendo! Quindi selezioneremo il computer quantistico che vogliamo usare. A volte potrebbe essere importante scegliere un dispositivo specifico con le proprietà desiderate, ma spesso vogliamo semplicemente usare qualunque dispositivo sia meno occupato.

Di seguito trovi il codice per salvare le tue credenziali al primo utilizzo. Assicurati di eliminare queste informazioni dal notebook dopo averle salvate nel tuo ambiente, in modo che le tue credenziali non vengano accidentalmente condivise quando condividi il notebook. Consulta Configura il tuo account IBM Cloud e Inizializza il servizio in un ambiente non attendibile per ulteriori indicazioni.

from qiskit_ibm_runtime import QiskitRuntimeService

# Syntax for first saving your token. Delete these lines after saving your credentials.
# QiskitRuntimeService.save_account(channel='ibm_quantum_platform', instance = '<YOUR_IBM_INSTANCE_CRN>', token='<YOUR-API_KEY>', overwrite=True, set_as_default=True)
# service = QiskitRuntimeService(channel='ibm_quantum_platform')

# Load saved credentials
service = QiskitRuntimeService()

backend = service.least_busy(
operational=True, min_num_qubits=qcs[0].num_qubits, simulator=False
)
from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager

target = backend.target
pm = generate_preset_pass_manager(target=target, optimization_level=3)

qcs_isa = qcs

for i in range(0, len(qcs)):
qcs_isa[i] = pm.run(qcs[i])
qcs_isa[i].draw(output="mpl", idle_wires=False, style="iqp")
qcs_isa[2].draw(output="mpl", idle_wires=False, style="iqp")

Output of the previous code cell

Passo 3: Eseguire il job su computer quantistici IBM usando le Runtime primitives

Ora che abbiamo ottimizzato i nostri circuiti per l'esecuzione su hardware quantistico reale e fatto il debug del codice con i simulatori, siamo pronti a raccogliere statistiche da un vero computer quantistico e risolvere il disaccordo tra Einstein e Born.

from qiskit_ibm_runtime import SamplerV2 as Sampler
# from qiskit_ibm_runtime import Session
# sampler.options.default_shots = 1000

# Start a job that will return shots for all 100 parameter value sets.
# The best practice is to use a session as shown below. This is available to Premium Plan, Flex Plan, and On-Prem (IBM Quantum Platform API) Plan users.
# result_list = [None] * len(qcs)
# real_counts_list = [None] * len(qcs)
# with Session(backend=backend) as session:
# sampler = Sampler(mode=session)

# for i in range(0, len(qcs)):
# # Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# # Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# real_counts_list[i] = counts
# # plot_histogram(counts)

# Open users can still carry out this experiment, but without reserving a session of use, meaning repeated queuing is possible.
from qiskit_ibm_runtime import Batch

batch = Batch(backend=backend)
sampler = Sampler(mode=batch)

result_list = [None] * len(qcs)
real_counts_list = [None] * len(qcs)

for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
pub = qcs[i]
job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
result_list[i] = job.result()
data_pub = result_list[i][0].data
counts = data_pub.c.get_counts()
real_counts_list[i] = counts

# Close the batch because no context manager was used.
batch.close()
outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

for i in range(0, len(qcs)):
for j in range(0, len(outcomes)):
if real_counts_list[i].get(outcomes[j]) is None:
real_counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

real_total_counts = {}
for i in range(0, len(outcomes)):
real_total_counts[outcomes[i]] = sum(
real_counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
)

print(real_total_counts)
plot_histogram(real_total_counts)
{'00': 7542, '01': 7503, '10': 7304, '11': 7651}

Output of the previous code cell

# This syntax allows you to run the job on a simulator, in case you have exhausted your allotted time on real IBM quantum computers.
# But we strongly advise running this on real quantum computers, since this is meant to be a check of the behavior of real quantum systems.

# This uses a local simulator
# from qiskit_aer import AerSimulator

# This generates a simulator that mimics the real quantum system
# backend_sim = AerSimulator.from_backend(backend)

# Import an estimator, this time from qiskit (we import from Runtime for real hardware)
# from qiskit.primitives import BackendSamplerV2
# sampler = BackendSamplerV2(backend = backend_sim)

# result_list = [None] * len(qcs)
# counts_list = [None] * len(qcs)
# for i in range(0, len(qcs)):
# Define the primitive unified bloc (pub)
# pub = qcs[i]
# job = sampler.run([pub], shots=10000)
# Extract the result for the 0th pub (this example only has one pub).
# result_list[i] = job.result()
# data_pub = result_list[i][0].data
# counts = data_pub.c.get_counts()
# counts_list[i] = counts

# data_pubs = (result_list[0][0].data,result_list[1][0].data,result_list[2][0].data)
# outcomes = ("00", "01", "10", "11")

# Here we convert "None"s into 0's so that we can sum.

# for i in range(0, len(qcs)):
# for j in range(0, len(outcomes)):
# if counts_list[i].get(outcomes[j]) is None:
# counts_list[i].update({outcomes[j]: 0})

# Here we create a dictionary that holds all the outcomes and sums over their appearances in each of the circuits.

# total_counts = {}
# for i in range(0, len(outcomes)):
# total_counts[outcomes[i]] = sum(
# counts_list[j].get(outcomes[i]) for j in range(0, len(qcs))
# )

# print(total_counts)
# plot_histogram(total_counts)
counts_list
[None, None, None]

Passo 4: Post-elaborazione e analisi

Facciamo un passo indietro e ricapitoliamo: usando un trattamento con variabili nascoste e i 3 assi sfasati, abbiamo ottenuto un vincolo sulla probabilità che le misure diano lo stesso segno Psame,hv=4/9P_{same,hv} =4/9. Poi abbiamo assunto distribuzioni di probabilità come in meccanica quantistica e ottenuto un valore diverso per quella probabilità: Psame,gm=1/2P_{same,gm} = 1/2. La previsione della meccanica quantistica è più alta di quella consentita dal trattamento con variabili nascoste. Quindi è possibile determinare sperimentalmente se gli stati quantistici sono determinati dalla natura prima della misura, o se si trovano davvero in una sovrapposizione probabilistica di stati possibili.

Abbiamo progettato i nostri circuiti quantistici in modo che ci siano quattro possibili esiti corrispondenti a Lucas e Rihanna che misurano uno o l'altro segno della proiezione dello spin: 00, 01, 10 e 11. Nei casi 00 e 11, Lucas e Rihanna misurano lo stesso segno; nei casi 01 e 10, misurano segni opposti. Vediamo che, con ottima approssimazione, la probabilità che Lucas e Rihanna ottengano lo stesso segno è di circa il 50%, decisamente maggiore di 4/94/9. Ciò significa che non esiste alcun insieme di variabili nascoste in grado di spiegare quella distribuzione di probabilità, e il trattamento con variabili nascoste non è compatibile con l'esperimento.

Esistono diverse interpretazioni dei risultati sperimentali della meccanica quantistica, e vi sono molte sottigliezze nelle impostazioni sperimentali che vengono rivisitate di tanto in tanto. Ma finora i principi della meccanica quantistica e l'interpretazione probabilistica degli stati quantistici hanno descritto accuratamente i risultati. Max Born sembra aver avuto ragione.

Prendiamoci ancora un momento per riflettere sull'importanza di ciò. Due particelle emergono da un evento di decadimento e viaggiano in direzioni diverse, possibilmente per lungo tempo. I loro spin non si trovano in alcuno stato ben definito e non portano con sé istruzioni di variabili nascoste per determinare i risultati di future misure. Eppure la misura di una (lungo, diciamo +z+z) determina necessariamente il risultato di un esperimento sullo spin dell'altra particella nella direzione zz (deve essere z-z). Questo significa che qualcosa della fisica di una particella è determinato da ciò che si fa all'altra particella, possibilmente lontana. Questa è una delle situazioni che ha portato le persone a definire la realtà come "non locale".

Due particelle come quelle che abbiamo descritto sono in qualche modo "connesse", nel senso che le misure su una possono influenzare l'altra. Definiamo tali particelle come "entangled" (intrecciate). L'entanglement è più delle semplici correlazioni. Ad esempio, potremmo costruire una macchina classica che lancia un magnete da un lato con il polo nord in alto e un magnete dall'altro lato con il polo nord in basso. Tali magneti potrebbero essere perfettamente anti-correlati. Ma la misura di uno non farebbe nulla all'altro. Nell'entanglement quantistico, la particella A potrebbe trovarsi in uno stato indefinito (o in una miscela di molti stati), e possiamo fissarla in uno stato definito attraverso misure su una particella completamente diversa (diciamo B). Niente di simile esiste nel mondo classico.

Questo spesso apre un intero nuovo mondo di domande e possibilità. Alcune delle idee che evoca sono reali, come l'uso dell'entanglement per calcolare, come nei computer quantistici! Altre sono allettanti in apparenza ma si rivelano fallaci, come cercare di usare l'entanglement per inviare informazioni più velocemente della luce. Ti invitiamo a porre tutte le domande che ti vengono in mente e a leggere come altri hanno indagato questi fenomeni. C'è un intero mondo della meccanica quantistica da esplorare, ma ecco alcune risorse che potresti consultare:

Corsi IBM Quantum:

Articoli interessanti di meccanica quantistica:

Alcune risorse didattiche di meccanica quantistica:

Alcune ricerche didattiche sulla meccanica quantistica:

Domande

Gli insegnanti possono richiedere versioni di questi notebook con soluzioni e indicazioni sul collocamento nei curricula più comuni compilando questo breve sondaggio su come vengono utilizzati i notebook.

Concetti fondamentali:

  • Vi è stato un disaccordo storico su se gli stati quantistici fossero semplicemente sconosciuti o indeterminati dalla natura prima della misura, ovvero se la meccanica quantistica sia deterministica o probabilistica.
  • Le variabili nascoste e quindi il realismo locale non sono compatibili con le osservazioni della meccanica quantistica. Vale a dire, le correlazioni osservate in meccanica quantistica non possono essere spiegate da variabili ben definite che ci sono semplicemente sconosciute.
  • La meccanica quantistica è probabilistica.
  • L'entanglement è reale e osservabile.
  • L'entanglement non è solo correlazione.
  • Possiamo mappare scenari del mondo reale su computer quantistici.
  • Le variabili nascoste si riferiscono a quantità specificate dalla natura, ma sconosciute agli esseri umani; in questo contesto non esistono.

Domande V/F:

  1. V/F Albert Einstein sosteneva che la meccanica quantistica fosse incompleta, come teoria, perché descriveva solo le probabilità dei risultati e non il meccanismo sottostante che li determinava.
  2. V/F "Variabili nascoste" si riferisce all'idea che due particelle quantistiche possano essere entangled.
  3. V/F Qualsiasi due sistemi correlati sono quantisticamente entangled.
  4. V/F L'entanglement quantistico è importante per ottenere risultati matematici corretti, ma non è visibile in un esperimento.
  5. V/F Nella maggior parte dei casi, la meccanica quantistica non può dirti il risultato esatto di un esperimento, ma solo le probabilità che certi risultati vengano misurati.
  6. V/F In meccanica quantistica, in determinate condizioni, lo stato della particella A può essere influenzato dallo stato della particella B, anche se le particelle A e B non sono in contatto e non si scambiano particelle.
  7. V/F Possiamo mappare esperimenti del mondo reale su circuiti quantistici.

Domande a scelta multipla:

  1. Supponiamo che una particella con spin 0 si decada in due particelle con spin 1/2, A e B. Una misura eseguita sulla particella A rivela che il suo spin ha una proiezione lungo +z+z. La particella B ora

    • a. ha sicuramente una proiezione di spin lungo z-z
    • b. ha sicuramente una proiezione di spin lungo x-x
    • c. ha sicuramente una proiezione di spin lungo y-y
    • d. ha sicuramente una proiezione di spin negativa lungo qualsiasi asse misurato.
  2. Una particella con spin 0 si decade in due particelle con spin 1/2, A e B. Se la particella A viene misurata con una proiezione lungo +z+z, quali delle seguenti proiezioni sono possibili per una misura della particella B? Cerchia tutte quelle applicabili.

    • a. +x+x
    • b. x-x
    • c. +y+y
    • d. y-y
    • e. +z+z
    • f. z-z
  3. Supponiamo che una particella con spin 0 si decada in due particelle con spin 1/2, A e B. Cosa descrive meglio lo stato della particella A prima di qualsiasi misura?

    • a. Lo spin della particella A è lungo +z+z.
    • b. Lo spin della particella A è lungo z-z.
    • c. Lo spin della particella A è lungo +x+x.
    • d. Lo spin della particella A è definito lungo alcune direzioni, ma non altre.
    • e. L'orientamento dello spin della particella A è indeterminato dalla natura prima di qualsiasi misura.
  4. Quale delle seguenti affermazioni è/sono vere per il gate di Hadamard? Seleziona tutte quelle applicabili.

    • a. H0=12(0+1)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)
    • b. H0=12(01)H|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)
    • c. H12(01)=0H \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)=|0\rangle
    • d. H12(0+1)=0H \frac{1}{\sqrt{2}}(|0\rangle+|1\rangle)=|0\rangle
  5. Quale delle seguenti affermazioni è/sono vere per il gate X? Seleziona tutte quelle applicabili.

    • a. X0=1X|0\rangle = |1\rangle
    • b. X0=12(01)X|0\rangle = \frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)
    • c. X0=0X|0\rangle = -|0\rangle
    • d. X1=0X|1\rangle = |0\rangle
    • e. X12(01)=X12(10)X\frac{1}{\sqrt{2}}(|0\rangle-|1\rangle)=X\frac{1}{\sqrt{2}}(|1\rangle-|0\rangle)
  6. Quale dei seguenti è un gate a due qubit?

    • a. X
    • b. Ry(θ)R_y(\theta)
    • c. H
    • d. CNOT
  7. Supponiamo che un qubit si trovi nello stato 0|0\rangle. Qual è la probabilità di misurarlo nello stato 1|1\rangle?

    • a. Esattamente il 100% su un simulatore senza rumore, vicino al 100% su un vero computer quantistico
    • b. Vicino al 100% su un simulatore senza rumore, esattamente il 100% su un vero computer quantistico
    • c. Esattamente lo 0% su un simulatore senza rumore, vicino allo 0% su un vero computer quantistico
    • d. Vicino allo 0% su un simulatore senza rumore, esattamente lo 0% su un vero computer quantistico

Domande per la discussione:

  1. Gli amici A, B e C stanno discutendo i risultati di questo laboratorio, relativi alla disuguaglianza di Bell. In particolare, stanno guardando l'immagine che mostra come la probabilità quantistica di misurare lo stesso segno lungo gli assi sia maggiore di quella consentita da un trattamento con variabili nascoste: (Psame)max,QM>(Psame)max,HV(P_\text{same})_\text{max,QM}>(P_\text{same})_\text{max,HV}. L'amico A dice: "Questo significa che non conoscevamo gli stati di spin prima di una misura." L'amico B dice: "No, è qualcosa di più. Questo significa che gli spin non puntano già in una direzione particolare, prima della misura. Anche se lo stato di spin potrebbe in qualche modo essere determinato o memorizzato." L'amico C dice: "No, è ancora di più. Questo significa che il futuro stato di spin non era nemmeno deciso dalla natura prima della misura." Con chi sei d'accordo, e perché?

  2. Spiega come i fenomeni quantistici come l'entanglement indicano che la realtà è non locale.

  3. Quali esperimenti aggiuntivi vorresti eseguire per convincerti dei risultati ottenuti qui?