Skip to main content
IBM Quantum Platform

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

Per questo modulo Qiskit in Classrooms, gli studenti devono avere 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 di cui sopra, consultare la guida Installare Qiskit. Per poter eseguire lavori su veri computer quantistici, gli studenti dovranno creare un account con IBM Quantum® seguendo i passaggi della guida Set up your IBM Cloud account.

Questo modulo è stato testato e ha utilizzato 12 secondi di tempo della QPU. Si tratta solo di una stima. L'utilizzo effettivo può variare.

# 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'

Guardate la presentazione del modulo da parte della dottoressa Katie McCormick qui sotto, oppure fate clic qui per guardarla su YouTube.



Sfondo

In molti calcoli della meccanica quantistica si parte da uno stato noto di un sistema, che in genere è noto attraverso una misurazione. Oggi vogliamo rispondere alla domanda: "Cosa si può dire sullo stato di una particella prima di qualsiasi misurazione?" Un ovvio corollario è: "Come possiamo sapere, se non ci è permesso di misurare?"

Questa domanda risale agli albori della meccanica quantistica. I pionieri del settore si sono divisi, con Einstein e molti altri che sostengono che una particella si trova semplicemente in uno stato sconosciuto prima della misurazione. Altri, in particolare Max Born e più tardi Niels Bohr, fecero un'affermazione più radicale, affermando che lo stato di una particella era veramente indeterminato dalla natura prima della misurazione, non semplicemente sconosciuto agli esseri umani. La misurazione fa quindi collassare probabilisticamente la particella in uno stato definito. Einstein, insoddisfatto di questa spiegazione, disse "Gott würfelt nicht", che si traduce approssimativamente in "Dio non gioca a dadi"

Per decenni, dopo l'emergere di questo disaccordo, molti hanno pensato che non si sarebbe mai trovata una risposta, o che si trattasse di una questione di prospettiva. Poi, nel 1964, John Bell, un fisico dell'Irlanda del Nord, scrisse un articolo in cui esplorava le statistiche di alcuni esperimenti che potevano rispondere definitivamente a questa domanda. Egli dimostrò che in un particolare test si ottiene un insieme di statistiche da stati quantistici definiti (ma sconosciuti) e un altro insieme di statistiche da stati quantistici non determinati dalla natura.

All'epoca dell'articolo di Bell, le prove sperimentali della statistica in questione erano inaccessibili a tutti tranne che ai ricercatori all'avanguardia della fisica. Ma oggi, IBM Quantum ha reso possibile agli studenti di tutto il mondo l'utilizzo di dispositivi quantistici reali, in remoto attraverso il cloud e gratuitamente, per esplorare la natura degli stati quantistici. Questo è ciò che farete oggi.

Impostazione dell'esperimento mentale: entanglement dello spin

Esistono processi in cui una particella priva di spin decade in due particelle dotate ciascuna di spin. Poiché lo spin è un tipo di momento angolare, la legge di conservazione del momento angolare suggerirebbe che le due particelle in uscita devono avere spin esattamente disallineati. In effetti questo è stato osservato sperimentalmente.

Un esempio: un mesone neutro pi a volte decade in un positrone e in un elettrone: π0e++e\pi^0\rightarrow e^+ + e^- Non preoccupatevi se non sapete cosa sono queste particelle, e non preoccupatevi se le conoscete così bene da sapere che questo tipo di decadimento è relativamente improbabile. Basta sapere che se una delle particelle in uscita è di spin up, l'altra deve essere di spin down, e viceversa. Naturalmente, non c'è nulla di speciale in "su" e "giù"; lo stesso antiallineamento si osserva se le misure vengono effettuate lungo ciò che spesso chiamiamo xx o yy. Questo decadimento è un contesto interessante da prendere in considerazione, perché possiamo evitare le domande su quali misure siano state effettuate nel passato; il positrone e l'elettrone non esistevano nemmeno fino al momento del decadimento.

Possiamo lasciare decadere i mesoni π0\pi^0 e osservare la deviazione delle particelle in uscita sotto l'influenza di un campo magnetico disomogeneo. Un campo disomogeneo usato per deviare gli spin è spesso chiamato dispositivo Stern-Gerlach, dal nome dei ricercatori che per primi lo usarono per raccogliere (accidentalmente) prove dell'esistenza dello spin quantistico. Si noti che la storia qui è più complicata rispetto all'esperimento originale, poiché anche l'elettrone e il positrone sono carichi (a differenza degli atomi d'argento nell'esperimento di Stern Gerlach). Ma sappiamo che le particelle cariche si muovono in un campo magnetico e possiamo sottrarre questo effetto. In seguito, assumeremo che le deviazioni utilizzate nei nostri calcoli siano dovute allo spin delle particelle e non alla carica. Di conseguenza, ai nostri fini non importa quale osservatore ottenga il positrone e quale l'elettrone. L'assetto sperimentale è simile a questo:

