Via Antonio Amato, 20/22 84131 Salerno (SA)

Qiskit: creazione e simulazione di un semplice circuito quantico

qiskit

(articolo redatto da Domenico Di Mieri)

Prosegue il nostro appuntamento a puntate con le guide di approfondimento sul quantum computing. Nell’ARTICOLO PRECEDENTE abbiamo preparato il nostro ambiente di sviluppo e test installando Anaconda e Jupiter Notebook ed abbiamo scritto il nostro primo script Python per verificarne la corretta installazione. Qui creeremo il nostro primo circuito quantico e lo simuleremo su un computer classico.

Indice dei contenuti

Creazione del circuito quantico

Per prima cosa apri Jupyter Notebook e prendi nota del token di accesso o copia e incolla la URL generata nella barra dell’indirizzo del browser.

Crea un nuovo script Python cliccando sul pulsante New e poi scegliendo Python 3 dal menu a tendina.
Poi inserisci i comandi in sequenza premendo, ad ogni fine riga SHIFT+INVIO in modo da eseguire immediatamente la riga e visualizzarne l’eventuale output:

importa la libreria Qiskit

definisce un registro di 2 qubit

definisce un registro di 2 bit classici (necessari per la misura del valore dei qubit)

definisce un circuito costituito da 2 qubit e 2 bit classici.

“magic function” di riga: chiama la funzione matplotlib con parametri inline (serve per visualizzare l’output delle funzioni di plot in Jupyter Notebook)

stampa su schermo lo schema del circuito definito tramite i comandi precedenti.

L’output della funzione draw() del circuito è alquanto spartano, ma si capisce che il circuito contiene 2 qubit (q0_0 e q0_1) e 2 bit classici c0: 2.

È possibile specificare dei parametri per la funzione draw in modo che l’output visualizzato sia più “leggibile”:

Il circuito di sopra non esegue, al momento, assolutamente alcuna operazione essendo costituito da 2 qubit e 2 bit classici senza alcun collegamento.

Proviamo a fare qualcosa di più interessante facendo passare il qubit q0 attraverso una porta di Hadamard.

È il caso di ricordare che questo significa moltiplicare il vettore q0 per la matrice di Hadamard di ordine 2:

E visualizziamo lo schema del circuito:

A questo punto aggiungiamo un collegamento (fan out) tra il qubit 0 ed il qubit 1.

Simulazione su un computer classico

Per poter visualizzare il risultato dell’esecuzione del circuito è necessario tipicamente convertire lo stato dei qubit in uno stato di una macchina classica. È cioè necessario misurare i qubit e memorizzarne il valore di q0 e q1 negli omologhi c0 e c1:

Si ricordi che la misura dello stato di un qubit distrugge l’informazione in esso contenuta facendolo collassare nei due soli stati possibili in elettronica classica.

A questo punto procediamo con la simulazione.

Carica il simulatore che si vuole utilizzare per eseguire il circuito;

Esegue la simulazione del circuito e memorizza il risultato nella variabile result;

Importa le funzioni di visualizzazione ad istogrammi della libreria qiskit.tools.visualization

Conclusioni

Se la procedura è andata a buon fine, dovresti visualizzare il risultato della simulazione sotto forma di istogramma.

Se vuoi approfondire la tua conoscenza sul quantum computing ti consigliamo i seguenti riferimenti sito-bibliografici:
Qiskit.org
Wikipedia – Quantum Logic Gate


Se anche tu vuoi occuparti di progetti di sviluppo software di ultima generazione
dai un’occhiata alle nostre opportunità di lavoro e conosciamoci subito!

Questo sito utilizza cookies propri e si riserva di utilizzare anche cookie di terze parti per garantire la funzionalità del sito e per tenere conto delle scelte di navigazione.
Per maggiori dettagli e sapere come negare il consenso a tutti o ad alcuni cookie è possibile consultare la Cookie Policy.

USO DEI COOKIE

Se abiliti i cookie nella tabella sottostante, ci autorizzi a memorizzare i tuoi comportamenti di utilizzo sul nostro sito web. Questo ci consente di migliorare il nostro sito web e di personalizzare le pubblicità. Se non abiliti i cookie, noi utilizzeremo solo cookies di sessione per migliorare la facilità di utilizzo.

Cookie tecnicinon richiedono il consenso, perciò vengono installati automaticamente a seguito dell’accesso al Sito.

Cookie di statisticaVengono utilizzati da terze parti, anche in forma disaggregata, per la gestione di statistiche

Cookie di social networkVengono utilizzati per la condivisione di contenuti sui social network.

Cookie di profilazione pubblicitariaVengono utilizzati per erogare pubblicità basata sugli interessi manifestati attraverso la navigazione in internet.

AltriCookie di terze parti da altri servizi di terze parti che non sono cookie di statistica, social media o pubblicitari.