J’ai créé un mini-jeu quantique!

Comment j’ai exploré l’univers quantique avec l’aide de GPT-4

Philippe Nadeau
8 min readJun 3, 2023

J’ai toujours été fasciné par le concept du chat de Schrödinger, cette idée improbable qu’un chat pourrait être à la fois mort et vivant jusqu’à ce qu’on le regarde. N’ayant pas de félin quantique sous la main, j’ai décidé de m’aventurer dans le monde mystérieux de l’informatique quantique et de faire mes propres expériences sur le sujet. C’est ainsi qu’est né “Quantum Coin Flip”, un mini-jeu généré sur l’un des ordinateurs quantiques d’IBM, rien de moins.

Et là, vous vous dites sûrement, ‘Oh mon Dieu ! Il a utilisé un super-ordinateur quantique, une bête de calcul qui pourrait briser le chiffrement du Bitcoin avant que vous n’ayez fini de lire cette phrase, ou résoudre des équations si compliquées qu’elles feraient tourner la moustache d’Einstein, une machine qui doit être refroidie à une température plus glaciale que le sourire forcé de votre belle-mère à Noël, qui dévore plus d’énergie qu’un concert de U2 avec Bono sous amphétamines, et qui émet plus de CO2 qu’une fusée SpaceX lors d’un feu d’artifice mal contrôlé… Tout ça pour… quoi ? Lancer une pièce de monnaie virtuelle ?’ Eh bien, oui, exactement. Pile ou Face. Ne tentez même pas de comprendre, c’est juste de l’art quantique dans toute sa splendeur !

Mon voyage au pays de l’étrange

Intrigué par la magie du monde quantique, où tout peut être deux choses à la fois, j’ai donc décidé de tenter une expérience avec un ordinateur quantique, un vrai, un de ceux qui coûte plusieurs millions de dollars, comme celui qui sera bientôt installé dans la zone d’innovation quantique de Sherbrooke! L’idée ? Créer un jeu où une pièce virtuelle serait à la fois face et pile… jusqu’à ce qu’on la regarde.

Chaque face de la pièce est une porte vers l’infini

Imaginez que vous ayez un trousseau avec des milliards de clés et qu’une seule ouvre la porte vers un trésor caché, ou vers un amour emprisonné, selon ce qui vous motive le plus. Avec un ordinateur classique, c’est comme si vous deviez essayer chaque clé une par une, la tournant laborieusement dans la serrure, jusqu’à ce que vous puissiez trouver la bonne. Mais avec un ordinateur quantique, c’est comme si vous pouviez insérer toutes les clés dans la serrure simultanément, tournant et trouvant instantanément celle qui fait cliquer la serrure et ouvre la porte. C’est une révolution digne d’un roman de science-fiction qui va transformer notre façon de traiter l’information, de résoudre des mystères insondables, et bien plus encore. L’informatique quantique, c’est l’avenir, et c’est plus qu’épique, c’est purement magique, vous ne trouvez pas ?

Faisons les présentations : Notre super-héros, le qubit !

Avant de plonger tête première dans notre jeu, on doit expliquer quelques notions de base. Ne vous inquiétez pas, je vous promets que vous n’aurez pas besoin d’un cachet d’aspirine!

Qubits : Imaginez les qubits comme les Schrödinger du monde numérique. Ils sont les petits prodiges de l’informatique quantique. Leur super pouvoir ? Ils peuvent être 0 et 1 en même temps, comme si c’était l’heure de l’apéro et l’heure d’aller au boulot simultanément. Vous allez me dire, pas besoin du quantique pour concilier les deux… Bref!

Superposition : C’est l’état où un qubit fait son numéro d’équilibriste, restant à la fois 0 et 1. C’est comme si vous aviez une pièce de monnaie qui, défiant toute logique, est à la fois pile et face jusqu’à ce que vous la regardiez. C’est le genre de chose qui plongerait Gérard Majax dans la plus grande expectative!

Mesure : C’est là que les choses deviennent vraiment intéressantes. La mesure, c’est comme jouer à un jeu de cache-cache avec un qubit. Quand vous le “regardez”, ce petit malin de qubit choisit de devenir soit 0, soit 1. Et une fois qu’il a fait son choix, plus moyen de revenir en arrière. Un peu comme quand vous décidez de manger le dernier cookie dans la boîte !