Schema dell'impostazione di un esperimento EPR. Una sorgente invia una particella a sinistra e una a destra. Ciascuno di essi passa attraverso un dispositivo Stern-Gerlach, un campo magnetico disomogeneo e uno schermo di misurazione.

Quando il mesone decade, un elettrone viene espulso in una direzione e un positrone nell'altra. Ciascuna di queste due particelle viaggerà attraverso un campo magnetico disomogeneo, provocando una deviazione nella direzione del campo magnetico o in quella opposta.

Se abbiamo una sorgente di molti mesoni, possiamo raccogliere statistiche su questo aspetto. Se un osservatore a sinistra e uno a destra (chiamiamoli rispettivamente Lucas e Rihanna) misurano sempre lungo lo stesso asse, queste statistiche non saranno molto interessanti: ogni volta che uno misura in alto, l'altro misura in basso; ogni volta che uno misura nella pagina, l'altro misurerà fuori dalla pagina, e così via. Tuttavia, se i giocatori sono liberi di misurare la rotazione in qualsiasi direzione desiderino, potremmo trovare qualcosa di più interessante.

L'esperimento descritto sopra, in cui le particelle volano via con un momento angolare di spin che viene misurato da due osservatori, è stato inizialmente proposto da Einstein, Podolsky e Rosen (EPR) in questo articolo, e a volte viene indicato come "esperimento EPR".

Le nostre opzioni

Riportiamo per chiarezza 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 misurazione lungo qualsiasi asse è predeterminato dalla natura, anche se non sappiamo quale sia. Si potrebbe pensare che gli spin abbiano un orientamento reale e ben definito nello spazio, che non ci è noto, ma che esiste. Oppure si potrebbe pensare a questo come a un insieme di informazioni o istruzioni che determinano i risultati delle misurazioni lungo xx, yy, zz, o qualsiasi altra cosa in mezzo. Misurare lo spin del positrone (ad esempio lungo z) lo costringe a orientarsi e allinearsi nella direzione z o -z. Questo non ha alcuna influenza causale sullo spin dell'elettrone, anche se sappiamo che lo spin dell'elettrone è partito in senso opposto allo spin del positrone, quindi se lo spin del positrone è misurato lungo +z, lo spin dell'elettrone è misurato lungo -z. A parte la condizione iniziale di istruzioni che conservano il momento angolare (gli spin non sono allineati), non c'è alcun legame tra i due spin. Questa opzione è talvolta chiamata "variabili nascoste", come a dire: 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 sconosciuti, ma mal definiti fisicamente, senza un orientamento definito o istruzioni sui risultati sperimentali, finché non vengono misurati. La misurazione dello spin del positrone "collassa" lo spazio di tutte le possibilità fino a un singolo stato determinato, lungo gli assi +z o -z. Questa misura del positrone costringe anche lo spin dell'elettrone a collassare in una proiezione ben definita lungo z, esattamente opposta a quella del positrone. Questo effetto si verifica in tutto lo spazio tra il positrone e l'elettrone. Questo fenomeno è stato definito "azione spettrale a distanza", ma si potrebbe chiamare in modo meno drammatico "fisica non locale".

Verifica la tua comprensione

Sarebbe fantastico poter distinguere sperimentalmente tra le teorie di Einstein e di Born. Quali sono alcuni esperimenti che darebbero gli stessi risultati indipendentemente dall'opzione corretta? Ti viene in mente un esperimento che darebbe risultati diversi per le due opzioni?

