Correspondance
Regarde la vidéo sur la correspondance présentée par Olivia Lanes, ou ouvre la vidéo dans une fenêtre séparée sur YouTube.
Introduction
Dans cette leçon, nous allons nous concentrer sur la première étape — et souvent la plus difficile — de la définition d'un programme quantique : la correspondance d'un problème à exécuter sur un ordinateur quantique. Cette étape couvre la façon dont un utilisateur part d'un problème informatique et le traduit en quelque chose qui peut être résolu sur un ordinateur quantique.
Dans les leçons 2 et 3 de ce cours, nous avons mentionné que l'étape de correspondance est la première des quatre étapes du cadre Qiskit patterns. D'après ces leçons, tu te souviens peut-être que l'objectif de la correspondance est de traduire ou de réécrire un problème informatique sous la forme d'une fonction de coût ou d'une valeur d'espérance que l'on peut évaluer à l'aide d'un ordinateur quantique.
Dans la leçon 3, nous avons discuté d'un exemple concret avec le Max-Cut, un problème computationnellement difficile mais très courant en optimisation combinatoire. Dans cet exemple, nous avons suivi plusieurs étapes pour traduire le problème de graphe initial en un problème pouvant être résolu sur un ordinateur quantique. Nous avons transformé le problème consistant à trouver le nombre maximal de coupes dans le graphe en une fonction de coût, réécrit cette fonction de coût sous forme de Hamiltonien, puis préparé un état quantique d'essai dont l'état fondamental correspondait à la coupe maximale. Enfin, nous avons construit un circuit quantique représentant l'état quantique d'essai qui nous intéressait, puis ajouté les portes spécifiques pour permettre à l'état d'évoluer dans le temps. Cette séquence d'étapes faisait entièrement partie de la correspondance. Bien que les étapes exactes fussent propres au problème Max-Cut, la même procédure générale peut être appliquée à de nombreuses autres applications, comme la chimie quantique et les simulations quantiques.
La correspondance peut être difficile. Il n'existe pas de stratégie universelle pour chaque problème, ce qui peut être intimidant. Dans cette leçon, nous allons examiner quelques considérations générales sur la correspondance, puis plonger dans des exemples représentatifs pour illustrer les différentes façons de mettre un problème en correspondance avec un ordinateur quantique.
Considérations générales
Bien que la stratégie exacte utilisée pour mettre un problème en correspondance avec un ordinateur quantique dépende du problème en question, ces stratégies accomplissent généralement quelques éléments essentiels.
Premièrement, tu pourrais avoir besoin de simplifier le problème pour le rendre faisable. Ce n'est pas propre au quantique — toutes les disciplines scientifiques utilisent des modèles simplifiés pour étudier les phénomènes qui les intéressent, tout en ignorant les détails non pertinents. En physique, il existe une expression célèbre qui pousse ce principe à l'extrême : « suppose une vache sphérique ». Il est souvent trop difficile de décrire un système exactement tel qu'il apparaît, mais on peut plutôt faire des simplifications raisonnables qui peuvent quand même mener à des solutions utiles. Quelques exemples de la façon dont nous pourrions procéder en informatique quantique : limiter la taille ou la profondeur du circuit en choisissant un ansatz adapté au matériel, tronquer des évolutions temporelles complexes, ou négliger les termes du Hamiltonien qui contribuent peu à l'énergie finale d'un état quantique.
Deuxièmement, la correspondance implique d'écrire le problème de manière à ce qu'un ordinateur quantique puisse le comprendre. Cela implique souvent de se poser ces trois questions :
- Que représenteront nos qubits dans notre modèle ?
- Notre problème est-il continu ? Puisque les ordinateurs quantiques sont numériques, si le problème est continu, nous devrons trouver un moyen de le discrétiser.
- Enfin, la topologie du problème correspond-elle à la topologie du matériel ? Si ce n'est pas le cas, nous pourrions avoir besoin d'astuces pour le faire fonctionner.
Abordons la première question, qui est au cœur de nombreuses difficultés liées à la compréhension de la correspondance : que peut représenter un qubit ?
Les qubits peuvent être utilisés pour représenter beaucoup de choses. La première, et peut-être la plus simple, est un nœud sur un graphe. Les graphes sont utilisés pour montrer la connectivité dans de nombreux types différents de problèmes mathématiques, et les nœuds sont un élément fondamental représentant un point ou une entité au sein d'un réseau. Selon ce que représente l'ensemble du réseau, cela pourrait être une ville, une personne, ou un ferromagnet dans un réseau cristallin.
Les qubits peuvent également être utilisés pour représenter des bosons et des fermions, bien que je te mette en garde ici : un seul qubit ne correspond pas exactement à un boson ou à un fermion — c'est un peu plus compliqué que ça, comme nous en discuterons plus loin dans la leçon.
Voici maintenant des exemples un peu plus compliqués. Pour ces modèles, il n'est plus pertinent de parler en termes de qubits individuels ; à la place, nous avons besoin de groupes de qubits pour constituer quelque chose de physique. Par exemple, un groupe de qubits, ici représenté sur une topologie hexagonale lourde, peut être utilisé pour représenter les emplacements géométriques des acides aminés ; des chaînes polymères. Un autre exemple est la simulation de la diffusion des hadrons dans des modèles de physique des hautes énergies, qui peut être réalisée en simulant l'évolution temporelle d'un paquet d'ondes hadronique. Dans ce cas, un registre de qubits peut être utilisé pour encoder différents états d'un champ quantique : l'état du vide de ce champ, ou un paquet d'ondes qui se propage au-dessus de ce vide.
Mais à ce stade, nous avons parlé de manière suffisamment abstraite du défi qui nous attend. Examinons ces exemples en détail.
Exemples de correspondance
Max-Cut
Commençons par notre premier exemple. L'un des problèmes de correspondance les plus directs est celui que nous avons déjà couvert en profondeur : l'exemple du Max-Cut. Dans ce problème, la correspondance était assez simple car un qubit était équivalent à un nœud sur notre graphe.
Rappelle-toi que, pour mettre en correspondance le problème Max-Cut, nous avons exprimé la fonction de coût sous forme de Hamiltonien en utilisant la formulation QUBO. Une fonction de coût Hamiltonienne est une fonction qui encode la solution optimale du problème dans l'état fondamental du Hamiltonien. Pour construire le Hamiltonien de coût, nous avons utilisé la classe SparsePauliOp dans Qiskit pour spécifier la connectivité de notre graphe, et l'étape de correspondance vers les opérateurs quantiques était terminée. Le circuit quantique était simplement l'ansatz QAOA. Pour une remise à niveau, consulte la leçon QAOA à l'échelle utilitaire, où nous détaillons tout cela bien plus en profondeur.
Dans cette leçon, même dans l'exemple à 100 qubits à l'échelle utilitaire, la connectivité du graphe correspondait déjà à la topologie de notre matériel supraconducteur. Nous n'avions donc pas à nous préoccuper de gérer des topologies différentes. Mais ce n'est pas toujours le cas. Si nous avions un graphe plus compliqué ou plus densément connecté que les exemples que nous avons mis en avant jusqu'ici, nous aurions besoin d'implémenter une série de portes SWAP pour modifier la connectivité effective du matériel. Cela est géré à la deuxième étape de Qiskit patterns, la transpilation, mais doit être gardé à l'esprit même dès l'étape de correspondance.
Repliement des protéines
Explorons ensuite un exemple modélisé dans l'article intitulé « Resource-efficient quantum algorithm for protein folding », rédigé par IBM® et des collaborateurs de l'Université de Nouvelle-Galles du Sud.
Un peu de biochimie comme contexte : les protéines sont des macromolécules composées de longues chaînes d'acides aminés. Ces chaînes se replient en structures complexes qui remplissent une grande variété de fonctions biologiques. Déterminer la structure d'une protéine dans l'espace tridimensionnel, et comprendre les relations entre structure et fonction, figurent parmi les problèmes les plus difficiles de la biochimie aujourd'hui. Les protéines se replient en structures utiles grâce aux interactions entre les acides aminés. Au fur et à mesure qu'une structure se tord et se replie, des acides aminés qui sont éloignés les uns des autres le long de la chaîne peuvent se retrouver côte à côte et interagir fortement.
Pour modéliser cela sur un ordinateur quantique, nous avons besoin d'un Hamiltonien décrivant toutes ces interactions entre les acides aminés. Ensuite, nous pouvons prédire la structure finale en trouvant l'état qui minimisera l'énergie de notre Hamiltonien. Ici, nous allons nous concentrer sur la façon dont les chaînes d'acides aminés peuvent être modélisées sur un ordinateur quantique et comment nous pouvons obtenir les distances inter-acides aminés pour le calcul des énergies d'interaction. Avec cela, nous aurons rassemblé toutes les contributions nécessaires au Hamiltonien pour le simuler sur un ordinateur quantique.
Dans les vraies protéines, les acides aminés peuvent occuper un continuum de positions possibles. Cependant, nous allons utiliser une simplification et les contraindre à l'aide d'un modèle en réseau, où chaque acide aminé occupe un point sur une grille. Ici, les auteurs ont utilisé un réseau tétraédrique. Remarque rapide : ici, nous encodons la direction des arêtes, et non les nœuds eux-mêmes comme dans le problème Max-Cut. Chaque qubit représente un chemin possible d'un seul pas le long de la grille tétraédrique. Note que les sites adjacents ont été étiquetés A ou B en raison de leurs orientations différentes dans le réseau.
La chaîne protéique est représentée comme une série de virages ou de directions sur ce réseau. Chaque virage entre les acides aminés peut prendre l'une des quatre directions, correspondant aux arêtes du tétraèdre. Ces quatre virages possibles sont encodés en utilisant quatre qubits dans les états 0001, 0010, 0100 ou 1000.

