Construire un ordinateur quantique en simulation

13

Si l'on veut commencer à construire un ordinateur quantique à partir de zéro dans des simulations (comme comment les gens arrivent à construire un ordinateur classique à partir de zéro dans le cours Nand2Tetris ), est-ce possible?

Si oui, quelles seraient les approches possibles?

De plus, quelles seront les limites d'une telle machine simulée, compte tenu d'une quantité spécifique de puissance de calcul classique? Par exemple, si nous devions choisir votre ordinateur de bureau / ordinateur portable moyen, quelle serait la limite? Si nous prenons un superordinateur (comme Titan) alors quelle serait la limite?

ak_nama
la source

Réponses:

5

La première partie de votre question ressemble à un double d'un article QC SE existant: Existe-t-il des émulateurs pour les ordinateurs quantiques? .

Je ne suis pas tout à fait sûr de ce que vous entendez par construire un ordinateur quantique à partir de zéro dans des simulations . Cependant, oui, vous pouvez faire des simulations logicielles d'un ordinateur quantique en utilisant votre ordinateur portable / bureau moyen. La "limite" exacte dépendra des spécifications de l'ordinateur.

Puisqu'un ordinateur quantique ne viole pas la thèse de Church-Turing , en théorie, il est certainement possible de simuler un ordinateur quantique en utilisant une machine de Turing idéale . L'approche évidente pour simuler un tel système nécessite un temps exponentiel sur un ordinateur classique et la complexité de l'espace est une fonction exponentielle du nombre de bits quantiques simulés. Imaginons que vous simuliez un ordinateur quantique à bits, vous auriez besoin de stocker environ 2 n bits d'informations dans votre ordinateur classique à chaque instant. En outre, la mise en œuvre de portes quantiques nécessitera à nouveau une énorme quantité de ressources en termes de temps et de complexité spatiale. Une implémentation d'une porte quantique fonctionnant sur n -qubits devrait stocker environn2nn (car vous pouvez représenter toutes les opérations de porte quantique comme une matrice de taille 2 n × 2 n ) bits d'information.4n2n×2n

Vous pouvez en quelque sorte estimer la "limite" en fonction des spécifications de l'ordinateur classique. Par exemple, si la taille de la mémoire (accessible) de votre ordinateur classique est d'environ To, je m'attends à ce que vous puissiez simuler un ordinateur quantique log 4 ( 8 × 10 12 ) 21 bits (pour être sûr, disons 20 ). Cependant, gardez à l'esprit que les ordinateurs classiques prendraient beaucoup plus de temps pour accéder à tous les bits d'information individuels, par rapport à un ordinateur quantique réel (selon le matériel de l'ordinateur quantique). Donc ça va être plus lent1Journal4(8×dix12)2120qu'un véritable ordinateur quantique! Certaines autres limitations sont qu'après chaque action d'une porte à qubit, vous devez garder une trace des qubits de sortie qui sont enchevêtrés, ce qui est un problème NP-difficile . De plus, la mesure ne peut pas être simulée avec précision sur un ordinateur classique, car il n'y a classiquement pas de générateur de nombres vraiment aléatoires .n

Sanchayan Dutta
la source
Vous pouvez en fait simuler un peu plus de qubits si vous n'utilisez que 1 et 2 portes de qubit pour décomposer votre grand unitaire et agir sur un état pur. Avec 8 Go de RAM, vous pouvez facilement faire 25 qubits en double précision.
vsoftco
4

Eh bien, je travaille actuellement sur un simulateur d'un ordinateur quantique. L'idée de base de l'informatique quantique est bien sûr les portes représentées par des matrices appliquées aux qubits représentés par des vecteurs. En utilisant le paquet numpy de Python, ce n'est pas si difficile à programmer dans le sens le plus basique.

À partir de là, on pourrait bien sûr développer l'interface. On pourrait également envisager d'en faire un simulateur d'un ordinateur quantique non idéal, c'est-à-dire en tenant compte des temps de décohérence et de la correction des erreurs.

Ensuite, vous entrez dans un territoire très inexploré. Comment construisez-vous le jeu d'instructions pour un ordinateur quantique? Qui sait. Vous devrez comprendre. Vous devrez également déterminer votre version de l'assembly, et même votre version des langages de programmation de niveau supérieur.