Nota: Sarebbe davvero impressionante se riuscissi a ideare un esperimento che producesse risultati diversi a seconda delle ipotesi di Einstein e di Born; ci sono voluti decenni perché gli scienziati riuscissero a trovarne uno.

  • Mantenendo l'esperimento descritto finora (cioè nessuno spin netto con il positrone e l'elettrone non allineati), la misura di entrambi gli spin lungo ±x\pm x, ±y\pm y, o ±z\pm z produrrebbe sempre segni opposti a causa della conservazione del momento angolare, indipendentemente dall'opzione corretta. Misurare lo spin di una particella (ad esempio, l'elettrone) lungo una direzione (ad esempio, +z+z ) significa che lo spin dell'altra particella, il positrone, verrebbe misurato lungo z-z. Se invece si misura lo spin del positrone lungo la direzione xx, il risultato sarà con la stessa probabilità +x+x o x-x. Questo potrebbe essere dovuto al fatto che questo è ciò che dicono le istruzioni nascoste (opzione 1 di Einstein) o al fatto che la distribuzione di probabilità dello spin del positrone si aggiorna dopo la misurazione dello spin dell'elettrone e la nuova distribuzione di probabilità è coerente con una divisione 50-50 tra ±x\pm x (opzione 2 di Born). Questi punti sono spiegati più dettagliatamente di seguito.

    La risposta è solo leggermente diversa se si considera il decadimento di una particella con spin-1, in modo tale che le due particelle emergenti (come il positrone e l'elettrone) devono avere i loro spin allineati, anziché anti-allineati. Se una particella viene misurata lungo +y+y, una misurazione dell'altra particella lungo l'asse yy deve produrre anche +y+y, e così via. Come in precedenza, ciò potrebbe derivare da entrambe le opzioni.

    Il resto della lezione è dedicato a un esperimento in grado di distinguere tra le opzioni di Einstein e Born, quindi non ci dilungheremo molto in questa sede. Tuttavia, parte del trucco consiste nel misurare le due particelle lungo direzioni diverse (come xx e zz, o anche una 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 che ottengano rotazioni non allineate, indipendentemente da quale sia l'opzione vera. Per capire perché, si considerino i diagrammi seguenti.

Tre diagrammi. Per prima cosa si presenta un diagramma di due vettori di spin orientati in direzioni opposte, che giacciono su una diagonale tra gli assi x e z. Quindi, quando si effettua una misura lungo z, un amico ottiene uno spin lungo z negativo e l'altro lungo z positivo. Infine, viene mostrata la situazione per le misure lungo l'asse x, nel qual caso uno misura uno spin lungo x negativo e l'altro lungo x positivo.

La figura sopra mostra l'opzione di Einstein. Le direzioni delle rotazioni sono opposte e determinate. Se misuriamo lungo l'asse zz, uno sarà lungo +z+z, e uno lungo z-z. Non abbiamo motivo di supporre che il positrone si trovi lungo +z+z e l'elettrone lungo z-z; l'immagine mostra semplicemente che gli spin saranno misurati in direzioni opposte. Infatti, non è necessario che un dato spin abbia una componente del suo spin lungo la direzione eventualmente misurata, nel caso dell'opzione di Einstein. L'affermazione più debole dell'opzione di Einstein è che esiste una serie di istruzioni memorizzate nello spin che determinano quali saranno i risultati delle misurazioni lungo qualsiasi asse. Non è necessario immaginare che queste istruzioni abbiano la forma di un semplice vettore (si veda il diagramma seguente); torneremo su questo punto più avanti.

Tre diagrammi. Il primo non mostra più direzioni vettoriali ben definite, ma presenta un elenco di regole che determinano i risultati della misurazione. Il secondo e il terzo diagramma sono identici a quelli della figura precedente e mostrano le misure lungo z positivo/negativo e lungo x positivo/negativo.

La figura seguente mostra l'opzione di Born, in cui le direzioni degli spin di positroni ed elettroni sono sparpagliate in una distribuzione di probabilità e non hanno una direzione definita. Non leggete troppo nella forma della distribuzione. Ciascuna rotazione potrebbe in realtà avere una probabilità non nulla di puntare in qualsiasi direzione, purché siano opposte l'una all'altra; le abbiamo semplicemente disegnate come frazioni del cerchio in modo da poterle distinguere visivamente per la discussione. Si noti che nel caso dell'opzione di Born, è ancora vero che il momento angolare deve essere conservato. Quindi, se un'onda di probabilità viene "collassata" in modo che lo spin punti lungo +z+z, l'altra punterà lungo z-z e sarà deviata nella direzione opposta. Le opzioni sembrano identiche.

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

Ma cosa succede quando gli osservatori L e R possono misurare lungo uno qualsiasi dei tre assi, con ogni coppia distante 120 gradi, come mostrato nelle Figure 4 e 5. Ogni osservatore può decidere a caso lungo quale asse misurare lo spin (a, b o c). Non è necessario che le due misure si trovino lungo lo stesso asse. Quando ogni osservatore effettua la misura, può trovare una proiezione positiva sull'asse prescelto, oppure una proiezione negativa. Ad esempio, Lucas e Rihanna potrebbero misurare +a e -b o +b e +c. Si noti che se scelgono 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 trovare entrambi, ad esempio, +a. Nella prossima sezione vedremo come calcolare la probabilità che Lucas e Rihanna ottengano lo stesso segno sui loro assi misurati (++ o --) e segni opposti (+-) o (-+).

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

Le due figure qui sopra illustrano le possibili interpretazioni delle variabili nascoste in questo nuovo scenario di misura a tre assi. In altre parole, o gli spin sono già determinati, come vettori, o esiste un insieme di istruzioni fisiche in qualche modo incorporate nel sistema, in modo che i risultati di tutte le possibili misurazioni siano predeterminati, anche se inconoscibili agli sperimentatori prima della misurazione. L'alternativa è illustrata di seguito. Esiste una certa distribuzione di probabilità dei risultati, che può dirci qualcosa sulla probabilità dei diversi risultati della misurazione, ma i risultati sono indeterminati per natura prima della misurazione.

Viene nuovamente mostrata una distribuzione di probabilità sfocata, ora con i tre nuovi assi a, b e c. Questo comporta diverse probabilità di misurazione lungo le varie direzioni.

Possiamo chiederci: "Con quale frequenza i due giocatori devono trovare lo stesso segno della proiezione della trottola?" In altre parole, 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 Born daranno lo stesso risultato in questo schema di misura più complicato. Ma dalle figure 4 e 5 dovrebbe essere chiaro che la differenza è possiblepossible. Per il caso illustrato 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 ampie. È vero che il momento angolare si conserva ancora. Ma poiché i due campi magnetici non sono orientati lungo lo stesso asse, costringiamo le particelle a collassare su assi diversi (attraverso le interazioni con il campo). Nella prossima sezione useremo la meccanica quantistica per determinare 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 qualsiasi coppia di e+e+ e ee- avrà un insieme di componenti vettoriali per le loro rotazioni. Ad esempio, l'elettrone potrebbe avere le componenti (+a^,b^,+c^)(+\hat{a},-\hat{b}, +\hat{c}), nel qual caso il positrone deve avere le componenti (a^,+b^,c^)(-\hat{a},+\hat{b}, -\hat{c}). Qui si specifica solo il segno della proiezione su ciascun asse, non la grandezza. Immaginiamo di lasciare che avvenga un numero molto elevato NN di tali decadimenti e di raccogliere le misure per popolare la tabella sottostante.

Popolazione
Particella 1
Particella 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 ogni caso della tabella precedente, ci sono 9 possibili scelte per gli assi di Lucas e Rihanna: aaaa abab, acac, baba, bbbb, bcbc, caca, cbcb, e cccc. Leggendo la tabella, la probabilità che i due osservatori misurino lo stesso segno per le righe 1 e 8 è pari a zero. Per le righe da 2 a 7, ci sono 4 modi per ottenere lo stesso segno, che mostreremo solo per la riga 2:

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

Quindi, se l'opzione di Einstein è l'interpretazione corretta degli stati quantistici, la probabilità totale, sommata su tutte le popolazioni possibili, che Lucas e Rihanna ottengano lo stesso segno di proiezione dello spin sui loro assi scelti a caso 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

Per la riga 2 del grafico precedente, abbiamo elencato tutti i possibili modi in cui Lucas e Rihanna possono ottenere lo stesso segno per le loro misure e tutti i modi in cui possono ottenere segni diversi. Ripetere l'operazione per la terza fila.

  • Stessi segni: abab, baba, bcbc, cbcb

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

La tabella precedente si riferisce a "popolazioni", il che significa che non sappiamo quanti tipi di istruzioni produce la natura, se il trattamento a variabili nascoste è corretto. Dimostrare che, indipendentemente dalla distribuzione di N1N_1 a N8N_8, la probabilità di ottenere lo stesso segno dalle misurazioni è sempre minore o uguale a 4/9.

  • Partiamo dall'ipotesi di un numero costante di prove 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 o 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 tutte le prove, NtotN_tot, è ancora la stessa di prima. Ma poiché N1N'_1 o N8N'_8 è aumentato rispetto a 0, la somma di N2N'_2 e N7N'_7 deve essere inferiore a quella precedente. In particolare, la somma di N2N'_2 fino a N7N'_7 è minore di NtotN_{tot}. Pertanto, la somma di e è minore di

    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, si ha Psame49P_{same} \leq \frac{4}{9}.

Generalizzazione

Nella trattazione precedente, abbiamo considerato misure lungo assi specifici. Naturalmente, si possono effettuare misure lungo qualsiasi asse. Chiamiamo i due vettori spin di 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) per rappresentare il risultato predeterminato di una misurazione eseguita su una delle due particelle (A o B), dati i vettori di spin e la variabile nascosta. Si noti che AA è indipendente da b\vec{b} e che BB è indipendente da a\vec{a}. A questo punto si potrebbe porre un numero qualsiasi di domande relative alle correlazioni tra le misure su A e B. In particolare, si potrebbe chiedere il valore di aspettativa 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 obbediscono alla 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 sistema e c\vec{c} e d\vec{d} sono gli stati di spin di riferimento (ogni altro possibile stato di spin del sistema). Si tratta di un'intera classe di disuguaglianze, oggi note come "disuguaglianze di Bell". In questa sede non utilizzeremo questa forma generale. Ci concentreremo invece 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 scoprirà che lo spin di una particella è in direzione positiva o negativa. Qualunque cosa ottenga, orientiamo i nostri assi in modo che l'asse zz abbia quella direzione. Allora possiamo scrivere lo stato iniziale dopo il decadimento del mesone e prima di qualsiasi misurazione 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 con un angolo θ\theta rispetto a quello 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

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

  • 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}

    Utilizzando 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), si ha

    =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 uno spin in direzione positiva lungo l'asse da lui scelto +|+\rangle andand che anche Rihanna misuri uno spin positivo lungo la direzione da lei 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

