Home » Come si elabora un qubit – Proviamo il computer quantistico di IBM! – Parte 2

Come si elabora un qubit – Proviamo il computer quantistico di IBM! – Parte 2

Categorie It's not a bug, it's a feature · La macchina di Turing · Programmazione

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:

Pauli Operators: X Gate

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.

Pauli Operators: Z Gate

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:

Bloch Sphere

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:

Qubits

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\).

qubit H

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\) :

qubit XH
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.

Hadamard Gate

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:
qubit HH

 

 

Questo qubit è dato da questa operazione:
\(HH|0\rangle\)

 

 

 

qubit HXH

 

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.


5 commenti su “Come si elabora un qubit – Proviamo il computer quantistico di IBM! – Parte 2”

  1. Ciao! Articolo interessantissimo, mi sfugge solo una cosa: qual è il punto di parametrizzare un qubit con due angoli? Non basta usare cos(theta)|0> + sin(theta)|1>? E quindi rimanere su una circonferenza? Grazie 🙂

    Rispondi
    • Ciao Vincenzo!
      Scusa se rispondo solo ora.

      Il punto è proprio il fatto che ci possono essere due qubit DIVERSI che rappresentati su una circonferenza sarebbero uguali, ovvero, due qubit diversi che se misurati (in una determinata base) danno le stesse probabilità di essere \(|1\rangle o |0\rangle \).
      Quando si misura un qubit si fa proprio questo: lo si proietta su una circonferenza, misurandone le probabilità in quella base (quella che genera il piano della circonferenza).
      Ma un qubit può essere misurato in basi diverse, e quei due qubit sono uguali solo se misurati in una particolare base.
      Prendi per esempio \(|+\rangle o |\circlearrowright\rangle \):
      Entrambi se misurati nella base canonica avranno probabilità al 50% in uno stato e 50% nell’altro.
      Ma se li misuri nella base diagonale, il qubit \(|+\rangle\)sarà sempre \(|1\rangle \) mentre il qubit \(|\circlearrowright\rangle \) sarà ancora a 50% nei due stati!
      Se ancora non sei convinto: se li rappresenti algebricamente (facendo la moltiplicazione con la matrice) sono evidentemente diversi!
      Infine, come spiegato nelle parti successive, c’è addirittura uno stato (che comprende infiniti qubit diversi) che non è rappresentabile nella sfera di Bloch: l’entangled state. (viene rappresentato in realtà con il punto nell’origine)

      Spero di aver risposto bene e chiarito il tuo dubbio, e anche di averti incuriosito sulle parti successive! 😉

      Rispondi
  2. Salve ragazzi, purtroppo le immagini riguardanti i Pauli Operators e Clifford Gates non si vedono più. Potreste caricarle nuovamente per favore?

    Rispondi
  3. Mi scuso ma non riesco a capire come “misurare” il qbit alla fine di una qualsiai elaborazione. Supponiamo che dopo una serie di elaborazioni ho il mio qubit che vale alfa-zero e beta-uno, ovviamente con alfa quadro più beta quadro che vale 1. Come faccio io a misurare alfa (o beta)?

    Rispondi

Lascia un commento