L'informatique quantique, apparue dans les années 1980, commence tout juste à être disponible, même si le nombre de qubits est limitéles taux de décroissance élevés et les niveaux de bruit importants. IBM et Microsoft commencent à proposer l'accès à des ordinateurs et à des simulateurs quantiques dans leurs cloudsDe son côté, Google a fait la démonstration de capacités quantiques (et revendiqué la suprématie quantique) dans ses laboratoires, sans envisager encore de proposer un accès public. Intel travaille également sur des puces et des systèmes quantiques, mais n'a pas annoncé de disponibilité commerciale. 

Définitions de l'informatique quantique 

À la différence des bits classiques qui peuvent prendre les deux valeurs 0 et 1, les bits quantiques, appelés qubitspeuvent prendre un nombre infini de valeurs. Ces valeurs sont toutes des combinaisons ou des superpositions des deux états classiques. Tout vecteur de colonne bidimensionnel de nombres réels ou complexes avec la norme 1 représente un état quantique possible détenu par un qubitIl faut imaginer en 3D des vecteurs situés n'importe où sur la surface d'une sphère unitaire, appelée sphère de Bloch (voir l'image ci-dessous). Quand on mesure un qubit dans un état superposé, l'état quantique se résout de manière aléatoire à l'un des deux états classiques. On peut également donner explicitement une valeur classique (0 ou 1) à un qubit. La mesure d'un qubit ayant une valeur classique n'affecte pas son état. 

Trois propriétés mécaniques quantiques - superposition, intrication et interférence - sont utilisées pour manipuler les qubits. La superposition consiste à combiner des états classiques, ce qui leur permet essentiellement d'exister tous les deux en même temps jusqu'à ce qu'ils soient mesurés. L’intrication fait référence au phénomène décrit par Einstein sous le nom d«action effrayante à distance ». Deux qubits intriqués ont toujours le même état quand on les mesure. L'interférence peut être constructive ou destructrice. L'interférence quantique constructive est utilisée dans les ordinateurs quantiques pour amplifier les signaux menant à la bonne réponse, et l'interférence quantique destructive est utilisée pour annuler les signaux menant à la mauvaise réponse. 

Algorithmes quantiques  

Le sujet des portes quantiques, ou des opérateurs à un seul bit, devient assez rapidement technique. Si vous avez suivi des cours d'analyse complexe, d'algèbre linéaire et de mécanique quantique, vous devriez pouvoir suivre cette discussion. Sinon, retenez qu'il existe des opérateurs à un seul bit, y compris l'ensemble de base des portes Hadamard et des portes T, qui peuvent être combinées en un ensemble plus vaste appelé portes Clifford. Des qubits multiples peuvent être intriqués, ce qui est essentiel pour un certain nombre de protocoles quantiques, y compris la téléportation quantique et la correction d'erreurs quantiques. 

Plusieurs algorithmes quantiques ont été proposés, qui devraient être plus rapides que les algorithmes classiques si nous disposons un jour d'ordinateurs quantiques avec suffisamment de qubits, avec des temps de cohérence suffisamment longs et des taux d'erreur suffisamment bas. Par exemple, l'algorithme de Grover, conçu par Lov Grover en 1996, trouve l'inverse d'une fonction dans les étapes O(√N) ; il peut également être utilisé pour rechercher une liste non ordonnée. Il offre une accélération quadratique par rapport aux méthodes classiques, qui nécessitent des pas O(N). L'algorithme de Shor, mis au point par Peter Shor en 1994, trouve les facteurs premiers d'un entier. Il s'exécute en temps polynomial dans log(N), ce qui le rend exponentiellement plus rapide que le tamis classique du champ des nombres généraux. Cette vitesse exponentielle promet de casser à terme les schémas de cryptographie à clé publique, comme le RSA, s’il y a des ordinateurs quantiques avec « suffisamment » de qubits (le nombre exact dépendrait de la taille de l'entier pris en compte) en l'absence de bruit quantique et d'autres phénomènes de décohérence quantique. 

Suprématie quantique 

La suprématie quantique est la condition dans laquelle un ordinateur quantique peut effectuer rapidement une opération significative qui prendrait beaucoup de temps à un ordinateur classique. Google a revendiqué la suprématie quantique en octobre 2019 pour un calcul aléatoire ; IBM a rétorqué qu'un superordinateur classique pouvait effectuer le même calcul en quelques jours, et non en 10 000 ans comme l'avait estimé Google. En tout cas, ce que Google a démontré, aussi impressionnant soit-il, ne relève pas du calcul quantique ordinaire, et les personnes utilisant le cryptage RSA n'ont pas à s'inquiéter, du moins pour l'instant. 

Microsoft Q#, Quantum Development Kit, et Azure Quantum 

Le kit de développement quantique Quantum Development Kit de Microsoft (QDK) comprend le langage de programmation Q#, un ensemble de bibliothèques qui permettent l’abstraction de fonctionnalités complexes de Q#, des API pour les langages Python et .NET (C#, F# et VB.NET) pour exécuter des programmes quantiques écrits en Q#, et des outils pour faciliter le développement. On peut installer Q# pour C#, Q# pour Python et/ou Q# pour les Jupyter Notebooks sous Windows, Linux et MacOSPour exécuter Q# sur son propre ordinateur, il faut utiliser un simulateur quantique. Si vous l'exécutez sur Azure, vous pourrez éventuellement vous connecter à un véritable ordinateur quantique construit à partir de nanofils refroidis cryogéniquement (voir photo ci-dessous). Microsoft prévoit d’offrir un accès à des aperçus quantiques en 2020. 

Le programme « Hello, World » pour Q# génère des nombres entiers aléatoires. Il fonctionne essentiellement en fixant un qubit à travers une porte Hadamard à une superposition quantique avec la probabilité de retourner la valeur 0 ou 1 lors de la mesure (appelée état de Bell), puis en répétant ces opérations « H » et « M » autant de fois que nécessaire pour générer un entier dans la plage souhaitée. Dans Q#, le code d'opération quantique pour générer un bit aléatoire ressemble à ce qui suit : 

namespace Qrng { 

    open Microsoft.Quantum.Intrinsic; 

    operation SampleQuantumRandomNumberGenerator() : Result { 

        using (q = Qubit())  { // Allocate a qubit. (Attribuer un qubit) 

            H(q);             // Put the qubit to superposition. It now has a 50% chance of being 0 or 1. (Mettre le qubit en superposition. Il a désormais 50% de chances de prendre la valeur 0 ou 1) 

            let r = M(q);     // Measure the qubit value. (Mesurer la valeur du qubit) 

            Reset(q); 

            return r; 

        } 

    } 

} 

Vous pouvez appeler ce code Q# pour l'exécuter sur un ordinateur quantique ou un simulateur quantique à partir de Python ou d'un langage .NET comme C#. 

SDK IBM Q et IBM Qiskit 

IBM Experience (voir la capture d'écran ci-dessous) offre deux manières de créer des circuits quantiques : Circuit Composer, qui est un environnement graphique de glisser-déposer, et Qiskit Notebooks, qui utilise Python, et Jupyter Notebooks pour créer les circuits en code. Les deux méthodes aboutissent au même résultat, même si l’on peut également utiliser les Qiskit Notebooks sur sa propre machine si l’on installe le SDK Qiskit sous Windows, Ubuntu ou MacOS. Le circuit « Hello, World » d'IBM utilise une porte Hadamard (H) pour placer le qubit 0 dans un état de superposition de Bell, et une porte CNOT (CX) pour intriquer les qubits 0 et 1. Le dit circuit mesure ensuite les deux qubits plusieurs fois. Les réponses attendues devraient être à peu près [0,0] pour moitié et [1,1] pour moitié, et presque pas [0,1] et [1,0]. 

Si l’on choisit la méthode des Qiskit avec simulateur, l'expérience ressemble à la capture d'écran ci-dessous : 

Il est possible de commencer avec le diagramme de circuit dans IBM Quantum Experience en ligne et faire glisser quatre portes dans le diagramme pour accomplir la même chose. Ici, cependant, on peut choisir les fins de parcours graphiquement et le nombre de fois où l’on veut exécuter le code de changement de circuit. Dans la méthode par simulateur, on ne mesurque les états [0,0] et [1,1]. C'est parfait, mais cela ne traduit pas le bruit réel d'un circuit quantique. 

Si l’on fait tourner le même circuit dans le centre de calcul IBM Q d’Armonk, on voit que la transposition n’a pas eu lieu parce que cet ordinateur quantique n'a qu'un qubitalors qu’il faudrait deux qubits. Pas étonnant qu'il n'y ait pas eu de file d'attente pour l'utiliser. 

Par contre, si l’on reproduit l’expérience dans le centre de calcul IBM Q Burlington, qui a cinq qubits, on voit ce qui se passe réellement : les erreurs quantiques donnent environ 20 % de résultats non intriqués. Notez que l’on n’a pas gagné de temps en utilisant un véritable ordinateur quantique pour ce petit circuit : non seulement nous avons dû attendre dans la file d'attente pendant près de deux minutes, mais le temps d’exécution a atteint 10 secondes. Sur le simulateur, nous avons attendu dans la file d'attente pendant une seconde et le temps d’exécution n’a pas dépassé les 4 millisecondes. 

Des progrès à faire  

Tout cela résume bien l’état actuel de l'informatique quantique : les ordinateurs quantiques existants avec accès public sont limités à un petit nombre de qubits et affichent des taux d'erreur importants. Les gens travaillent dur pour mettre en œuvre la correction des erreurs quantiques et rallonger les temps de décroissance des états de qubits, mais ces deux aspects sont compliqués à résoudreTous ceux qui s’intéressent au sujet ont hâte de tester Azure Quantum de Microsoft, quand il sera disponible. Selon Microsoft, ses qubits topologiques de nanofils supraconducteurs, qui créent des particules de Majorana aux extrémités des fils, devraient offrir des taux d'erreur intrinsèquement inférieurs à ceux des qubits de jonction Josephson d'IBM.