Fate lo stesso per PP_{--}. Verificate che sia uguale anche a 12sin2(θ).\frac{1}{2}\sin^2(\theta).

  • 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 gli stessi Psame=sin2(θ/2)P_{\text{same}}=\sin^2(\theta/2).

Verifica la tua comprensione

Cosa si potrebbe fare per verificare la matematica di questo risultato? Per essere chiari, non vi chiediamo ancora di verificare la corrispondenza con la natura, ma solo di assicurarvi che non ci sia nulla di sbagliato in tutti i calcoli.

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

    (2) Controllare un caso noto. Inserire θ=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. Ci si aspetterebbe quindi che questa probabilità sia pari a zero, e infatti inserendo θ=0\theta = 0 si ottiene sin2(0/2)=0\sin^2(0/2) = 0.

    (3) Controllare un altro caso noto. Provare θ=π\theta = \pi. Cosa si deve ottenere. Attenzione a quel 12\frac{1}{2}.

In particolare, stavamo disegnando il caso in cui gli assi si trovino a 120deg120\deg l'uno rispetto all'altro. Ricordiamo che qualsiasi direzione ( ±a\pm a, ±b\pm b, o ±c\pm c ) Lucas ottenga, la chiamiamo zz. Rihanna sceglie a caso di misurare lungo ±a\pm a, ±b\pm b, o ±c\pm c. Se la sua scelta è uguale a quella di Lucas (fino a un segno), allora entrambi stanno misurando lungo zz, e la probabilità che Rihanna misuri anche +z+z è zero. Questo dovrebbe accadere 1/3 delle volte, poiché la scelta dell'asse da parte di Rihanna è indipendente dalla scelta di Lucas. Per qualsiasi altra scelta, Rihanna misurerà lungo un asse o 120deg=2π/3120\deg = 2\pi/3 radianti da zz (1/3 del tempo) o 240deg=4π/3240\deg = 4\pi/3 radianti da zz (1/3 del tempo). E naturalmente, lungo uno di questi assi, lo spin potrebbe essere misurato in 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}

