Architectures matérielles & Modèles alternatifs de calcul quantique
Révision Expert : technologies de qubits (supraconducteurs, ions piégés, photons, atomes neutres, spins) et modèles de calcul (par mesure, adiabatique, topologique) — sans prérequis mathématiques, avec du code Q# et Qiskit.
Architectures matérielles — sur quoi tourne vraiment un qubit ?
Tu écris H(q) en Q# ou qc.h(0) en Qiskit sans savoir physiquement ce qu’est le qubit. Pourtant plusieurs technologies très différentes se disputent l’avenir, et toutes doivent réussir le même cahier des charges. Aucune ne gagne sur tous les tableaux.
Les 3 propriétés à arbitrer
- Cohérence — combien de temps le qubit garde son état avant que le bruit ne l’efface (les temps
T1/T2). Trop court = le calcul n’a pas le temps de se terminer. - Connectivité — quels qubits peuvent interagir directement. Si deux qubits ne sont pas « câblés » entre eux, il faut insérer des
SWAP(routage) pour les rapprocher. - Fidélité — la précision d’une porte ou d’une mesure (ex. 99,9 % par porte). Chaque petite erreur s’accumule le long du circuit.
S’y ajoutent la vitesse de porte et la scalabilité (savoir passer à des milliers de qubits sans tout dégrader).
Les grandes plateformes
| Plateforme | Porteur du qubit | Connectivité | Vitesse / Cohérence | Acteurs |
|---|---|---|---|---|
| Supraconducteurs | circuit refroidi à ~15 mK (« atome artificiel ») | voisins sur grille 2D (faible) | portes ns (rapides) / cohérence µs (courte) | IBM, Google |
| Ions piégés | ion atomique dans le vide, piloté par laser | all-to-all (forte) | portes µs–ms (lentes) / cohérence ~s (longue) | IonQ, Quantinuum |
| Photoniques | photon (lumière) | via mesure / réseau optique | portes probabilistes / pertes de photons | PsiQuantum, Xanadu |
| Atomes neutres | atome neutre en pinces optiques (Rydberg) | reconfigurable | intermédiaire / intermédiaire | QuEra, Pasqal |
| Spin en silicium | spin d’un électron dans une boîte quantique | voisins | rapide / réutilise les usines CMOS | Intel |
Intuition. Un supraconducteur est un minuscule circuit qui se comporte comme un atome : rapide mais fragile et bavard seulement avec ses voisins. Un ion piégé est un vrai atome immobilisé dans le vide : lent à manipuler mais très stable et capable de « parler » à n’importe quel autre. Le photon voyage parfaitement mais refuse d’interagir avec ses semblables — d’où des portes probabilistes.
Pourquoi ça touche ton code
- La connectivité de la puce (sa coupling map) décide du nombre de
SWAPajoutés à la transpilation. - Le jeu de portes natives change d’une techno à l’autre → ton circuit abstrait doit être réécrit (basis gates).
- Q# est agnostique du matériel : le même source est compilé (QIR) vers différents backends.
# La connectivité matérielle décide s'il faut des SWAP.
from qiskit import QuantumCircuit, transpile
from qiskit.transpiler import CouplingMap
# « Supraconducteur » : ligne 0-1-2, donc 0 et 2 NE sont PAS voisins
supra = CouplingMap([[0, 1], [1, 2]])
# « Ions piégés » : all-to-all, tout le monde est voisin
ions = CouplingMap([[0,1],[0,2],[1,2],[1,0],[2,0],[2,1]])
qc = QuantumCircuit(3)
qc.cx(0, 2) # 0 et 2 doivent interagir
print(transpile(qc, coupling_map=supra, basis_gates=['cx','u']).count_ops()) # des SWAP ajoutés
print(transpile(qc, coupling_map=ions, basis_gates=['cx','u']).count_ops()) # aucun SWAP
// Q# est AGNOSTIQUE du matériel : le même source est compilé (QIR)
// vers IonQ, Quantinuum, etc. — c'est le backend qui mappe H/CNOT
// sur les portes natives et la connectivité réelle de la puce.
operation Bell() : (Result, Result) {
use (a, b) = (Qubit(), Qubit());
H(a); // l'auteur ignore la techno sous-jacente
CNOT(a, b); // sur ions : direct ; sur supra : peut coûter des SWAP
return (MResetZ(a), MResetZ(b));
}
⚠️ « Plus de qubits » ≠ « plus puissant ». Une puce de 1000 qubits bruités, mal connectés et peu fidèles peut être inférieure à 30 qubits all-to-all très fidèles. Compare toujours fidélité × connectivité × cohérence, jamais le seul compte de qubits.
Modèles alternatifs de calcul quantique
Depuis le début, tu programmes en modèle par circuit : une suite de portes appliquées dans le temps. Mais ce n’est qu’un modèle parmi plusieurs. Les autres calculent la même chose — la même puissance — mais autrement, et certains collent bien mieux à certains matériels.
| Modèle | Principe / ressource | « Programmer » = | Matériel naturel | Universel ? |
|---|---|---|---|---|
| Par circuit (référence) | suite de portes unitaires | choisir l’ordre des portes | supraconducteurs, ions | oui |
| Par mesure (one-way) | grand état intriqué (cluster state) | mesurer dans des bases adaptatives | photonique | oui |
| Adiabatique / recuit | état fondamental d’un Hamiltonien | encoder le problème en « énergie » | recuit (D-Wave) | oui (théorique) ; D-Wave = restreint |
| Topologique | anyons, information non-locale | tresser les anyons | Majorana (Microsoft) | oui (visé) |
Calcul par mesure (one-way / MBQC)
On prépare d’abord un grand état intriqué en forme de grille — le cluster state (ou état graphe). Ici l’intrication EST la ressource. On calcule ensuite en mesurant les qubits un par un, dans des bases choisies, où la base de chaque mesure dépend des résultats précédents (feed-forward, adaptatif).
Analogie. Au lieu d’un programme d’opérations, on prépare un échafaudage richement connecté, puis on « sculpte » la réponse en mesurant. Idéal pour la photonique (les portes à 2 qubits y sont difficiles, mais la mesure est facile).
Adiabatique & recuit quantique
On fabrique un « paysage d’énergie » (un Hamiltonien) dont le point le plus bas (l’état fondamental) est exactement la solution du problème. On démarre dans le creux facile d’un Hamiltonien simple, puis on déforme le paysage lentement (« adiabatiquement ») : le système reste au fond et finit dans la réponse.
Analogie. Une bille se loge dans la vallée la plus basse si on incline le relief assez doucement pour qu’elle ne soit jamais éjectée.
Calcul topologique
On stocke l’information de façon non-locale dans des quasi-particules exotiques (les anyons) et on calcule en les tressant (en les déplaçant les unes autour des autres). Comme l’information est inscrite dans la « forme du nœud », un bruit local ne peut pas la défaire : protection contre les erreurs intrinsèque. C’est le pari de Microsoft (qubits de Majorana), encore largement expérimental.
# Ressource de départ du calcul par mesure : un « état graphe »
# (cluster state). On intrique des voisins avec des CZ ; ensuite
# on CALCULE en mesurant les qubits un à un (bases adaptatives).
from qiskit import QuantumCircuit
g = QuantumCircuit(4)
g.h(range(4)) # tous en superposition
g.cz(0, 1); g.cz(1, 2); g.cz(2, 3) # arêtes du graphe (intrication)
# Étape suivante : mesurer 0,1,2,3 dans des bases choisies.
// Même un état-ressource « par mesure » se prépare avec des portes
// dans un simulateur : H partout, puis un CZ sur chaque arête.
operation ClusterState(qs : Qubit[]) : Unit {
ApplyToEach(H, qs); // superposition
for i in 0 .. Length(qs) - 2 {
CZ(qs[i], qs[i + 1]); // arête entre voisins
}
// Le « calcul » consisterait ensuite à mesurer adaptativement.
}
⚠️ Deux pièges. (1) Les modèles alternatifs ne sont pas plus puissants : même classe
BQP, à un surcoût polynomial près. (2) Le recuit commercial (D-Wave) n’est ni prouvé universel ni prouvé plus rapide que le classique sur l’optimisation générale — c’est une heuristique, à ne pas confondre avec le calcul adiabatique universel (théorique).