Programmiamo il computer quantistico!
IBM ha lanciato il suo programma IBM Quantum Experience!
Noi di Close-up Engineering ci siamo subito iscritti e IBM ci ha gentilmente accettati!
In questo articolo-tutorial composto da 6 parti, vedremo:
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/proviamo-computer-quantistico-ibm-parte-1-by-close-engineering/8963/”]Parte 1: Come funziona un computer quantistico[/button]
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/come-si-elabora-qubit-proviamo-computer-quantistico-ibm-parte-2-2/8984/”]Parte 2: L’algebra del qubit e le operazioni base[/button]
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/elaborazione-nel-computer-quantistico-ibm-proviamo-computer-quantistico-ibm-parte-3/9016/”]Parte 3: Proviamo il computer quantistico di IBM[/button]
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/sistemi-qubit-t-gates-bell-states-ghz-states-proviamo-computer-quantistico-ibm-parte-4/9014/”]Parte 4: Sistemi di qubit, gates ed entangled state[/button]
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/potenziamo-computer-quantistico-ideale-reale-proviamo-computer-quantistico-ibm-parte-5/9110/”]Parte 5: Potenziamo il computer quantistico di IBM! [/button]
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/algoritmi-quantistici-proviamo-computer-quantistico-ibm-parte-6/9123/”]Parte 6: Algoritmi Quantistici [/button]
Programmiamo il computer quantistico!
Ora che sappiamo come si elabora un qubit, proviamo il computer quantistico di IBM ed elaboriamo qualche qubit con i nostri gates.
IBM ha iniziato ad accettare sempre più velocemente le richieste di iscrizione! Ecco il form per provare ad iscriversi al programma Quantum Experience e provare finalmente il Computer Quantistico di IBM:
[button color=”” size=”large” type=”” target=”_blank” link=”https://quantumexperience.ng.bluemix.net/”]CLICCA QUI PER ISCRIVERTI [/button]
IBM offre un’interfaccia grafica per programmare l’elaborazione di un qubit (o più qubit, come vedremo nella Parte 4).
Quest’interfaccia è molto semplice ed efficace:
Abbiamo alcuni qubit \(|0\rangle\) al quale possiamo applicare nel tempo i vari gates che abbiamo visto nella Parte 2. Questo ci consente di elaborarli.
Inoltre, possiamo misurare in un determinato istante il valore del qubit.
La misurazione avviene nella base canonica, e come abbiamo visto sempre nella Parte 2, misurare un qubit in sovrapposizione ci darà uno stato indeterminato. La misurazione infatti i dirà la probabilità con cui il qubit è stato misurato in ogni stato ( \(|0\rangle\) o \(|1\rangle\) ).
Infine, possiamo rappresentare in un dato istante il qubit nella sfera di Bloch.
Semplice no?
Misuriamo il qubit \(|0\rangle\):
X, H, SH
Misuriamo le operazioni base!
Facciamo qualche prova con i gate che abbiamo conosciuto nella Parte 2.
Applichiamo il gate X al qubit \(|0\rangle\) e vediamo cosa succede:
I gate Z e Y per ora non servono, in quanto Z non produce nessun cambiamento se misuriamo in base canonica, e Y produce lo stesso cambiamento di X.
Passiamo ad H ottenendo \(|+\rangle\) :
Possiamo notare che la percentuale è esattamente \(1/2\) per \(|0\rangle\) e \(1/2\) per \(|1\rangle\). Questo indica uno stato di sovrapposizione.
Proviamo applicando prima H e poi S ottenendo \(|\circlearrowright\rangle\):
Come possiamo notare, si ottiene lo stesso risultato che con solo H… Ma i due qubit sono diversi, come sappiamo! Eccoli rappresentati nella sfera di Bloch:
Porte logiche: CNot
Per rendere più interessante questa prima prova con il Computer Quantistico di IBM, introduciamo il Gate CNOT:
Prende un input di controllo in ingresso, e applica una NOT su un altro qubit SE l’input di controllo è un qubit \(|1\rangle\).
Programmiamo il computer quantistico e misuriamo.
In questo caso, il control è \(|0\rangle\) (qubit 1) e l’input rimane invariato a \(|0\rangle\) (qubit 2)
Proviamo invece con \(|0\rangle\) \(|1\rangle\)
Proviamo con \(|1\rangle\) \(|0\rangle\):
Proviamo con \(|1\rangle\) \(|1\rangle\):
Se invece, proviamo dopo aver applicato il gate H?
Ecco che l’indeterminatezza del qubit \(|+\rangle\): viene trasferita al qubit \(|0\rangle\), ma ecco cosa succede se proviamo a disegnarlo nella sfera di Bloch:
Questo vuol dire che l’input non si è tramutato in un \(|+\rangle\), ma è rimasto nella base canonica, solo con indeterminazione a 50 e 50 tra \(|0\rangle\) e \(|1\rangle\).
Abbiamo creato un nuovo qubit?!
Nella prossima parte risponderemo a questa domanda e vedremo come elaborare SISTEMI DI QUBIT!
[button color=”” size=”large” type=”” target=”_blank” link=”http://systems.closeupengineering.it/sistemi-qubit-t-gates-bell-states-ghz-states-proviamo-computer-quantistico-ibm-parte-4/9014/”]Parte 4: Sistemi di qubit, gates ed entangled state[/button]
Un altro extra…
So benissimo di avervi lasciato con più dubbi che prima di leggere l’articolo.. Ma è normale. Erano i miei stessi dubbi prima di finire tutto il tutorial di IBM!
Vi lascio un video di IBM in cui si mostrano elaborazioni più complesse, in modo che possiate iniziare a sperimentare voi stessi e cercare di rispondere alla domanda di prima.