Wow

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 Born sembravano destinate a dare sempre gli stessi risultati, poiché differivano solo nella descrizione di ciò che accade prima della misurazione. Eppure, ipotizzando che esistano istruzioni che predeterminano il segno della misura dello spin lungo determinati 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 ha 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 delle variabili nascoste. Possiamo quindi fare un esperimento e scoprire se gli stati della meccanica quantistica sono determinati dalla natura prima della misurazione o se si trovano veramente in una sovrapposizione probabilistica di stati possibili.

Questo esperimento è stato fatto molte volte utilizzando diversi sistemi fisici, spesso fotoni. Ci sono molte considerazioni sottili, come le distorsioni nella misurazione, la tempistica (simultaneità) delle misurazioni e molte altre. Nel corso dei decenni, le preoccupazioni per queste sottigliezze sono state costantemente erose. I test vengono ancora implementati, man mano che impariamo a conoscere meglio la realtà, ma ora c'è un ampio consenso sul fatto che la risposta che otterrete qui, utilizzando i computer quantistici di IBM®, è corretta.


Prova utilizzando veri computer quantistici!

In linea con la trattazione precedente, definiamo la direzione della misura di Lucas come +z+z. Questo era conveniente anche nell'approccio algebrico, ma è particolarmente conveniente per la computazione quantistica, poiché ciò che viene tipicamente misurato è la proiezione del qubit lungo zz. Vogliamo realizzare un circuito quantistico che ci dia le stesse condizioni di probabilità di cui sopra per P++P_{++}. Siamo liberi di orientare il nostro piano in modo tale 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

Per orientare la nostra discussione, dobbiamo sapere alcune cose sui computer quantistici di IBM. Innanzitutto, i qubit partono inizializzati nello stato 0=+z|0\rangle = |+\rangle_z. Come già detto, le misurazioni vengono effettuate lungo l'asse zz. L'obiettivo è quindi quello di determinare quali operatori possiamo inserire tra gli stati della base di misura 00\langle 0|\langle 0| e gli stati iniziali dei qubit 00|0\rangle |0\rangle per ottenere la complicata espressione di cui sopra. A tal fine, è necessario rivedere alcune porte di base dell'informatica quantistica.

XX gate: Equivale a un'operazione NOT. Cancello 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, la creazione di un circuito con una porta XX si presenta come segue:

from qiskit import QuantumCircuit

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

Output:

Output of the previous code cell

HH Porta di Hadamard: Crea uno stato di sovrapposizione. Cancello 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 una porta di Hadamard è realizzato come segue:

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

Output:

Output of the previous code cell

Cancello CNOT Controlled-NOT: Questo gate utilizza due qubit: uno di controllo e uno di destinazione. Controlla lo stato di un qubit di controllo che non viene modificato. Ma se il qubit di controllo si trova nello stato 1|1\rangle, il gate cambia lo stato del qubit di destinazione; se lo stato del qubit di controllo è 0|0\rangle non avviene alcun cambiamento. Nella notazione che segue, si suppone che il primo qubit sia il controllo e il secondo l'obiettivo.

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

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

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

Output:

Output of the previous code cell

Si noti che il primo qubit elencato in qc.cx(0,1) è il controllo, mentre il secondo è il target. Diagrammaticamente, l'obiettivo è quello con il segno "+" o la croce.

