Come si elabora un qubit – Proviamo il computer quantistico di IBM! – Parte 2
Come si elabora un qubit? 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]
L’Algebra del qubit e le operazioni base
Come abbiamo spiegato nella Parte 1, il qubit base è \(|0\rangle\) e può essere trasformato in altri qubit tramite delle operazioni.
Come abbiamo anche detto, il qubit è rappresentato da un vettore di dimensione due:
$$|0\rangle =\begin{pmatrix}1\\0\end{pmatrix}$$
Se ancora non sapete cosa sia un qubit, beh, potete guardare questo bellissimo video de “La Fisica che non ti aspetti”, e leggere la prima parte di questa serie di articoli!
Chi già ha studiato algebra lineare, può facilmente dedurre come si elabora un qubit algebricamente:
Matrici 2×2.
In realtà, si utilizzeranno matrici 2×2 unitarie, in modo da mantenere l’amplificazione sulle probabilità e la reversibilità del processo.
Abbiamo dunque:
$$|\psi’\rangle=U|\psi\rangle$$
Dove:
$$U^\dagger U = 1$$
E dove \(|\psi\rangle\) l’abbiamo detto essere un qualsiasi qubit, in stato base o in sovrapposizione.
Ma come si elabora un qubit in computer quantistico? Nel computer quantistico, queste matrici saranno chiamate “Gates” e compiono operazioni basilari sul qubit.
I pauli operators e operazioni base
Per ora abbiamo spiegato quindi qual è il qubit base e alla domanda “come si elabora un qubit?” abbiamo risposto: Con dei gates.
Vediamo ora i Pauli Operators, cioè i gates basilari per elaborare un qubit.
Il gate X:
Possiamo notare subito come X sia un classico “NOT” in algebra booleana, e trasformerà un \(|0\rangle\) in \(|1\rangle\) e viceversa.
Abbiamo poi un phase-flips Z, cioè una matrice che cambia la fase al qubit che moltiplica, ruotandolo però lungo l’asse Z. Per vederne gli effetti, è quindi necessario che il qubit non sia sullo stesso asse. Per fare ciò, viene prima applicata la matrice H, che vedremo a breve.
Per finire, abbiamo la combinazione di X e Z in Y, che negherà il nostro qubit e lo cambierà di fase.
Possiamo notare subito come il secondo qubit base \(|1\rangle\) si ottenga dal primo:
$$|1\rangle = X|0\rangle$$
Rappresentiamo un qubit
Risulta impossibile capire realmente il qubit senza rappresentarlo. Per farlo ricorriamo alla sfera di Bloch. Per ora vi risulterà arcano il suo funzionamento, ma ci aiuterà a distinguere i vari qubit che creeremo. Successivamente spiegheremo come funziona la rappresentazione. Per ora, basti questo:
Possiamo quindi ridefinire il nostro qubit come:
$$|\psi\rangle = \cos(\theta/2)|0\rangle + e^{i\phi}\sin(\theta/2)|1\rangle$$
Dove \(\theta\) e \(\phi\) sono segnati in figura.
Chiariremo meglio successivamente.
Ecco i qubit che conosciamo:
qubit 0: \(|0\rangle\)
qubit 1: \(|1\rangle = X|0\rangle\)
qubit 2: \(Z|0\rangle\)
qubit 3: \(Y|0\rangle\)
Come possiamo vedere i qubit \(|0\rangle\) e \(|1\rangle\) stanno solo nell’asse Z, rispettivamente a +1 e -1.
Quelle che per ora ci sembrano operazioni inutili (Z e Y) acquisiranno significato fra poco, introducendo i Clifford Gates.
Clifford gates
I “Clifford Gates” sono gli operatori secondari che servono a passare in uno stato di sovrapposizione.
Il primo gate, noto come Hadamard Gate, serve a creare una nuova base detta diagonale, portando il nostro qubit \(|0\rangle\) in uno stato di sovrapposizione, con le due probabilità (di essere \(|0\rangle\) o \(|1\rangle\) ) a \(1/2\) se misurato con la base canonica.
Questo qubit rappresenta quello che nella Parte 1 abbiamo chiamato \(|+\rangle\).
Se lo andiamo a rappresentare, capiamo cosa succede:
Il qubit non sta più sull’asse Z. Abbiamo quindi un qubit che è sia \(|0\rangle\) che \(|1\rangle\) per metà del tempo.
Questo qubit è il risultato di questa operazione:
\(H|0\rangle\)
E cosa succede se neghiamo con Z il nostro nuovo qubit? Come risultato, otteniamo \(|-\rangle\) :
Abbiamo anche qui un qubit che è sia \(|0\rangle\) che \(|1\rangle\) per metà del tempo, ma differisce da quello precedente.
Questo qubit è dato da questa operazione:
\(ZH|0\rangle\)
E possiamo facilmente asserire che i due qubit appena creati siano ortogonali tra loro.
Abbiamo quindi una nuova base detta diagonale. Se misuriamo i vettori della base diagonale sulla base canonica otteniamo una misurazione al 50% \(|0\rangle\) e al 50% \(|1\rangle\), e viceversa se misuriamo i vettori della base canonica rispetto alla base diagonale.
Da notare, che lo stesso risultato si può ottenere con la combinazione XH, in quanto ruotando prima sull’asse X e poi su quello diagonale, si ottiene lo stesso risultato che ruotando sull’asse diagonale e poi sull’asse Z.
Misurare in una base non canonica:
Nel modello di computer quantistico che ci fornisce IBM, non possiamo scegliere in che base misurare un qubit, ma basta reinvertire gli assi applicando ancora la matrice H per ottenere lo stesso risultato che misurare i qubit nella nuova base diagonale:
Questo qubit è dato da questa operazione:
\(HH|0\rangle\)
Questo qubit è dato da questa operazione:
\(HZH|0\rangle\)
Arriviamo ad una terza base, la base circolare:
$$|\circlearrowright\rangle = \frac{1}{\sqrt{2}}(|0\rangle+i|1\rangle)$$
$$|\circlearrowleft\rangle = \frac{1}{\sqrt{2}}(|0\rangle-i|1\rangle)$$
Questa base si ricava applicando la matrice S dopo aver applicato la matrice H:
$$|\circlearrowright\rangle = SH|1\rangle $$
$$|\circlearrowleft\rangle = SZH|1\rangle $$
I due qubit saranno rappresentati sull’asse Y, e questo vuol dire che, praticamente, la matrice S ruota di soli 90° intorno sull’asse Z. (a differenza di Z che crea una rotazione di 180°).
Ancora, se si misura un qubit di questo tipo su una base canonica, si ottiene un risultato incerto. Se si misura nella base circolare, si ottiene un risultato determinato.
L’ultima matrice \(S^T\) serve ad eseguire l’operazione inversa di S e quindi a passare dalla base circolare a quella canonica o diagonale.
Vi è infine il Gate T, che non appartiene però ai Clifford Gate. Il gate T sembra ruotare di 45° sull’asse Z, ma in realtà compie un’operazione più complessa, e che vedremo nella Parte 4.
Ecco un riassunto di tutte le operazioni importanti con le matrici H, S, T e Z, partendo dallo stato \(|+\rangle\):
Sveliamo l’arcano sulla sfera di Bloch
È il momento di capire come si rappresentano i qubit in sovrapposizione nella sfera di Bloch . Possiamo ricostruire un qualsiasi qubit (anche in sovrapposizione) calcolando il vettore di Bloch relativo, un vettore a tre dimensioni rappresentato in questo modo:
$$\langle X \rangle = \text{tr}(|\psi\rangle\langle \psi|X)$$
$$\langle Y \rangle = \text{tr}(|\psi\rangle\langle \psi|Y)$$
$$\langle Z \rangle = \text{tr}(|\psi\rangle\langle \psi|Z)$$
Lo stato è dato da:
$$|\psi\rangle \langle\psi|=(I+\langle X\rangle X + \langle Y \rangle Y + \langle Z \rangle Z)/2$$
E infine, ogni valore \(\langle Q \rangle\) è calcolato misurando il qubit nella base standard e calcolandone le due probabilità:
$$\langle Q\rangle = P(0) – P(1)$$
In questo modo, possiamo rappresentare un qualsiasi qubit a prescindere dalla base, in un unico grafico. Questo è essenziale perchè i qubit \(|\circlearrowright\rangle\), \(|\circlearrowleft\rangle\), \(|+\rangle\) e \(|-\rangle\) , quando misurati nella base canonica, si comporteranno esattamente allo stesso modo, cioè risultando per metà \(|0\rangle\) e per metà \(|1\rangle\). Ma quei qubit SONO DIVERSI, e per capirne la differenza, basta rappresentarli nella sfera di Bloch.