Google a démontré la transcendance quantique, et récemment, il y a eu beaucoup de discussions sur les ordinateurs quantiques, alors je me suis penché dessus à la légère. Cependant, il y avait une méthode que n'importe qui pouvait essayer de faire fonctionner un ordinateur quantique (qui sera décrite plus tard, mais la méthode de recuit quantique est différente de la méthode développée par Google). Alors je l'ai résumé ici. Comme je ne suis pas un expert dans ce domaine, il peut y avoir des erreurs dans l'explication. Veuillez noter ce point.
J'ai fait référence à ce qui suit lors de la compréhension de l'ordinateur quantique et du fonctionnement réel de l'ordinateur quantique.
À propos de l'explication de l'ordinateur quantique Parce que l'explication parue dans le journal Nikkei était complète et facile à comprendre Tout d'abord, je vais le citer tel quel.
▼ Ordinateur quantique Un ordinateur qui applique la loi physique «mécanique quantique» qui tient dans le monde microscopique, comme les atomes et les électrons qui composent une substance. Les ordinateurs conventionnels représentent et calculent les informations en unités de bits «0» et «1», mais une énorme quantité de calculs est nécessaire selon la façon dont 0 et 1 sont disposés. Les ordinateurs quantiques, quant à eux, utilisent un état spécial appelé «superposition», qui est à la fois 0 et 1. En appliquant ce principe, on s'attend à ce que les calculs qui étaient difficiles dans le passé puissent être effectués en peu de temps.
Dans un ordinateur quantique, l'existence d'un bit quantique qui peut avoir un état de superposition de ** 0 et 1 ** est très importante, et en utilisant cela, la meilleure combinaison de toutes les combinaisons peut être instantanément sélectionnée. On dit que la machine que l'on peut trouver est un ordinateur quantique.
Il existe actuellement deux méthodes pour les ordinateurs quantiques.
méthode | Aperçu | Fournisseur de développement |
---|---|---|
Méthode de recuit quantique | Une méthode spécialisée pour le traitement des tâches d'optimisation de combinaison | D-Systèmes de vagues, etc. |
Méthode de porte quantique | Une méthode polyvalente qui peut calculer n'importe quoi comme un ordinateur conventionnel | Google,IBM etc. |
Actuellement, les entreprises mènent des expériences de démonstration sur des machines de recuit quantique. En 2011, une entreprise appelée D-wave Systems au Canada a commencé la vente commerciale de machines de recuit quantique, et diverses entreprises mènent des expériences de démonstration.
Pour les entreprises japonaises, [Recruit Communications applique l'ordinateur quantique à l'optimisation des publicités](http://dwavejapan.com/recruit-communications-d-wave-collaborate-apply-quantum-computing-marketing-advertising-communications- Il semble que nous menions des travaux de recherche et développement visant l'optimisation /).
Cette fois, c'est la machine de recuit quantique des systèmes D-wave qui fonctionne sur Python. ** Depuis novembre 2019, n'importe qui peut faire fonctionner la machine de recuit quantique gratuitement pendant 1 minute simplement en s'enregistrant. ** **
Tout d'abord, enregistrez-vous en tant qu'utilisateur depuis le site ici. Vous pouvez vous inscrire en entrant simplement votre nom, votre adresse e-mail et vos informations professionnelles, et aucune information de carte de crédit n'est requise.
Lorsque vous vous connectez, vous verrez d'abord un écran comme celui-ci en haut. À l'extrême gauche, divers films d'explication expliquent ce que cette machine de recuit quantique peut faire. Vous pouvez voir une démo de l'ordinateur quantique au milieu, mais sachez que cela prendra du temps à partir de la minute d'essai. À l'extrême droite, vous trouverez une explication sur la façon d'exécuter une machine de recuit quantique avec la bibliothèque Python.
Si vous faites défiler, vous verrez également un tableau de bord comme celui-ci. Ici vous pouvez voir combien de temps vous pouvez exécuter l'ordinateur quantique.
Si vous l'utilisez, le temps sera ainsi réduit.
Bien qu'il s'agisse d'une bibliothèque, elle peut être installée normalement avec pip. Cependant, dans l'environnement que j'utilise toujours, des erreurs se sont produites fréquemment lors de l'installation pour une raison quelconque, j'ai donc démarré le conteneur à partir de l'image pour l'apprentissage automatique avec Docker et l'ai installé là-bas.
pip install dwave-ocean-sdk
Une fois cette installation terminée, exécutez la commande suivante.
dwave config create
Ensuite, ce qui suit sera affiché dans l'ordre du haut, mais en gros, il vous suffit d'appuyer sur Entrée et Entrez votre jeton API dans le champ "Jeton d'authentification". Vous pouvez copier votre jeton API en haut de Ma page.
Confirm configuration file path [/home/jane/.config/dwave/dwave.conf]:
Profile (create new) [prod]:
API endpoint URL [skip]:
Authentication token [skip]:Décrivez votre jeton API
Default client class (qpu or sw) [qpu]:
Default solver [skip]:
Configuration saved.
Les préparatifs sont terminés ici. Exécutez la commande suivante pour confirmer que la connexion est réussie.
dwave ping
Si ça ressemble à ça, ça va.
Using endpoint: https://my.dwavesys.url/
Using solver: My_DWAVE_2000Q
Wall clock time:
* Solver definition fetch: 2007.239 ms
* Problem submit and results fetch: 1033.931 ms
* Total: 3041.171 ms
QPU timing:
* total_real_time = 10493 us
* anneal_time_per_run = 20 us
* post_processing_overhead_time = 128 us
* qpu_anneal_time_per_sample = 20 us
Maintenant, résolvons la tâche en utilisant un ordinateur quantique.
Cette fois, il est préparé comme exemple de problème de référence API, Nous allons résoudre la tâche d'ordonnancement avec des contraintes.
Les règles suivantes sont stipulées comme conditions de détention de MTG. Nous essaierons d'extraire de manière exhaustive les conditions dans lesquelles MTG peut être détenu sans violer cette règle. ** Règles **
Commencez par convertir 0 et 1 afin que les conditions ci-dessus puissent être lues par l'ordinateur.
--Lorsque time
est égal à 1, il est" dans le temps ". Quand il est égal à 0, il est" hors du temps ".
--Lorsque location
est à 1, il est" à l'intérieur du bureau ". Quand il est à 0, il est" à l'extérieur du bureau ".
--Lorsque "length" est 1, "Le temps MTG est de 30 minutes ou moins" Quand 0, "Le temps MTG est de 30 minutes ou plus"
--Lorsque «obligatoire» vaut 1, «participation forcée» lorsque 0, «participation volontaire»
Maintenant, créons une fonction qui supprime la conversion 0,1 ci-dessus pour la règle.
def scheduling(time, location, length, mandatory):
if time: #À temps
return (location and mandatory) #Participation obligatoire au bureau
else: #Non programmé
return ((not location) and length) #Conférence téléphonique de 30 minutes ou moins
Créez une condition de contrainte à partir de cette fonction à l'aide d'une bibliothèque.
import dwavebinarycsp
csp = dwavebinarycsp.ConstraintSatisfactionProblem(dwavebinarycsp.BINARY)
csp.add_constraint(scheduling, ['time', 'location', 'length', 'mandatory'])
De plus, il est converti en un format appelé modèle de vieillissement (problème de minimisation de format secondaire).
** Il est essentiel de convertir le problème dans ce format pour que l'ordinateur quantique puisse résoudre le problème **.
Bien qu'il soit min_classical_gap
spécifié par l'argument suivant, il n'est pas spécifié dans l'exemple de code officiel. Si vous gardez la valeur par défaut, cela ne fonctionnera pas, alors je l'ai spécifié ici, mais je n'ai pas pu trouver la cause même après avoir enquêté ... J'apprécierais que quelqu'un puisse me le dire.
bqm = dwavebinarycsp.stitch(csp, min_classical_gap=2.1)
print(bqm)
BinaryQuadraticModel({'a': -1.0, 'aux0': -2.0, 'aux1': 0.0, 'b': 2.0, 'c': 1.0, 'aux2': -1.0}, {('aux0', 'a'): 1.0, ('aux1', 'a'): 1.0, ('aux1', 'aux0'): -1.0, ('b', 'a'): -1.0, ('b', 'aux0'): -1.0, ('b', 'aux1'): -1.0, ('c', 'a'): 0.0, ('c', 'aux0'): -1.0, ('c', 'aux1'): -1.0, ('c', 'b'): 1.0, ('aux2', 'a'): 1.0, ('b', 'aux2'): -1.0, ('c', 'aux2'): 1.0}, 0.0, Vartype.SPIN)
La sortie ci-dessus correspond à cela mathématiquement.
from dwave.system.samplers import DWaveSampler
from dwave.system.composites import EmbeddingComposite
sampler = EmbeddingComposite(DWaveSampler(endpoint='https://cloud.dwavesys.com/sapi', token='Décrivez votre jeton API', solver='DW_2000Q_2_1'))
Demandez un échantillonnage à l'ordinateur quantique. Puisque les résultats échantillonnés sont probabilistes, demander plusieurs échantillons au lieu d'un seul appellera plusieurs solutions «optimales» et vous empêchera de choisir des solutions non optimales. Ce qui suit nécessite 5000 échantillons comme arguments.
response = sampler.sample(bqm, num_reads=5000)
#La solution avec la plus petite valeur énergétique est la solution optimale
min_energy = next(response.data(['energy']))
Jetons un coup d'œil aux résultats de l'échantillonnage.
total = 0
for sample, energy, occurrences in response.data(['sample', 'energy', 'num_occurrences']):
total = total + occurrences
if energy == min_energy:
time = 'À temps' if sample['time'] else 'Non programmé'
location = 'Bureau' if sample['location'] else 'Conférence téléphonique'
length = '30 minutes ou moins' if sample['length'] else 'Plus de 30 minutes'
mandatory = 'Participation obligatoire' if sample['mandatory'] else 'Participation volontaire'
sub = str(sample['mandatory'])
# print("{}: During {} at {}, you can schedule a {} meeting that is {}::{}".format(occurrences, time, location, length, mandatory, sub))
print(" {}Est{}alors,{}MTG{}Il peut être tenu à.".format(time, location, length, mandatory))
Il s'agit d'une conférence téléphonique en dehors des heures normales, et un MTG de 30 minutes ou moins peut être organisé volontairement.
Vous pouvez tenir un MTG de 30 minutes ou moins par participation obligatoire au bureau pendant l'heure prévue.
Vous pouvez tenir un MTG de plus de 30 minutes par participation obligatoire au bureau pendant l'heure prévue.
Vous pouvez tenir un MTG de plus de 30 minutes par participation obligatoire au bureau pendant l'heure prévue.
Vous pouvez tenir un MTG de plus de 30 minutes par participation obligatoire au bureau pendant l'heure prévue.
Il est possible de tenir un MTG de 30 minutes ou moins sur participation obligatoire par conférence téléphonique en dehors des heures régulières.
Vous pouvez tenir un MTG de plus de 30 minutes par participation obligatoire au bureau pendant l'heure prévue.
Il existe plusieurs solutions qui se chevauchent, mais toutes ont pu extraire des solutions qui satisfont aux conditions de contrainte.
Next J'ai essayé de faire fonctionner l'ordinateur quantique pour le moment, mais il y avait beaucoup de choses que je ne comprenais pas, comme la matrice QUBO et le modèle de vieillissement, alors j'aimerais étudier si j'ai le temps. De plus, cette fois, la quantité de données effectuées dans le test était faible, et comme cet ordinateur quantique lui-même était connecté dans le cloud, je ne pouvais pas vraiment ressentir la vitesse de calcul du sujet. Je pense que ce domaine est un domaine qui progresse de jour en jour, alors j'aimerais bien le suivre.
Recommended Posts