Ry(θ)R_y(\theta) Rotazione cancello Y: Ruota lo stato intorno all'asse y. Si tratta di un gate a un solo 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}

Infine, i gate di rotazione sono implementati specificando nell'ordine il tipo di gate, l'entità della rotazione e il qubit su cui è posizionato il gate:

import numpy as np

pi = np.pi

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

Output:

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 si riferisce all'entità della rotazione, mentre il secondo argomento specifica il qubit su cui deve essere posizionato il gate.

Verifica la tua comprensione

Utilizzando la sintassi introdotta o aggiornata in precedenza, realizzare un qualsiasi circuito quantistico che coinvolga quattro diversi tipi di porte quantistiche.

  • Le possibilità sono ovviamente infinite. 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")

Dagli esperimenti fisici ai circuiti quantistici

Dalle operazioni di queste porte, 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)

sono probabili con una porta Hadamard per ottenere la sovrapposizione e una porta CNOT per creare l'entanglement.

Utilizzeremo ora le porte 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 utilizza L come controllo e R come target. Possiamo ora escludere 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

Ora abbiamo scritto il ket interamente come porte quantistiche che operano sullo stato iniziale predefinito dei qubit.

Ora possiamo utilizzare la Ry(θ)R_y(\theta) che agisce su 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 dà istruzioni esplicite su come costruire il nostro circuito quantistico. Applicheremo le porte X, H, CNOT e RyR_y ai qubit che rappresentano gli stati quantistici delle particelle misurate da Lucas e Rihanna ed effettueremo le misurazioni per ottenere la probabilità.

IBM Quantum raccomanda di affrontare i problemi di calcolo quantistico utilizzando un quadro di riferimento che chiamiamo modelli Qiskit. Si compone delle seguenti fasi.

  • Fase 1: mappare il problema in un circuito quantistico
  • Fase 2: Ottimizzazione del circuito per l'esecuzione su hardware quantistico reale
  • Passo 3: Eseguire il lavoro sui computer quantistici di IBM utilizzando le primitive di runtime
  • Fase 4: Postelaborazione dei risultati

Fondamentalmente tutto il lavoro svolto in precedenza era la fase 1. Costruiamo il circuito risultante utilizzando Qiskit!

Fase 1: Mappatura dei 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

Ricordate che 1/3 delle volte l'asse scelto da Rihanna sarà 2π/32\pi/3 radianti da quello di Lucas, 1/3 delle volte sarà 4π/34 \pi/3 radianti da quello di Lucas e 1/3 delle volte sceglieranno lo stesso asse. Quindi dobbiamo realizzare 3 circuiti quantistici per questi 3 casi e sommare i risultati. La prima la spiegheremo con attenzione, mentre le ultime due le dichiareremo 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:

Output of the previous code cell

Il codice seguente costruisce rapidamente tutti e tre i circuiti in modo più snello. Si noti che l'unica differenza tra i tre circuiti è la 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:

Output of the previous code cell

Ora utilizzeremo una primitiva di riferimento di Qiskit denominata “ StatevectorSampler ”. Un sampler è una primitiva progettata per campionare tutti gli stati possibili di un sistema e restituire le probabilità (o, in alcuni casi, le quasi-probabilità) di ottenere ciascuno stato. Possiamo specificare un numero di "campioni" e osservare i "conteggi" per ciascuno 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 analizziamo i conteggi di ciascun circuito, notiamo che due di essi erano sostanzialmente identici, mentre il terzo era piuttosto diverso.

plot_histogram(counts_list)

Output:

Output of the previous code cell

Facciamo un elenco dei possibili risultati e sommiamo tutti i conteggi di ogni stato di ciascuno dei 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 ogni risultato e tracciare l'istogramma.

print(total_counts)
plot_histogram(total_counts)

Output:

{'00': 7493, '01': 7432, '10': 7605, '11': 7470}
Output of the previous code cell

Verifica la tua comprensione

Il quadro sopra descritto è coerente con i risultati previsti dalle variabili nascoste e dal determinismo? Oppure è coerente con la meccanica quantistica probabilistica (e non locale)?

  • È coerente con la meccanica quantistica probabilistica e non locale. Il trattamento a variabili nascoste prevedeva che la probabilità di ottenere lo stesso segno fosse minore o uguale a 4/9. La meccanica quantistica prevedeva una probabilità del 50%. L'istogramma sopra descritto descrive una probabilità di 00 o 11 pari a 49.97 %. Questo dato è molto vicino alla previsione della meccanica quantistica probabilistica, ma soprattutto è superiore all'intervallo consentito dal trattamento delle variabili nascoste.

Questo dimostra qualcosa sulla natura?

  • 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 seguire quella regola, la sua capacità di seguire la regola non è una prova che la regola sia corretta! L'unico modo per dimostrarlo è utilizzare un vero computer quantistico!

Passaggio 2: Ottimizza il tuo circuito quantistico per l'esecuzione su hardware reale