Opérations unitaires : Les opérations unitaires sont les outils que vous utilisez pour manipuler les qubits. Vous pouvez les imaginer comme des instruments de musique, et chaque fois que vous en jouez un, vous changez l’état de votre qubit. En assemblant différentes opérations, vous pouvez créer une mélodie quantique complexe. C’est ce que j’appelle la “méthode Assurancetourix”.

Erreur de mesure : L’erreur de mesure est un concept important dans l’informatique quantique. Les qubits sont des particules délicates, et il peut être difficile de les mesurer sans qu’ils changent d’état. C’est un peu comme essayer de prendre une photo d’une étoile filante au volant d’une Ferrari : pas facile de faire le cliché parfait, et dangereux...

Décodage d’erreur : Figurez-vous que même dans notre monde quantique sophistiqué, qui semble tout droit sorti d’un épisode de Star Trek, les erreurs sont inévitables. Incroyable, non ? On dirait que nous sommes à bord de l’Enterprise et que Spock vient de détecter une faille dans le système. Mais ne vous inquiétez pas ! Des techniques existent pour décrypter ces erreurs et remettre le navire sur le bon cap. Imaginez une sorte de gomme magique capable d’effacer nos erreurs de mesure, Spock aurait certainement aimé disposer d’un tel gadget, et les scénaristes de Star Trek aussi!

Intrication : C’est un phénomène où deux qubits deviennent inextricablement liés, l’état de l’un influençant instantanément l’état de l’autre, quelle que soit la distance entre eux. C’est comme si, en regardant la même série Netflix, vous et votre meilleur(e) ami(e) pouviez rire, pleurer ou frissonner en même temps, même si vous êtes à des kilomètres de distance. C’est ça la magie quantique!

Circuit quantique : C’est une séquence d’opérations quantiques, ou “portes”, appliquées à un ensemble de qubits. Ces portes peuvent manipuler les qubits de différentes manières, leur permettant d’interagir les uns avec les autres ou de changer leur état. Les circuits quantiques sont au cœur de la programmation des ordinateurs quantiques.

Porte de Hadamard : Cette appellation mystérieuse est une opération quantique qui permet de mettre un qubit dans un état de superposition. En termes simples, si vous avez un qubit dans un état bien défini (soit 0, soit 1), après avoir passé par la porte de Hadamard, il se retrouve à la fois dans l’état 0 et 1, un peu comme si votre pièce de monnaie était à la fois sur pile et sur face.

Évident, non ?

Créer un jeu avec IBM Quantum Lab et un coup de pouce de GPT-4

Pour concrétiser cette idée de jeu, j’ai dû enfiler mon costume neuf de bricoleur quantique et me diriger vers IBM Quantum Lab, véritable caverne d’Ali Baba pour quiconque s’intéresse à l’informatique quantique. Et pour m’accompagner dans cette aventure ? Rien de moins que GPT-4.

IA + quantique, un cocktail très prometteur!

Au début, GPT-4 a haussé un sourcil numérique, ‘Le quantique, ce n’est pas pour jouer’, qu’il murmurait. Mais après un peu de persuasion, et la promesse que je ne tenterais pas de déchiffrer les secrets de l’univers avant 17h00, il s’est montré coopératif.

Là où je m’attendais à une ascension du Mont Everest de la programmation, j’ai découvert une marche plutôt plaisante, presque facile. Ça m’a rappelé mes débuts en Basic sur mon Oric Atmos, où chaque ligne de code qui fonctionnait était une petite victoire, une découverte émerveillée de ce que la machine pouvait faire. C’était dans les années 80, l’époque où le quantique n’était qu’une étoile inconnue dans le ciel de l’informatique domestique. Et aujourd’hui, me voici à transcrire des lignes de code quantique avec presque la même excitation qu’à mes débuts.

Mais sans plus tarder, voici comment j’ai procédé, d’abord depuis le simulateur :

  1. Je me suis connecté à IBM Quantum Experience et allez à IBM Quantum Lab (c’est très simple, et gratuit).
  2. J’ai créé un nouveau carnet de notes.
  3. Dans une nouvelle cellule, j’ai inséré ce code, élaboré par GPT-4 :
from qiskit import QuantumCircuit, execute, Aer

# Création d'un circuit quantique avec 1 qubit
qc = QuantumCircuit(1, 1)

