[PYTHON] Téléportation quantique avec Qiskit!

introduction

J'aimerais expérimenter la téléportation quantique en utilisant Qiskit d'IBM. C'est difficile à expliquer théoriquement, donc cette fois je vais viser à faire un circuit et à le faire fonctionner avec un simulateur. Cela signifie: «Faisons-le d'abord, plutôt que de le comprendre». Commençons.

environnement

Q Experience JupyterNotebook

Qu'est-ce que Qiskit

C'est un Python OSS qui peut réellement exécuter "IBM Q", qui est un ordinateur quantique IBM. Il comprend également une fonction de simulateur, afin que vous puissiez pratiquer la programmation quantique. Tout le monde peut l'utiliser immédiatement sur IBM Q Experience (https://www.ibm.com/quantum-computing/technology/experience/).

Qu'est-ce que la téléportation quantique?

C'est un phénomène que ** l'état quantique actuel est instantanément transféré loin **.

Dans la théorie de la relativité d'Einstein, rien n'est plus rapide que la lumière. Cependant, il y a un ** mensonge ** selon lequel la téléportation quantique peut transmettre des interactions au-delà de la vitesse de la lumière.

La téléportation quantique changera-t-elle le monde?

Étant donné que l'état quantique en question peut être reproduit très loin, je pense qu'une sorte de problème de transport peut être résolu. Cependant, puisqu'il s'agit en fait d'un très petit événement mondial, il devrait s'appliquer à l'information et à la communication plutôt qu'au transport de matériel.

Mais si l'application progresse, la vraie téléportation n'est peut-être pas un rêve ...?

Expérience quantique de téléportation quantique

L'explication est sur le point de démarrer l'expérience.

Préparer Qiskit

Aucune préparation n'est requise pour utiliser Q Experience. Si vous souhaitez l'exécuter localement, vous pouvez l'installer avec pip.

pip install qiskit

Créez un circuit quantique et exécutez-le avec un simulateur

Tout d'abord, de la préparation de la bibliothèque.

#Importer la bibliothèque
from qiskit import QuantumRegister, ClassicalRegister, BasicAer

Faites un circuit de base.

#Préparer les registres classiques (3 en bas du schéma de circuit)
cr0 = ClassicalRegister(1)
cr1 = ClassicalRegister(1)
cr2 = ClassicalRegister(1)

#Faire un circuit de base (3 registres quantiques + 3 registres classiques)
circ = QuantumCircuit(QuantumRegister(3), cr0, cr1, cr2)

#Afficher la confirmation
circ.draw(output='mpl')

output_2_0.png

C'est fait. Le rôle du circuit est le suivant. On suppose que le troisième registre quantique et le troisième registre classique sont éloignés.

image.png

Ensuite, nous placerons la porte dans le circuit. C'est facile à faire, il suffit de placer le portail sur le circuit.

#Faire un circuit jusqu'à la mesure
circ.h(0)
circ.h(1)
circ.cx(1,2)
circ.cx(0,1)
circ.h(0)

#Afficher la confirmation
circ.draw(output='mpl')

output_3_0.png

C'est très facile. Faisons le reste du circuit. Après avoir fait une pause avec une barrière, je remettrai la porte. La valeur du registre classique (1er et 2e) provoque l'opération de porte du registre quantique (3e), donc c_if est entré, mais la procédure est la même.

#Faites le reste du circuit
circ.barrier(range(3))
circ.measure(0, 0)
circ.measure(1, 1)
circ.z(2).c_if(cr0, 1)
circ.x(2).c_if(cr1, 1)
circ.measure(2, 2)

#Afficher la confirmation
circ.draw(output='mpl')

output_4_0.png

C'est très simple, le circuit est maintenant terminé. La téléportation quantique semble difficile, mais c'est juste cela dans la représentation de circuit.

Lançons-le sur le simulateur.

#Exécuter dans le simulateur
backend = BasicAer.get_backend('qasm_simulator')
#Exécuter 1024 fois par défaut
job = execute(circ, backend) 
result = job.result()

Ceci termine l'exécution. Voyons le résultat de l'exécution.

#Afficher le résultat de l'exécution, total 1024 fois avec 8 modèles
result.get_counts(circ)

Le résultat de sortie est le suivant.

    {'0 0 0': 100,
     '1 1 0': 127,
     '1 0 1': 147,
     '1 0 0': 140,
     '0 0 1': 131,
     '0 1 0': 128,
     '0 1 1': 131,
     '1 1 1': 120}

La vue est la suivante.

image.png

Lors de la téléportation, le troisième registre quantique n'est pas mesuré et est utilisé tel quel.

Si aucune mesure n'est effectuée, le même état que le premier registre quantique de la source de transfert sera reproduit (téléporté) dans le troisième registre quantique. Quand je le mesure, l'état de "superposition" est rompu, mais comme il s'agit d'une expérience, je le mesure pour voir s'il se téléporte vraiment.

Attends une minute

Examinons de plus près le circuit résultant.

image.png

Sur la base des premier et deuxième registres classiques qui sont la source de transfert (correspondant aux résultats de mesure des premier et deuxième registres quantiques), effectuez l'opération de porte (Z, X) du registre quantique (troisième) de la destination de transfert. Vous pouvez voir qu'il y en a.

En effet, pour réaliser la téléportation quantique, il est nécessaire de «notifier à la destination de transfert les résultats de mesure de la source de transfert». Comment dites-vous ...? Est-ce LINE?

Quoi qu'il en soit, si vous ne le faites pas, "le bit quantique à la destination du transfert peut être dans un état légèrement différent de celui de la source du transfert".

Il y a des pièges dans la téléportation quantique! !! (En fin de compte, c'était une histoire que la communication classique n'est pas nécessaire!)

en conclusion

Cette fois, j'y ai écrit un commentaire. Puisqu'il est difficile de comprendre le concept d'un ordinateur quantique au début, je pense qu'il est possible de "le toucher d'abord". Touchons et apprenons à approfondir votre compréhension. (Je me le dis, car la théorie est difficile)

référence

https://qiskit.org/documentation/index.html https://github.com/Qiskit/qiskit-iqx-tutorials/blob/master/qiskit/fundamentals/1_getting_started_with_qiskit.ipynb https://github.com/maru-labo/ibm-q-handson/blob/master/5_ibm_q.ipynb

Recommended Posts

Téléportation quantique avec Qiskit!
Qiskit: Transformée de Fourier quantique
Qiskit: Réalisation de neurones artificiels avec des circuits quantiques (implémentation)
Optimisation combinée avec recuit quantique
Qiskit: Implémentation de Quantum Boltsman Machine
Qiskit: Implémentation des états d'hypergraphes quantiques
Qiskit: mise en œuvre de l'apprentissage des circuits quantiques (QCL)