Alors, les limites d'un ordinateur classique en cela? Eh bien, c'est une question vraiment compliquée (et mérite d'être posée séparément, à mon humble avis) mais voici un bref résumé:

  • nous ne savons pas si les ordinateurs quantiques sont réellement meilleurs que les ordinateurs classiques; les algorithmes pour les ordinateurs classiques ne sont peut-être pas encore assez bons (suprématie quantique)
  • disons, comme cela semble décemment probable, que les ordinateurs quantiques sont meilleurs que les ordinateurs classiques. cette amélioration dépendra fortement du problème - les ordinateurs quantiques pourraient voir, par exemple, une amélioration beaucoup plus rapide de la vitesse dans la recherche des factorisations principales que dans la vérification des e-mails. (voir aussi ce P.SE q / a.)
  • O(e649(JournalN)13(JournalJournalN)23)O((JournalN)2(JournalJournalN)(JournalJournalJournalN))
  • |0|1
bruyère
la source
4

J'ai l'impression que cette réponse repose principalement sur un malentendu sous-jacent de ce que signifie «simuler» quelque chose.

D'une manière générale, «simuler» un système complexe signifie reproduire certaines fonctionnalités d'un tel système avec une plateforme plus facile à contrôler (souvent, mais pas toujours, un ordinateur classique).

Par conséquent, la question de savoir si "on peut simuler un ordinateur quantique dans un ordinateur classique" est quelque peu mal posée. Si vous voulez reproduire tous les aspects possibles d'un "ordinateur quantique", cela ne se produira jamais, tout comme vous ne pourrez jamais simuler tous les aspects d'un système classique (à moins que vous n'utilisiez le même système bien sûr).

D'un autre côté, vous pouvez certainement simuler de nombreux aspects d'un appareil complexe comme un "ordinateur quantique". Par exemple, on peut vouloir simuler l'évolution d'un état au sein d'un circuit quantique. En effet, cela peut être extrêmement facile à faire! Par exemple, si vous avez python sur votre ordinateur, exécutez simplement ce qui suit

import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)

cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)

awesome_entangling_gate = np.dot(cnot_gate, H1_gate)

initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)

Félicitations, vous venez de "simuler" l'évolution d'un état séparable à deux qubits en un état Bell!

n2n(1)(2)

D'autres réponses ont déjà abordé divers aspects de cette dureté, et les réponses à cette autre question mentionnent déjà de nombreuses plates-formes disponibles pour simuler / émuler divers aspects des algorithmes quantiques, donc je ne vais pas y aller.


(1) Un exemple intéressant de ceci est le problème de la simulation d'un dispositif d'échantillonnage de bosons (ce n'est pas un algorithme quantique dans le sens d'un état évoluant à travers une série de portes, mais c'est néanmoins un exemple d'un dispositif quantique non trivial). BosonSampling est un problème d'échantillonnage , dans lequel on est chargé du problème de l' échantillonnageà partir d'une distribution de probabilité spécifique, et cela s'est avéré (sous des hypothèses probables) impossible à faire efficacement avec un appareil classique. Bien qu'il n'ait jamais été démontré qu'il s'agissait d'un aspect fondamental de cette dureté, un problème certainement non trivial associé à la simulation d'un dispositif d'échantillonnage de bosons était celui de devoir calculer un nombre exponentiellement élevé de probabilités à partir desquelles échantillonner. Cependant, il a été récemment montré qu'en effet, il n'est pas nécessaire de calculer l'ensemble des probabilités pour en échantillonner ( 1705.00686 et 1706.01260). Ce n'est pas loin en principe de simuler l'évolution d'un grand nombre de qubits dans un circuit quantique sans avoir à stocker tout l'état du système à un moment donné. En ce qui concerne plus directement les circuits quantiques, des exemples de percées récentes dans les capacités de simulation sont 1704.01127 et 1710.05867 (également un super-récent, non encore publié, est 1802.06952 ).

(2) En fait, il a été démontré (ou plutôt des preuves solides ont été fournies) qu'il n'est pas possible de simuler efficacement la plupart des circuits quantiques, voir 1504.07999 .

glS
la source