Regardons un exemple dans la figure ci-dessus. Plaçons notre premier acide aminé sur le point étiqueté « B » encerclé en rouge dans notre réseau tétraédrique. La direction du premier acide aminé vers le deuxième est arbitraire car le système peut toujours être tourné pour faire pointer cette arête dans n'importe quelle direction souhaitée. Ainsi, nous pouvons placer notre deuxième acide aminé sur le point en dessous du premier, étiqueté « A ». Ce n'est pas aussi facile à voir, mais le chemin du deuxième au troisième est également arbitraire. Les trois choix résulteraient en deux arêtes avec un angle d'environ 109,5 degrés entre elles. Choisir cette deuxième arête détermine simplement l'orientation de notre protéine dans l'espace. Ainsi, sans perte de généralité, nous pouvons choisir les deux premiers virages comme étant simplement 0001 et 0010.
Avec ces simplifications, la configuration de la chaîne d'acides aminés est donnée par cette expression :
Jusqu'ici, nous avons mis en correspondance les arêtes du tétraèdre avec des qubits, et notre Circuit quantique sera un ansatz. Nous devons maintenant réfléchir à la façon d'encoder l'énergie du problème dans un Hamiltonien, de sorte que son état fondamental nous donne le modèle de repliement optimal.
Pour toute configuration donnée, il y aura une énergie associée due aux interactions entre les acides aminés. Ces interactions sont les plus fortes lorsque les deux acides aminés sont proches l'un de l'autre. De toute évidence, les acides aminés adjacents dans le squelette de la chaîne interagiront toujours entre eux. Mais parce que la protéine peut se tordre et se replier, d'autres paires d'acides aminés peuvent également interagir. Les acides aminés 10 et 20 pourraient par exemple se retrouver sur des sites adjacents après le repliement de la protéine. Nous avons donc besoin d'une formule pour décrire la distance entre les acides aminés et en utilisant l'information encodée sur les qubits de configuration. De cette façon, nous pouvons utiliser leur distance de séparation pour déterminer l'intensité de leur interaction.
D'abord, introduisons une fonction qui indique si une arête est utilisée ou non pour le virage au niveau de l'acide aminé . Ici, peut prendre l'une des quatre directions possibles. D'après la configuration avec laquelle nous avons débuté, nous pouvons écrire ces fonctions :