Loading repository data…
Loading repository data…
BNouailhac / repository
L'objectif de ce Workshop est de vous initier au framework Quiskit pour python
Qiskit est un framework pour le language python qui permet de simuler des circuits quantique sur son ordinateur et même de les testers directements sur des ordinateur quantique grâce à IBM.
Commencons par installer les prérequis:
jupyter va nous servir à interpréter nos commandes qiskit lignes par lignes.
Ajoutons qiskit à notre code
from qiskit import *
teston si qiskit est bien installée sur votre ordinateur
qiskit.__qiskit_version__
maintenant nous allons créer des qbits et des bits qui nous serviront pour la suite
qr = QuantumRegister(2)
cr = ClassicalRegister(2)
on peut mettre plusieurs arguments au QuantumRegister et ClassicalRegister pour les modifiers, ici le "(2)" permet de choisir le nombre de qbits et bits créaient.
maintenant nous allons créer un circuit informatique quantique qui va utiliser les 2 variables que nous venons de crer
circuit = QuantumCircuit(qr, cr)
Regardons ce à quoi ca ressemble:
circuit.draw()
cela va vous montrer le circuit donc vous verrez juste les 2 qbits et bits.
Ajoutons maintenant une porte quantique qui va agir sur nos deux qbits et observont le résultat:
circuit.cx(qr[0], qr[1])
circuit.draw()
cela va vous montrer le circuit donc vous verrez juste les 2 qbits et bits.
Ajoutons maintenant des portes quantique (H gate et CNOT gate) qui vont agir sur nos qbits et observont le résultat:
circuit.h(qr[0])
circuit.cx(qr[0], qr[1])
circuit.draw()
pour connaitre les effets des portes quantique: https://quantum-computing.ibm.com/docs/circ-comp/q-gates#h-gate
maintenant nous allons écrire les résultats des deux portes d'avants sur les bits classiques:
circuit.measure(qr, cr)
circuit.draw(output = 'mpl')
le "output = 'mpl'" nous sert juste à changer le type d'affichage.
maintenant nous allons écrire les résultats des deux portes d'avants sur les bits classiques:
circuit.measure(qr, cr)
circuit.draw(output = 'mpl')
le "output = 'mpl'" nous sert juste à changer le type d'affichage.
et maintenant nous allons tester notre circuit en local:
simulator = Aer.get_backend('qasm_simulator') // on utiliser le simulateur 'qasm_simulator'
result = execute(circuit, backend = simulator).result() // on lance le test
et affichons les résultats dans un histogram:
from qiskit.tools.visualization import plot_histogram
plot_histogram(result.get_counts(circuit))
Si cela à bien fonctionné vous avez maintenant un les différents résultats obtenue qui apparaisse à l'écran.
Nous avons pu voir avant que notre code fonctionné sur notre ordianteur, donc éssayons maintenant de tester notre code sur un véritable ordinateur quantique: Pour cela il va falloir créer un compte IBM et récupérer une clef d'accès: https://quantum-computing.ibm.com/
Ensuite on l'utilise comme cela:
from qiskit import IBMQ
IBMQ.save_account('votre_token')
IBMQ.load_account()
Ensuite on paramètre le teste que l'on va executer:
provider = IBMQ.get_provider('ibm-q') // on dit que le fournisseur est ibm
qcomp = provider.get_backend('ibmq_16_melbourne') // on veut utiliser l'ordinateur quantique du nom de 'ibmq_16_melbourne'
job = execute(circuit, backend=qcomp) // on donne à job (la viariable qui va effectuer le test) notre circuit.
Lançons le test:
from qiskit.tools.monitor import job_monitor
job_monitor(job)
Cela va prendre plusieurs minutes car vous allez devoir faire la queue avec les autres personnes souhaitant utiliser le même ordinateur quantique que vous.
Affichons les tests:
result = job.result()
plot_histogram(result.get_counts(circuit))
Vous pouvez vous rendre compte que les résultats sont différends de ceux de tout a l'heure, cela est du au fait que même si qiskit peut simuler un ordinateur quantique, il ne le fait pas parfaitement ce qui explique la différence de résultat.
Merci d'avoir suivi ce Workshop, si vous souhaitez aller plus loin dans l'utilisation de qiskit, n'hésitez à continuez a apprendre sur ce framework directement sur le site de qiskit : https://qiskit.org/