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

Qiskit Quantum Teleportation (No-Cloning Theorem)

Qiskit Quantum Teleportation

(articolo redatto da Domenico Di Mieri)

Eccoci al nostro sesto approfondimento sul quantum computing. In questo articolo vedremo come, sfruttando l’entanglement, sia possibile “trasferire” l’informazione contenuta in un quantum bit senza distruggerlo e come siano sufficienti poche gate per formare un circuito molto simile ad un circuito elettronico classico di tipo fan-out.

Indice dei contenuti

La clonazione di un qubit è impossibile?

Nei circuiti elettronici classici un bit può essere copiato da un registro ad un altro o, più semplicemente, duplicato utilizzando un circuito detto fan-out:

Lo stesso principio non è valido, in generale, per i circuiti quantici. Si dimostra, infatti, che non è possibile clonare un qubit.

La dimostrazione si basa sull’assurdo che esista una gate che “cloni” il qubit e sfruttando la linearità degli operatori matriciali arriva alla contraddizione che il clone di un qubit composto dalla composizione di due stati è diverso dalla composizione dei due qubit clonati.

Il fatto che non sia possibile copiare il qubit si intuisce anche se pensiamo che per “copiarlo” è necessario prima misurarlo e la misura fa collassare lo stato del qubit in uno dei valori della base scelta eliminando, di fatto, la sovrapposizione degli stati.

Esiste, però, un modo che, sfruttando l’entanglement, consente di “trasferire” l’informazione contenuta nel qubit senza distruggerlo e a tale scopo sono sufficienti poche gate utilizzate per formare un circuito molto simile a quello visto in precedenza.

1. Creazione circuito a 3 Qubit

Per cominciare creiamo un circuito composto da tre qubit e tre bit classici.

quantum computing - circuito qubit

Nota che qui abbiamo utilizzato una forma più compatta del comando QuantumCircuit: passando due interi come argomento. Il comando, in questo caso, crea automaticamente un quantum register ed un classical register contenenti rispettivamente il numero di qubit ed il numero di bit classici desiderati.

Quello che vogliamo fare è “teletrasportare” l’informazione contenuta nel qubit 0 nel qubit 2 e per fare questo abbiamo bisogno di un qubit ausiliario (qubit 1).

Per prima cosa settiamo il qubit 0 a |1> utilizzando la gate di Pauli X:

quantum computing - gate Pauli X

In questo caso abbiamo utilizzato il comando barrier per creare una sorta di separazione tra una prima sezione del circuito, in cui settiamo i valori di input, e la sezione successiva, in cui creeremo il circuito che effettua il teletrasporto dell’informazione da q0 a q2. Nota che l’utilizzo di una barrier è spesso necessario perché Qiskit trasforma, attraverso un componente chiamato “transpiler”, il circuito da noi composto usando comandi Python in un insieme di segnali fisici utilizzabili su un computer quantico. Nel fare ciò il transpiler esegue delle ottimizzazioni e, quindi, se trova delle condizioni per cui due gate, ad esempio, messe in sequenza si “annullano”, allora le rimuove semplicemente. Ovviamente questo non è vero nella realtà dove, a causa degli errori dovuti ai problemi di coerenza del qubit ogni gate cioè ogni livello di elaborazione introduce un errore casuale.

2. Inserire circuito in stato “entangled”

A questo punto inseriamo un circuito che metta i qubit 1 e 2 in uno stato entangled (a tale scopo ricordiamo che si usa il circuito composto da una gate di Hadamard ed una CNOT)

quantum computing - circuito entangled

A questo  punto è sufficiente applicare l’operazione inversa al qubit che non è in stato entangled per far sì che l’informazione contenuta nel qubit 0 venga “trasportata” nel qubit 2:

quantum computing - circuito entangled

A questo punto possiamo “misurare” i qubit.
In questo caso aggiungiamo una “barrier” solo per separare logicamente i circuiti:

quantum computing - circuito entangled

Da notare che anche qui abbiamo utilizzato la forma compatta del comando measure per copiare il valore dei qubit 0 e 1 nei bit classici 0 e 1.

3. Completare protocollo di teletrasporto

Inseriamo una ulteriore barrier e aggiungiamo due ultime gate per completare il protocollo di teletrasporto:

quantum computing - teletrasporto

A questo punto effettuiamo la misurazione del qubit 2 ed effettuare la simulazione:

quantum computing - teletrasporto

Come si vede dalle etichette sull’asse x il qubit 2 (quello più in basso) assume sempre valore 1 esattamente come il qubit 0 in ingresso. Gli altri 2 qubit assumono valori casuali e, di conseguenza, i 4 stati possibili (una volta fissato 1 dei 3 bit) sono equiprobabili.

Qiskit è una potente libreria che mette a disposizione molti strumenti utili per lavorare con i circuiti quantici e con la rappresentazione dei qubit.
Se, ad esempio, vogliamo rappresentare i qubit sulla sfera di Bloch possiamo utilizzare il simulatore “statevector_simulator”:

quantum computing - sfera di bloch

Con questo circuito si possono “teletrasportare” in maniera quasi istantanea le informazioni anche a grande distanza.

Conclusioni

Con questo circuito si possono “teletrasportare” in maniera quasi istantanea le informazioni anche a grande distanza.

Se vuoi approfondire la tua conoscenza sul quantum computing ti consigliamo i seguenti riferimenti sito-bibliografici:

Qiskit.org

Qiskit – HGate

Qiskit – XGate

qiskit.circuit.QuantumCircuit.cnot

Wikipedia – Qubit


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.