Scroll Top
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!