# Appliquer la porte de Hadamard
qc.h(0)

# Mesurer le qubit
qc.measure(0, 0)

# Exécuter le circuit sur le simulateur quantique
simulator = Aer.get_backend('qasm_simulator')
job = execute(qc, simulator, shots=1)
result = job.result()

# Obtenir les résultats
counts = result.get_counts(qc)
print("Le résultat est : ", counts)

4. Puis enfin, j’ai exécuté la cellule et découvert le résultat de mon lancer de pièce quantique!

Le résultat aurait pu être soit {‘0’: 1}, soit {‘1’: 1}, représentant “Face” ou “Pile” respectivement.

C’est Face!

Le résultat est {‘0’: 1}. C’est donc Face!

Pour exécuter ce programme sur un véritable ordinateur quantique, vous devez vous connecter sur IBM Quantum Experience et obtenir une clé API. Ensuite, vous pouvez utiliser la clé API pour vous connecter à l’ordinateur quantique via Qiskit depuis le terminal de votre ordinateur. Voici comment vous pouvez le faire :

  1. Ouvrez un éditeur de texte ou environnement de développement intégré (IDE) et collez ce code Python dans un nouveau fichier :
from qiskit import QuantumCircuit, execute, IBMQ

# Chargement des comptes IBM Q
IBMQ.load_account()

# Création d'un circuit quantique avec 1 qubit
qc = QuantumCircuit(1, 1)

# Appliquer la porte de Hadamard
qc.h(0)

# Mesurer le qubit
qc.measure(0, 0)

# Sélectionner le fournisseur et choisir un ordinateur quantique
provider = IBMQ.get_provider(hub='ibm-q')
quantum_computer = provider.get_backend('ibmq_16_melbourne')

# Exécuter le circuit sur l'ordinateur quantique
job = execute(qc, backend=quantum_computer, shots=1)
result = job.result()

# Obtenir les résultats
counts = result.get_counts(qc)
print("Le résultat est : ", counts)

2. Enregistrez le fichier avec une extension .py, par exemple “quantum_flip.py”.

3. Ouvrez votre terminal ou ligne de commande.

4. Naviguez jusqu’au répertoire où vous avez enregistré “quantum_flip.py”.

5. Exécutez la commande python quantum_flip.py.

6. Vous devriez obtenir un résultat, Pile ou Face, comme avec le simulateur.

Avant de faire cela, assurez-vous que vous avez Python et les packages nécessaires (dans ce cas, Qiskit) installés sur votre machine. Si ce n’est pas le cas, vous devrez d’abord les installer.

pip install qiskit

Qiskit est une bibliothèque Python open source créée par IBM pour le développement et l’exécution de programmes sur leurs ordinateurs quantiques disponibles via le cloud. Elle est utilisée pour créer, manipuler et optimiser des circuits quantiques et pour exécuter des expériences avec ces circuits sur des ordinateurs quantiques et des simulateurs.

N’oubliez pas que l’exécution de programmes sur de véritables ordinateurs quantiques peut prendre du temps en raison de files d’attente.

Conclusion : Le début d’une aventure qui défie la réalité

Se promener dans cet univers quantique pour créer ce mini-jeu, c’était comme embarquer pour une aventure dans le pays du lapin blanc, aussi simple qu’elle puisse paraître. J’ai découvert un univers scientifique où l’ange du bizarre est roi, et où les chats, défiant toute logique, peuvent être à la fois morts et vivants sans pour autant être des figurants d’un film de zombies. C’est un peu comme Alice au pays des merveilles, mais avec plus de calculs et moins de thé !

Grâce à mon fidèle acolyte GPT-4, j’ai pu faire cette petite expérimentation en quelques lignes de code et naviguer sur les eaux profondes de l’informatique quantique. Et quelle aventure cela a été !

Maintenant que vous avez vu comment j’ai créé Quantum Coin Flip, pourquoi ne pas essayer vous-même ? L’informatique quantique peut sembler intimidante, mais avec un peu de curiosité et une intelligence artificielle comme complice, vous découvrirez un monde d’exploration sans fin.

Alors, Pile ou Face ?

Bonne chance et amusez-vous bien !

--

--

Philippe Nadeau

Directeur général du DigiHub, un pôle en convergence technologique déployé à Shawinigan | e/acc