Anche se inizialmente abbiamo utilizzato un simulatore per il debug del nostro codice, vogliamo davvero eseguire l'operazione su un hardware reale. Dopo tutto, un simulatore sta solo fingendo di essere quantomeccanico, sulla base delle equazioni di cui sopra. Se il simulatore ci dicesse che quelle equazioni sono corrette, non ci convincerebbe molto. Vogliamo un vero computer quantistico che ci dica cosa sta succedendo! Selezioniamo quindi il computer quantistico che vogliamo utilizzare. A volte può essere importante scegliere un dispositivo specifico con le proprietà desiderate, ma spesso si vuole semplicemente utilizzare il dispositivo meno trafficato.

Di seguito è riportato un codice per salvare le credenziali al primo utilizzo. Assicurarsi di eliminare queste informazioni dal blocco note dopo averlo salvato nel proprio ambiente, in modo che le credenziali non vengano accidentalmente condivise quando si condivide il blocco note. Per ulteriori informazioni, vedere Configurazione dell'account IBM Cloud e Inizializzazione del servizio in un ambiente non attendibile.

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:

Output of the previous code cell

Passaggio 3: Esegui il tuo lavoro su computer quantistici IBM utilizzando primitive Runtime

Ora che abbiamo ottimizzato i nostri circuiti per funzionare su un vero hardware quantistico e abbiamo eseguito il debug del nostro codice utilizzando i simulatori, siamo pronti a raccogliere le statistiche di un vero computer quantistico e a 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)

Output:

