Premièrement, un ordinateur classique fait des mathématiques de base au niveau matériel dans l'unité arithmétique et logique (ALU). Les portes logiques prennent des tensions d'entrée faibles et élevées et utilisent CMOS pour implémenter des portes logiques permettant aux portes individuelles d'être exécutées et construites pour effectuer des opérations plus grandes et plus compliquées. En ce sens, taper sur un clavier envoie des signaux électriques, qui finissent par se traduire par une commande (sous la forme de plusieurs signaux électriques) envoyée à l'ALU, les opérations correctes étant effectuées et plus de signaux renvoyés, qui sont convertis en afficher des pixels sous la forme d'un nombre sur votre écran.
Et un ordinateur quantique?
Les processeurs quantiques peuvent être utilisés de deux manières: seuls ou en association avec un processeur classique. Cependant, la plupart (y compris votre exemple de supraconducteur) des processeurs quantiques n'utilisent pas réellement de signaux électriques, bien que ce soit toujours ainsi que votre souris, votre clavier et votre moniteur, etc. transmettent et reçoivent des informations. Donc, il doit y avoir un moyen de convertir le signal électrique en n'importe quel signal utilisé par le processeur quantique (que j'aborderai plus tard), ainsi qu'un moyen de dire au processeur ce que vous voulez faire. Ces deux problèmes peuvent être résolus à la fois par le pré et le post-traitement classiques, comme dans QISKit d'IBM . Microsoft adopte un peu plus une approche descendante dans Q #, où les programmes pour un processeur quantique sont écrits plus comme un programme «classique», par opposition à un script, puis compilés et potentiellement optimisés pour le matériel. Autrement dit, si vous avez une fonction, elle peut effectuer des opérations classiques, ainsi que faire des appels au processeur quantique pour effectuer toutes les opérations quantiques requises. Cela m'amène au premier point:
Si vous allez demander à un ordinateur ayant accès à un processeur quantique de calculer quelque chose comme , une solution très valable serait de simplement le calculer sur le processeur classique comme d'habitude.2+3
OK, disons que vous forcez le processeur classique à utiliser le processeur quantique, qui dans ce cas est l'une des puces supraconductrices d'IBM, en utilisant des qubits de transmons , disons, l' IBM QX4 . C'est trop petit pour avoir une correction d'erreur, alors ignorons cela. L'utilisation d'un processeur de modèle de circuit comporte trois parties: l'initialisation, l'évolution unitaire et la mesure, qui sont expliquées plus en détail ci-dessous. Avant ça,
Qu'est-ce qu'un transmon?
Prenez une boucle supraconductrice pour permettre aux paires de Cooper et ajoutez une ou deux jonctions Josephson pour donner un îlot de boîte de paires Cooper dans la région entre les deux jonctions Josephson avec l'énergie de couplage Josephson , où le flux magnétique quantique et est le courant critique de la jonction. L'application d'une tension à cette boîte donne une «capacité de grille» et en fait un qubit de charge . Pour l'énergie coulombienne d'une seule paire de Cooper , oùEJ=IcΦ0/2π Φ0=h/2eIcVgCgEC=(2e)2/2CCest la somme de la capacité totale de l'îlot. L'hamiltonien d'un tel système est donné par où est le nombre de paires de Cooper, est le changement de phase à travers la jonction et . Lors de l'exécution d'opérations unitaires, seuls les deux états les plus bas du système sont pris en compte, et avec les énergies respectives et et fréquence de qubit
H=EC(n−ng)2−EJcosϕ,
nϕng=CgVg/2e|n⟩=|0⟩|n⟩=|1⟩E0=ℏω0E1=ℏω1ω=ω1−ω0, décrivant la base de calcul d'un qubit. Un qubit de charge typique pourrait avoir . L'ajout d'une grande capacité de shunt et l'augmentation de la capacité de la porte commute ce rapport, de sorte que et nous avons un
transmon . Cela présente l'avantage de durées de cohérence plus longues, au prix d'une anharmonicité réduite (où les niveaux d'énergie au-delà des deux premiers sont plus proches les uns des autres, ce qui peut provoquer des fuites).
EC=5EJEJ≫EC
Enfin , nous arrivons à la question principale:
Comment initialiser, faire évoluer et mesurer un transmon?
L'ajout de 2 et 3 est désormais une question «simple» d'initialisation des qubits, de réalisation des portes équivalentes à un additionneur réversible classique et de mesure du résultat, le tout implémenté automatiquement. Le résultat de la mesure est ensuite renvoyé par un ordinateur classique comme d'habitude.
En bonus , il semble un peu inutile de passer par tout cela pour implémenter des portes qui pourraient être faites sur un ordinateur classique de toute façon, il s'avère donc qu'il est possible d'implémenter approximativement un additionneur quantique , qui ajoute deux quantiques (par opposition aux états classiques), avec une erreur, sur l'un des processeurs IBM.