Circuits
En informatique, les circuits sont des modèles de calcul dans lesquels l'information est transportée par des fils à travers un réseau de portes, qui représentent des opérations sur l'information transportée par les fils. Les circuits quantiques sont un modèle de calcul spécifique basé sur ce concept plus général.
Bien que le mot « circuit » désigne souvent un chemin circulaire, les chemins circulaires ne sont pas autorisés dans les modèles de circuits de calcul les plus couramment étudiés. Autrement dit, on considère généralement des circuits acycliques lorsqu'on pense aux circuits comme modèles de calcul. Les circuits quantiques suivent ce schéma ; un circuit quantique représente une séquence finie d'opérations qui ne peut pas contenir de boucles de rétroaction.
Circuits booléens
Voici un exemple de circuit booléen (classique), où les fils transportent des valeurs binaires et les portes représentent des opérations de logique booléenne :
Le flux d'information le long des fils va de gauche à droite : les fils sur le côté gauche de la figure étiquetés et sont des bits d'entrée, qui peuvent chacun être définis à n'importe quelle valeur binaire de notre choix, et le fil sur le côté droit est la sortie. Les fils intermédiaires prennent les valeurs déterminées par les portes, qui sont évaluées de gauche à droite.
Les portes sont des portes ET (étiquetées ), des portes OU (étiquetées ) et des portes NON (étiquetées ). Les fonctions calculées par ces portes sont probablement familières à de nombreux lecteurs, mais les voici représentées par des tables de valeurs :
Les deux petits cercles pleins sur les fils juste à droite des noms et représentent des opérations de fan-out (duplication), qui créent simplement une copie de la valeur transportée sur le fil sur lequel ils apparaissent, permettant à cette valeur d'être transmise en entrée à plusieurs portes. Les opérations de fan-out ne sont pas toujours considérées comme des portes dans le cadre classique ; parfois elles sont traitées comme si elles étaient « gratuites » en quelque sorte. Cependant, lorsque des circuits booléens sont convertis en circuits quantiques équivalents, nous devons classer explicitement les opérations de fan-out comme des portes pour les gérer et les prendre en compte correctement.
Voici le même circuit illustré dans un style plus courant en génie électrique, qui utilise des symboles conventionnels pour les portes ET, OU et NON :
Nous n'utiliserons plus ce style ni ces symboles de portes particuliers, mais nous utiliserons différents symboles pour représenter les portes dans les circuits quantiques, que nous expliquerons au fur et à mesure que nous les rencontrons.
Le circuit particulier dans cet exemple calcule le OU exclusif (ou XOR en abrégé), qui est noté par le symbole :
Dans le diagramme suivant, nous considérons un seul choix pour les entrées : et Chaque fil est étiqueté par la valeur qu'il transporte pour que tu puisses suivre les opérations. La valeur de sortie est dans ce cas, ce qui est la valeur correcte pour le XOR :
Les trois autres paramètres d'entrée possibles peuvent être vérifiés de manière similaire.
Autres types de circuits
Comme suggéré ci-dessus, la notion de circuit en informatique est très générale. Par exemple, des circuits dont les fils transportent des valeurs autres que et sont parfois analysés, tout comme des portes représentant différents choix d'opérations.
Dans les circuits arithmétiques, par exemple, les fils peuvent transporter des valeurs entières tandis que les portes représentent des opérations arithmétiques, telles que l'addition et la multiplication. La figure suivante représente un circuit arithmétique qui prend deux valeurs d'entrée variables ( et ) ainsi qu'une troisième entrée définie à la valeur Les valeurs transportées par les fils, en fonction des valeurs et sont indiquées dans la figure.
On peut également considérer des circuits qui incorporent de l'aléatoire, comme ceux où les portes représentent des opérations probabilistes.
Circuits quantiques
Dans le modèle de circuit quantique, les fils représentent des qubits et les portes représentent des opérations sur ces qubits. Nous nous concentrerons pour l'instant sur les opérations que nous avons rencontrées jusqu'à présent, à savoir les opérations unitaires et les mesures dans la base standard. À mesure que nous apprendrons d'autres types d'opérations et de mesures quantiques, nous pourrons enrichir notre modèle en conséquence.
Voici un exemple simple de circuit quantique :
Dans ce circuit, nous avons un seul qubit nommé représenté par la ligne horizontale, et une séquence de portes représentant des opérations unitaires sur ce qubit. Tout comme dans les exemples ci-dessus, le flux d'information va de gauche à droite — donc la première opération effectuée est une opération de Hadamard, la deuxième est une opération , la troisième est une autre opération de Hadamard, et la dernière opération est une opération . Appliquer tout le circuit applique donc la composition de ces opérations, au qubit
Parfois, on peut souhaiter indiquer explicitement les états d'entrée ou de sortie des circuits. Par exemple, si nous appliquons l'opération à l'état nous obtenons l'état Cela peut être indiqué comme suit :
Les circuits quantiques commencent souvent avec tous les qubits initialisés à comme dans ce cas, mais il y a aussi des situations où les qubits d'entrée sont initialement définis à des états différents. Voici un autre exemple de circuit quantique, cette fois avec deux qubits :
Comme toujours, la porte étiquetée désigne une opération de Hadamard, tandis que la deuxième porte est une opération NOT contrôlé : le cercle plein représente le qubit de contrôle et le cercle ressemblant au symbole désigne le qubit cible.
Avant d'examiner ce circuit plus en détail et d'expliquer ce qu'il fait, il est impératif de clarifier d'abord comment les qubits sont ordonnés dans les circuits quantiques. Cela est lié à la convention que Qiskit utilise pour nommer et ordonner les systèmes, mentionnée brièvement dans la leçon précédente.
Dans Qiskit, le qubit le plus en haut dans un diagramme de circuit a l'indice et correspond à la position la plus à droite dans un tuple de qubits (ou dans une chaîne, un produit cartésien ou un produit tensoriel correspondant à ce tuple), le qubit deuxième en partant du haut a l'indice et correspond à la position deuxième en partant de la droite dans un tuple, et ainsi de suite. Le qubit le plus en bas, qui a l'indice le plus élevé, correspond donc à la position la plus à gauche dans un tuple. En particulier, les noms par défaut de Qiskit pour les qubits dans un circuit à qubits sont représentés par le -uplet avec étant le qubit en haut et en bas dans les diagrammes de circuits quantiques.
Remarque : il s'agit d'une inversion d'une convention plus courante pour ordonner les qubits dans les circuits, et c'est une source fréquente de confusion. Plus d'informations sur cette convention d'ordonnancement peuvent être trouvées sur la page de documentation Ordonnancement des bits dans Qiskit.
Bien que nous déviions parfois des noms par défaut spécifiques utilisés pour les qubits par Qiskit, nous suivrons toujours la convention d'ordonnancement décrite ci-dessus lors de l'interprétation des diagrammes de circuits tout au long de ce cours. Ainsi, notre interprétation du circuit ci-dessus est qu'il décrit une opération sur une paire de qubits Si l'entrée du circuit est un état quantique par exemple, cela signifie que le qubit inférieur commence dans l'état et que le qubit supérieur commence dans l'état
Pour comprendre ce que fait le circuit, on peut parcourir ses opérations de gauche à droite.
-
La première opération est une opération de Hadamard sur :
Lorsqu'on applique une porte à un seul qubit comme cela, rien ne se passe sur les autres qubits (qui ne sont qu'un seul autre qubit dans ce cas). Rien qui se passe est équivalent à l'opération identité. Le rectangle pointillé dans la figure ci-dessus représente donc cette opération :
Remarque : la matrice identité est à gauche du produit tensoriel et est à droite, ce qui est cohérent avec la convention d'ordonnancement de Qiskit.
-
La deuxième opération est l'opération NOT contrôlé, où est le contrôle et est la cible :
L'action de la porte NOT contrôlé sur les états de la base standard est la suivante :
Étant donné que nous ordonnons les qubits comme avec en bas et en haut de notre circuit, la représentation matricielle de la porte NOT contrôlé est la suivante :
L'opération unitaire implémentée par tout le circuit, à laquelle nous donnons le nom est la composition des opérations :
En particulier, rappelant notre notation pour les états de Bell,
on trouve que
Ce circuit nous offre donc un moyen de créer l'état si nous l'exécutons sur deux qubits initialisés à Plus généralement, il nous fournit un moyen de convertir la base standard en base de Bell. (Remarque : bien que ce ne soit pas important pour cet exemple, le facteur de phase sur le dernier état, pourrait être éliminé si on le souhaitait en faisant une petite addition au circuit. Par exemple, on pourrait ajouter une porte contrôlé au début, qui est similaire à une porte NOT contrôlé sauf qu'une opération est appliquée au qubit cible plutôt qu'une opération NOT quand le contrôle est à Alternativement, on pourrait ajouter une porte d'échange à la fin. L'un ou l'autre choix élimine le signe moins sans affecter l'action du circuit sur les trois autres états de la base standard.)
En général, les circuits quantiques peuvent contenir n'importe quel nombre de fils de qubits. On peut également inclure des fils de bits classiques, indiqués par des doubles lignes, comme dans cet exemple :
Ici nous avons une porte de Hadamard et une porte NOT contrôlé sur deux qubits et tout comme dans l'exemple précédent. Nous avons également deux bits classiques, et ainsi que deux portes de mesure. Les portes de mesure représentent des mesures dans la base standard : les qubits sont changés en leurs états post-mesure, tandis que les résultats de mesure sont écrits sur les bits classiques vers lesquels pointent les flèches.
Il est souvent pratique de représenter une mesure comme une porte qui prend un qubit en entrée et produit un bit classique en sortie (par opposition à la sortie du qubit dans son état post-mesure et à l'écriture du résultat sur un bit classique séparé). Cela signifie que le qubit mesuré a été abandonné et peut être ignoré en toute sécurité par la suite, son état ayant changé en ou selon le résultat de la mesure.
Par exemple, le diagramme de circuit suivant représente le même processus que celui du diagramme précédent, mais où l'on ne tient pas compte de et après les avoir mesurés :
Au fil du cours, nous verrons d'autres exemples de circuits quantiques, généralement plus compliqués que les exemples simples ci-dessus. Voici quelques exemples de symboles utilisés pour désigner les portes qui apparaissent couramment dans les diagrammes de circuits :
-
Les portes à un qubit sont généralement représentées par des carrés avec une lettre indiquant l'opération, comme ceci :
Les portes NOT (ou de manière équivalente, les portes ) sont aussi parfois représentées par un cercle autour d'un signe plus :
-
Les portes d'échange sont représentées comme suit :
-
Les portes contrôlées, c'est-à-dire les portes qui décrivent des opérations unitaires contrôlées, sont représentées par un cercle plein (indiquant le contrôle) relié par une ligne verticale à l'opération contrôlée. Par exemple, les portes NOT contrôlé, NOT contrôlé-contrôlé (ou Toffoli) et échange contrôlé (Fredkin) sont représentées ainsi :
-
Les opérations unitaires arbitraires sur plusieurs qubits peuvent être considérées comme des portes. Elles sont représentées par des rectangles étiquetés par le nom de l'opération unitaire. Par exemple, voici une représentation d'une opération unitaire (non spécifiée) comme une porte, ainsi qu'une version contrôlée de cette porte :