{'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

Output:

[None, None, None]

Fase 4: Post-elaborazione e analisi

Facciamo un passo indietro e ricapitoliamo: Utilizzando un trattamento a variabili nascoste e i 3 assi di offset, 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 nella meccanica quantistica e abbiamo ottenuto un valore diverso per questa probabilità: Psame,gm=1/2P_{same,gm} = 1/2. La previsione della meccanica quantistica è superiore a quella consentita dal trattamento delle variabili nascoste. Si può quindi sapere sperimentalmente se gli stati della meccanica quantistica sono determinati dalla natura prima della misurazione o se si trovano veramente in una sovrapposizione probabilistica di stati possibili.

Abbiamo progettato i nostri circuiti quantistici in modo che ci siano quattro possibili risultati corrispondenti a Lucas e Rihanna che misurano un segno della proiezione di spin o l'altro: 00, 01, 10 e 11. Nei casi 00 e 11, Lucas e Rihanna misurano lo stesso segno, mentre nei casi 01 e 10 misurano segni opposti. Vediamo che, con un'ottima approssimazione, le probabilità che Lucas e Rihanna ottengano lo stesso segno sono circa il 50%, sicuramente maggiori di 4/94/9. Questo significa che non esiste un insieme di variabili nascoste che possa spiegare questa distribuzione di probabilità e che il trattamento delle variabili nascoste non è compatibile con l'esperimento.

Esistono diverse interpretazioni dei risultati sperimentali della meccanica quantistica e ci sono molte sottigliezze nelle configurazioni 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 sul significato di questo fatto. Da un evento di decadimento emergono due particelle che viaggiano in direzioni diverse, eventualmente per molto tempo. I loro spin non si trovano in uno stato ben definito e non portano con sé istruzioni a variabili nascoste per determinare i risultati delle misurazioni future. Ma una misura di una di esse (ad esempio lungo +z+z ) determina necessariamente il risultato di un esperimento sullo spin dell'altra particella lungo la direzione zz (deve essere z-z ). Questo significa che qualcosa della fisica di una particella è determinato da ciò che viene fatto all'altra particella, magari lontana. Questa è una situazione che ha portato le persone a definire la realtà come "non locale".

Due particelle come quelle che abbiamo descritto sono in qualche modo "collegate", nel senso che le misure su una possono influenzare l'altra. Ci riferiamo a tali particelle come "entangled". L'entanglement non è solo correlazione. Per esempio, potremmo costruire una macchina classica che sputa un magnete da un lato con l'estremità nord verso l'alto e un magnete dall'altro lato con l'estremità nord verso il basso. Tali magneti potrebbero essere perfettamente anticorrelati. Ma una misurazione dell'uno non farebbe nulla per l'altro. Nell'entanglement meccanico quantistico, la particella A potrebbe trovarsi in uno stato indefinito (o in un miscuglio di molti stati) e noi possiamo fissarla in uno stato definito attraverso misure su una particella completamente diversa (ad esempio, B). Nel mondo classico non esiste nulla di simile.

Questo spesso porta a un mondo di domande e possibilità completamente nuovo. Alcune delle idee che evoca sono reali, come l'uso dell'entanglement per calcolare, come nei computer quantistici! Alcuni sono ingannevolmente attraenti, ma si rivelano fallimentari, come il tentativo di usare l'entanglement per inviare informazioni più velocemente della luce. Vi invitiamo a porre tutte le domande che vi vengono in mente e a leggere come altri hanno studiato questi fenomeni. C'è un mondo intero di meccanica quantistica da esplorare, ma qui ci sono solo alcune risorse che potreste consultare:

IBM Corsi quantistici:

Interessanti documenti di meccanica quantistica:

Alcune risorse didattiche di meccanica quantistica:

Alcune ricerche didattiche sulla meccanica quantistica:


Domande

Gli insegnanti possono richiedere le versioni di questi quaderni con le chiavi di risposta e le indicazioni per l'inserimento nei curricula comuni compilando questo rapido sondaggio sull'utilizzo dei quaderni.

Concetti fondamentali:

  • C'è stato un disaccordo storico sul fatto che gli stati quantistici fossero semplicemente sconosciuti o indeterminati dalla natura prima della misurazione, se la meccanica quantistica sia deterministica o probabilistica.
  • Le variabili nascoste e quindi il realismo locale non sono coerenti con le osservazioni della meccanica quantistica. In altre parole, le correlazioni osservate nella meccanica quantistica non possono essere spiegate da variabili ben definite che sono semplicemente sconosciute.
  • La meccanica quantistica è probabilistica.
  • L'entanglement è reale e osservabile.
  • L'entanglement non è solo correlazione.
  • Possiamo mappare gli scenari del mondo reale sui computer quantistici.
  • Le variabili nascoste si riferiscono a quantità specificate dalla natura, ma sconosciute all'uomo; non esistono in questo contesto.

Domande vero/falso:

  1. T/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 determinava tali risultati.
  2. T/F "Variabili nascoste" si riferisce all'idea che due particelle meccaniche quantistiche possano essere aggrovigliate.
  3. T/F Due sistemi correlati sono quantomeccanicamente entangled.
  4. T/F L'entanglement quantomeccanico è importante per fare matematica, ma non si può vedere in un esperimento.
  5. T/F Nella maggior parte dei casi, la meccanica quantistica non è in grado di indicare il risultato esatto di un esperimento, ma solo le probabilità di misurare determinati risultati.
  6. T/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 alcuna particella.
  7. T/F Possiamo mappare gli esperimenti del mondo reale su circuiti quantistici.

Domande del moderatore:

  1. Supponiamo che una particella spin-0 decada in due particelle spin-1/2 A e B. La particella A viene sottoposta a una misurazione che rivela che il suo spin ha una proiezione lungo +z+z. La particella B ora

    • a. ha sicuramente una proiezione di rotazione lungo z-z
    • b. ha sicuramente una proiezione di rotazione lungo x-x
    • c. ha sicuramente una proiezione di rotazione lungo y-y
    • d. ha sicuramente una proiezione di spin negativa lungo qualsiasi asse misurato.
  2. Una particella spin-0 decade in due particelle 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 misurazione della particella B? Cerchiare tutto ciò che si applica.

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

    • 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 lungo altre.
    • e. L'orientamento dello spin della particella A non è determinato dalla natura prima di qualsiasi misurazione.
  4. Quale delle seguenti affermazioni è vera per la porta di Hadamard? Selezionare tutte le opzioni appropriate.

    • 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 è vera per la porta X? Selezionare tutte le opzioni appropriate.

    • 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 misurare lo stato 11\rangle?

    • a. Esattamente il 100% su un simulatore privo di rumore, quasi il 100% su un vero computer quantistico
    • b. Quasi il 100% su un simulatore privo di rumore, esattamente il 100% su un vero computer quantistico
    • c. Esattamente lo 0% su un simulatore privo di rumore, quasi lo 0% su un vero computer quantistico
    • d. Quasi 0% su un simulatore privo di rumore, esattamente 0% su un vero computer quantistico

Domande di discussione:

  1. Gli amici A, B e C discutono i risultati di questo laboratorio, relativi alla disuguaglianza di Bell. In particolare, stanno guardando l'immagine che mostra che la probabilità quantomeccanica di misurare lo stesso segno lungo gli assi è maggiore di quella consentita da un trattamento a 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 della misurazione" L'amico B dice: "No, è più di questo. Ciò significa che gli spin non sono già orientati in una particolare direzione, prima della misurazione. Anche se lo stato di rotazione potrebbe essere determinato o memorizzato in qualche modo" L'amico C dice: "No, è ancora più di questo. Ciò significa che il futuro stato di spin non è stato deciso dalla natura prima della misurazione" Con chi è d'accordo e perché?

  2. Spiegare come fenomeni di meccanica quantistica come l'entanglement indichino che la realtà è non-locale.

  3. Quali altri esperimenti vorreste fare per convincervi dei risultati ottenuti?

  4. La disuguaglianza di Bell può essere esplorata solo con 3 assi equidistanti aa, bb e cc? Si può fare con qualsiasi altro numero di assi? Che aspetto avrebbe? Si otterrebbe comunque una differenza nelle probabilità previste dalle variabili nascoste rispetto alla meccanica quantistica probabilistica?

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.