«Je pense que je peux dire sans risque que personne ne comprend la mécanique quantique», Richard Feynman
Le sujet de l'informatique quantique a toujours attiré les rédacteurs techniques et les journalistes. Son potentiel informatique et sa complexité lui ont donné une sorte de halo mystique. Trop souvent, les articles thématiques et les infographies décrivent en détail toutes sortes de perspectives pour cette industrie, tout en abordant à peine les questions de son application pratique: cela peut induire en erreur un lecteur pas trop prudent.
Dans les articles de vulgarisation scientifique, les descriptions des systèmes quantiques sont omises et les déclarations comme:
Un bit régulier peut être égal à "1" ou "0", mais un qubit peut être simultanément égal à "1" et "0".Si vous êtes très chanceux (dont je ne suis pas sûr), ils vous diront que:
Le qubit est en superposition entre "1" et "0".Aucune de ces explications ne semble plausible, car nous essayons de formuler un phénomène de mécanique quantique à l'aide d'outils langagiers créés dans un monde très traditionnel. Pour expliquer clairement les principes de l'informatique quantique, il est nécessaire d'utiliser un autre langage - mathématique.
Dans ce guide, je parlerai des outils mathématiques nécessaires pour modéliser et comprendre les systèmes informatiques quantiques, et comment illustrer et appliquer la logique de l'informatique quantique. De plus, je vais donner un exemple d'algorithme quantique et dire quel est son avantage par rapport à un ordinateur traditionnel.
Je ferai de mon mieux pour parler de tout cela dans un langage compréhensible, mais j'espère que les lecteurs de cet article auront des idées de base sur l'algèbre linéaire et la logique numérique (l'algèbre linéaire est décrite
ici , la logique numérique est
ici ).
Pour commencer, passons en revue les principes de la logique numérique. Il est basé sur l'utilisation de circuits électriques pour les calculs. Pour rendre notre description plus abstraite, nous simplifions l'état du fil à «1» ou «0», ce qui correspondra aux états «on» ou «off». Après avoir construit des transistors dans une certaine séquence, nous allons créer les soi-disant éléments logiques qui prennent une ou plusieurs valeurs des signaux d'entrée et les convertissent en un signal de sortie basé sur certaines règles de la logique booléenne.
Éléments logiques communs et tables d'état
Sur la base de chaînes de ces éléments de base, vous pouvez créer des éléments plus complexes, et sur la base de chaînes d'éléments plus complexes, nous pouvons en fin de compte compter sur l'obtention d'un analogue du processeur central avec un haut degré d'abstraction.
Comme je l'ai mentionné plus tôt, nous avons besoin d'un moyen de cartographier mathématiquement la logique numérique. Tout d'abord, introduisons la logique mathématique traditionnelle. En utilisant l'algèbre linéaire, les bits classiques avec les valeurs "1" et "0" peuvent être représentés comme deux vecteurs de colonne:
où les nombres à gauche sont la
notation vectorielle
Dirac . En représentant nos bits de cette manière, nous pouvons modéliser des opérations logiques sur des bits en utilisant des transformations vectorielles. Remarque: malgré le fait que lorsque vous utilisez deux bits dans des éléments logiques, vous pouvez effectuer de nombreuses opérations («ET» (ET), «Non» (NON), «Exclure ou» (XOR), etc.), lorsque vous en utilisez un bits il est possible d'effectuer seulement quatre opérations: conversion d'identité, négation, calcul de la constante "0" et calcul de la constante "1". Pendant la conversion identique, le bit reste inchangé, lorsqu'il est inversé, la valeur du bit est inversée (de "0" à "1" ou de "1" à "0"), et le calcul de la constante "1" ou "0" met le bit à "1" ou "0" quelle que soit sa valeur précédente.
Sur la base de notre nouvelle représentation d'un bit, il est assez facile d'effectuer des opérations sur le bit correspondant en utilisant la transformation vectorielle:
Avant de poursuivre, examinons le concept de l'
informatique réversible , qui implique simplement que pour assurer la réversibilité d'une opération ou d'un élément logique, vous devez définir une liste de valeurs de signaux d'entrée en fonction des signaux de sortie et des noms des opérations utilisées. Ainsi, nous pouvons conclure que la transformation d'identité et la négation sont réversibles, mais l'opération de calcul des constantes «1» et «0» ne l'est pas. En raison de l'
uniformité de la mécanique quantique, les ordinateurs quantiques utilisent exclusivement des opérations réversibles, c'est pourquoi nous nous concentrerons sur elles. Ensuite, nous convertirons les éléments irréversibles en éléments réversibles pour nous assurer qu'ils peuvent être utilisés par un ordinateur quantique.
En utilisant le
produit tensoriel de bits individuels, de nombreux bits peuvent être représentés:
Maintenant que nous avons presque tous les concepts mathématiques nécessaires, nous allons passer à notre premier élément de logique quantique. Il s'agit de l'opérateur
CNOT , ou du «NOT» (NOT) contrôlé, qui est d'une grande importance dans l'informatique réversible et quantique. L'élément CNOT est appliqué à deux bits et renvoie deux bits. Le premier bit est affecté comme «contrôle», et le second - «contrôle». Si le bit de commande est mis à "1", le bit de commande change sa valeur; si le bit de commande est mis à "0", le bit de commande ne change pas.
Cet opérateur peut être représenté comme le vecteur de transformation suivant:
Pour démontrer tout ce que nous avons déjà traité, je vais vous montrer comment utiliser l'élément CNOT par rapport à plusieurs bits:
Nous résumons ce qui a déjà été dit: dans le premier exemple, nous décomposons | 10⟩ en parties de son produit tensoriel et utilisons la matrice CNOT pour obtenir un nouvel état correspondant du produit; puis nous la factorisons à | 11⟩ selon le tableau des valeurs CNOT donné précédemment.
Ainsi, nous nous sommes souvenus de toutes les règles mathématiques qui nous aideront à gérer les calculs traditionnels et les bits ordinaires, et enfin nous pouvons passer à l'informatique quantique et aux qubits modernes.
Si vous lisez jusqu'à cet endroit, alors j'ai une bonne nouvelle pour vous: les qubits peuvent facilement être exprimés mathématiquement. En général, si le bit classique (cbit) peut être réglé sur | 1⟩ ou | 0⟩, le qubit est simplement en superposition et peut être égal à | 0⟩ et | 1⟩ avant la mesure. Après la mesure, il s'effondre à | 0⟩ ou | 1⟩. En d'autres termes, un qubit peut être représenté comme une combinaison linéaire de | 0⟩ et | 1⟩ conformément à la formule ci-dessous:
où
a₀ et
a₁ représentent respectivement les amplitudes | 0⟩ et | 1⟩. Ils peuvent être considérés comme des «probabilités quantiques», qui représentent la probabilité qu'un qubit s'effondre dans l'un des états après sa mesure, car en mécanique quantique un objet en superposition s'effondre dans l'un des états après fixation. Développez cette expression et obtenez ce qui suit:
Pour simplifier mon explication, je vais utiliser cette notion même dans cet article.
Pour ce qubit, la probabilité d'effondrement à
a₀ après la mesure est |
a ₀ | ², et le risque d'effondrement en
a ₁ est égal à |
un ₁ | ². Par exemple, pour le qubit suivant:
le risque d'effondrement dans "1" est | 1 / √2 | ², ou ½, c'est-à-dire 50/50.
Puisque dans le système classique, toutes les probabilités de la somme doivent donner l'unité (pour une distribution de probabilité complète), nous pouvons conclure que les carrés des valeurs absolues des amplitudes | 0⟩ et | 1⟩ doivent totaliser un. Sur la base de ces informations, nous pouvons composer l'équation suivante:
Si vous connaissez la trigonométrie, vous remarquerez que cette équation correspond au théorème de Pythagore (a² + b² = c²), c'est-à-dire que nous pouvons représenter graphiquement les états possibles du qubit sous forme de points sur le cercle unitaire, à savoir:
Les opérateurs et éléments logiques sont appliqués aux qubits ainsi que dans le cas des bits classiques - basés sur la transformation matricielle. Tous les opérateurs matriciels réversibles dont nous nous sommes souvenus jusqu'à présent, en particulier CNOT, peuvent être utilisés pour travailler avec des qubits. De tels opérateurs matriciels permettent d'utiliser chacune des amplitudes d'un qubit sans le mesurer ni le réduire. Permettez-moi de vous donner un exemple d'utilisation de l'opérateur de négation pour qubit:
Avant de continuer, je rappelle que les amplitudes
a ₀ et
a ₁ sont en fait
des nombres complexes , de sorte que l'état qubit peut être affiché le plus précisément possible sur une sphère unitaire tridimensionnelle, également connue sous
le nom de
sphère Bloch :
Cependant, pour simplifier l'explication, nous nous limitons ici aux nombres réels.
Il semble que le moment soit venu de discuter de certains éléments logiques qui ont un sens exclusivement dans le contexte de l'informatique quantique.
L'un des opérateurs les plus importants est «l'élément Hadamard»: il prend un peu à l'état «0» ou «1» et le place dans la superposition correspondante avec 50% de chances de le réduire à «1» ou «0» après la mesure.
Notez qu'il y a un nombre négatif dans le coin inférieur droit de l'opérateur Hadamard. Cela est dû au fait que le résultat de l'utilisation de l'opérateur dépend de la valeur du signal d'entrée: - | 1⟩ ou | 0⟩, et donc le calcul est réversible.
Un autre point important lié à l'élément Hadamard est sa réversibilité, c'est-à-dire qu'il peut prendre un qubit dans la superposition correspondante et le convertir en | 0⟩ ou | 1⟩.
Ceci est très important car il nous permet de passer d'un état quantique sans déterminer l'état du qubit - et, par conséquent, sans l'effondrer. Ainsi, nous pouvons structurer l'informatique quantique sur la base d'un principe déterministe plutôt que probabiliste.
Les opérateurs quantiques contenant exclusivement des nombres réels sont l'opposé, nous pouvons donc présenter le résultat de l'application de l'opérateur à un qubit comme une transformation dans le cercle unitaire sous la forme d'une machine à états:
Ainsi, le qubit, dont l'état est illustré dans le diagramme ci-dessus, après application de l'opération Hadamard, est converti dans l'état indiqué par la flèche correspondante. De même, nous pouvons construire une autre machine à états qui illustrera la transformation d'un qubit en utilisant l'opérateur de négation, comme indiqué ci-dessus (également connu sous le nom d'opérateur de négation de Pauli, ou inversion de bits), comme indiqué ci-dessous:
Pour effectuer des opérations plus complexes avec notre qubit, vous pouvez utiliser une chaîne de nombreux opérateurs ou appliquer des éléments plusieurs fois. Voici un exemple de transformation sérielle basée sur la
représentation d'une chaîne quantique :
Autrement dit, si nous commençons par le bit | 0⟩, appliquons l'inversion de bit, puis l'opération Hadamard, puis une autre inversion de bit, et à nouveau l'opération Hadamard, après quoi l'inversion de bit finale, nous obtenons le vecteur sur le côté droit de la chaîne. En superposant plusieurs machines à états les unes sur les autres, nous pouvons commencer avec | 0⟩ et suivre les flèches colorées correspondant à chacune des transformations afin de comprendre comment tout cela fonctionne.
Puisque nous sommes allés aussi loin, il est temps de considérer l'un des types d'algorithmes quantiques, à savoir
l'algorithme Deutsch-Joji , et de montrer son avantage sur un ordinateur classique. Il convient de noter que l'algorithme Deutsch-Yogi est complètement déterministe, c'est-à-dire qu'il renvoie la bonne réponse dans 100% des cas (contrairement à de nombreux autres algorithmes quantiques basés sur la détermination probabiliste des qubits).
Imaginons que vous ayez une boîte noire qui contient une fonction / opérateur sur un bit (rappelez-vous - lorsque vous utilisez un bit, seules quatre opérations sont possibles: transformer à l'identique, nier, calculer la constante "0" et calculer la constante "1"). Quelle fonction est exécutée dans une boîte? Vous ne savez pas laquelle, cependant, vous pouvez trier autant de variantes de valeurs d'entrée que vous le souhaitez et évaluer les résultats à la sortie.
Combien de signaux d'entrée et de sortie devront être pilotés à travers la boîte noire pour savoir quelle fonction est utilisée? Pensez-y une seconde.
Dans le cas d'un ordinateur classique, vous devrez effectuer 2 requêtes pour déterminer la fonction utilisée. Par exemple, si lorsque vous entrez "1" nous obtenons "0" à la sortie, il devient clair que soit la fonction de calcul de la constante "0" soit la fonction de négation est utilisée, après quoi vous devrez changer la valeur du signal d'entrée à "0" et voir ce qui se passe à la sortie.
Dans le cas d'un ordinateur quantique, vous aurez également besoin de deux requêtes, car vous avez toujours besoin de deux valeurs de sortie différentes pour déterminer la fonction exacte qui s'applique à la valeur d'entrée. Cependant, si nous reformulons un peu la question, il s'avère que les ordinateurs quantiques ont toujours un sérieux avantage: si vous vouliez savoir si la fonction utilisée est constante ou variable, la supériorité serait du côté des ordinateurs quantiques.
La fonction utilisée dans la boîte est une variable, si différentes valeurs du signal d'entrée donnent des résultats différents sur la sortie (par exemple, conversion et inversion identiques d'un bit), et si la valeur de sortie ne change pas quelle que soit la valeur d'entrée, la fonction est constante (par exemple, le calcul de la constante «1» ou le calcul de la constante «0»).
En utilisant l'algorithme quantique, vous pouvez déterminer si une fonction dans une boîte noire est constante ou variable sur la base d'une seule demande. Mais avant d'examiner en détail comment procéder, nous devons trouver un moyen qui nous permettra de structurer chacune de ces fonctions sur un ordinateur quantique. Comme tout opérateur quantique doit être inversible, nous rencontrons immédiatement un problème: les fonctions de calcul des constantes «1» et «0» ne le sont pas.
En informatique quantique, la solution suivante est souvent utilisée: un qubit de sortie supplémentaire est ajouté, qui renvoie toute valeur du signal d'entrée reçu par la fonction.
Ainsi, nous pouvons déterminer les valeurs d'entrée uniquement sur la base de la valeur obtenue à la sortie, et la fonction devient inversible. La structure des circuits quantiques crée le besoin d'un bit d'entrée supplémentaire. Pour développer les opérateurs correspondants, nous supposons que le qubit d'entrée supplémentaire est défini sur | 0⟩.
En appliquant la même représentation de la chaîne quantique que nous avons utilisée précédemment, nous verrons comment chacun des quatre éléments (transformation d'identité, négation, calcul de la constante "0" et calcul de la constante "1") peut être mis en œuvre à l'aide d'opérateurs quantiques.
Par exemple, vous pouvez implémenter la fonction de calcul de la constante "0":
Calcul de la constante "0":Ici, nous n'avons absolument pas besoin d'opérateurs. Le premier qubit d'entrée (que nous avons pris égal à | 0⟩) revient avec la même valeur, et la deuxième valeur d'entrée se retourne - comme d'habitude.
Avec la fonction de calcul de la constante «1», la situation est légèrement différente:
Calcul de la constante "1":Puisque nous avons accepté que le premier qubit d'entrée soit toujours réglé sur | 0⟩, suite à l'application de l'opérateur d'inversion de bits, il en donne toujours un à la sortie. Et comme d'habitude, le deuxième qubit donne sa propre valeur en sortie.
Lorsque l'opérateur de transformation d'identité s'affiche, la tâche commence à devenir plus compliquée. Voici comment procéder:
Transformation d'identité:Le symbole utilisé ici désigne l'élément CNOT: la ligne supérieure indique le bit de commande et la ligne inférieure indique le bit de commande. Permettez-moi de vous rappeler que lorsque vous utilisez l'opérateur CNOT, la valeur du bit de contrôle change si le bit de contrôle est | 1⟩, mais reste inchangée si le bit de contrôle est | 0⟩. Puisque nous avons supposé que la valeur de la ligne supérieure est toujours égale à | 0⟩, sa valeur est toujours affectée à la ligne inférieure.
De même, nous agissons avec l'opérateur de négation:
Refus:Nous inversons simplement le bit à la fin de la ligne de sortie.
Maintenant que nous avons compris la présentation préliminaire, regardons les avantages spécifiques d'un ordinateur quantique par rapport à un ordinateur traditionnel lorsqu'il s'agit de déterminer la constance ou la variabilité d'une fonction cachée dans une boîte noire en utilisant une seule requête.
Pour résoudre ce problème en utilisant l'informatique quantique dans une seule demande, il est nécessaire de traduire les qubits d'entrée en superposition avant de les transférer dans la fonction, comme indiqué ci-dessous:
L'élément Hadamard est réappliqué au résultat de l'utilisation de la fonction pour dériver des qubits de la superposition et rendre l'algorithme déterministe. On démarre le système dans l'état | 00⟩ et pour les raisons dont je vais parler maintenant, on obtient le résultat | 11⟩ si la fonction utilisée est constante. Si la fonction à l'intérieur de la boîte noire est variable, le système retourne le résultat | 01⟩ après la mesure.
Pour traiter le reste de l'article, passons à l'illustration que j'ai montrée précédemment:
En utilisant l'opérateur d'inversion de bits, puis en appliquant l'élément Hadamard aux deux valeurs d'entrée égales à | 0⟩, nous assurerons leur traduction dans la même superposition | 0 | et | 1⟩, à savoir:
En utilisant l'exemple du transfert de cette valeur d'une fonction dans une boîte noire, il est facile de démontrer que les deux fonctions d'une valeur constante donnent | 11⟩ à la sortie.
Calcul de la constante "0":, , «1» |11⟩, :
«1»:: |1⟩, -1² = 1.
, |01⟩ ( ), .
:CNOT , , CNOT :
|01⟩, :
:, , , .
?
. . , , , , , .
— , , , - (, !). — ,
, |0⟩ |1⟩ .
,
« » (An Introduction to Quantum Algorithms) : , .