Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous estimez les ressources physiques requises pour calculer l’énergie d’un hamiltonien à une précision chimique de 1 mHa à l’aide de l’estimateur de ressources Azure Quantum.
Ce didacticiel présente les procédures suivantes :
- Clonez un exemple de référentiel à partir de GitHub.
- Utilisez les fichiers FCIDUMP comme paramètres d’argument pour la modélisation chimique et les applications de simulation.
- Exécutez l’estimation des ressources pour un problème à grande échelle, qui est un échantillon de chimie double factorisé.
Prérequis
Un environnement Python avec Python et Pip installés.
La dernière version de Visual Studio Code (VS Code) avec le Kit de développement Azure Quantum (QDK) et les extensions Python installées.
La dernière bibliothèque Python
qdk, ainsi que les packagesnumpyetscipy.python -m pip install --upgrade qdk numpy scipy
Conseil
Vous n’avez pas besoin d’un compte Azure pour exécuter l’estimateur de ressources.
Décrire le problème
Dans ce tutoriel, vous évaluez les estimations des ressources physiques de l’algorithme de qubitisation décrit dans Phys. Rev. Research 3, 033055 (2021) pour calculer l’énergie d’un utilisateur hamiltonien fourni à la précision chimique de 1 mHa.
L’algorithme quantique qui calcule l’énergie du hamiltonien est basé sur la qubitisation double factorisée. Le hamiltonien est décrit en termes d’intégrales d’un et deux électrons dans les fichiers FCIDUMP (interaction de configuration complète) fournis qui sont disponibles via un URI HTTPS.
L’approche de qubitisation est basée sur l’estimation de phase quantique, mais au lieu de construire l'$U standard = \exp{(-i H/\alpha)}$ à partir de la matrice hamiltonienne $H$, on prend $U = \exp{(-i \sin^{-1} (H/\alpha))}$, qui peut généralement être implémenté avec moins de ressources. À l’aide de la double factorisation, $H$ est représentée de manière compacte par une combinaison d’un choix judicieux d’orbitales et de compression.
Charger l’exemple dans Visual Studio Code
Le code de ce didacticiel se trouve dans l’exemple de référentiel QDK, sous estimation/df-chimie. Nous vous recommandons de cloner le référentiel sur votre ordinateur local pour exécuter l’exemple.
Pour cloner le référentiel, exécutez la commande suivante à partir de votre terminal :
git clone https://github.com/microsoft/qdk.git
Sélectionner et passer un fichier FCIDUMP
Dans cet exemple, le hamiltonien est décrit en termes d’intégrales à un et deux électrons au format FCIDUMP. Vous pouvez choisir l’un des fichiers FCIDUMP dans le tableau suivant ou sélectionner votre propre fichier FCIDUMP disponible sur votre ordinateur ou en ligne via un URI HTTPS accessible publiquement.
| URI | Nom de l’instance | Description |
|---|---|---|
| https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XXX-cas4-fb-64e56o | 64 électrons, 56 espace actif orbital de l’un des intermédiaires stables dans le cycle de fixation du carbone catalyzé de ruthénium. |
| https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 électrons, 54 espace actif orbital du cœur actif de l’azote. |
| https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 électrons, 40 espace actif orbital du cluster [2Fe, 2S]. |
| https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 électrons, 24 espace actif orbital de la molécule polyyne. |
| https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 électrons, 8 espace actif orbital de l’azote dissocié à 3 distance Angstrom. |
Pour fournir le fichier FCIDUMP, vous devez exécuter le fichier chemistry.py et passer le nom de fichier ou l’URI FCIDUMP en tant qu’argument à l’aide de -f ou --fcidumpfile.
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
Exécuter l’exemple de chimie
Dans Visual Studio Code, ouvrez le dossier dans lequel vous avez cloné l’exemple de référentiel QDK.
Ouvrez un nouveau terminal, Terminal -> Nouveau terminal, puis accédez au répertoire où se trouve l’exemple de chimie quantique. Par exemple, si vous clonez l’exemple de référentiel QDK sur votre ordinateur local, le chemin est
qdk/samples/estimation/df-chemistry.Exécutez le fichier chemistry.py et transmettez le fichier FCIDUMP. Par exemple, la commande suivante télécharge le fichier
n2-10e-8oFCIDUMP dans le dossier de travail et exécute l’estimation des ressources pour celle-ci.python chemistry.py -f https://aka.ms/fcidump/n2-10e-8oAprès cela, vous pouvez passer le chemin d’accès au fichier téléchargé au script à la place.
python chemistry.py -f n2-10e-8oLe résultat de l’estimation des ressources s’affiche dans le terminal. Par exemple, la sortie suivante montre l’estimation des ressources pour le
n2-10e-8ofichier FCIDUMP.Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Remarque
Une fois le chemistry.py fichier exécuté, un resource_estimation.json fichier est créé dans le dossier de travail. Le resource_estimation.json fichier contient la sortie détaillée de l’estimateur de ressources, telles que les paramètres de la tâche, les nombres physiques, les propriétés de l'usine T, les nombres logiques et les propriétés des qubits logiques.
Modifier les target paramètres
Ouvrez le fichier
chemistry.py.Les target paramètres de l’estimation des ressources se trouvent dans l’appel à
qsharp.estimatedu fichierchemistry.py. L’extrait de code suivant montre les paramètres utilisés dans ce didacticiel.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})Si vous souhaitez modifier les target paramètres, modifiez l’extrait de code précédent. Par exemple, l’extrait de code suivant montre comment modifier le budget d’erreur sur 0.333. Pour plus d’informations, consultez Personnaliser les target paramètres de l’estimateur de ressources.
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Pourquoi les applications de chimie de l’informatique quantique sont importantes
Ce tutoriel représente une première étape pour intégrer l’estimation des ressources des solutions quantiques aux problèmes de structure électronique. L’une des applications les plus importantes des ordinateurs quantiques mis à l’échelle résout des problèmes de chimie quantique. La simulation de systèmes mécaniques quantiques complexes a le potentiel de déverrouiller des percées dans des domaines tels que la capture de carbone, l’insécurité alimentaire et la conception de meilleurs carburants et matériaux.
Par exemple, l’un des fichiers FCIDUMP fournis dans cet exemple décrit nitrogenase_54orbitall’enzyme d’azote. Si vous pourriez simuler avec précision le fonctionnement de cette enzyme au niveau quantique, cela pourrait nous aider à comprendre comment la produire à grande échelle. Vous pouvez remplacer le processus hautement gourmand en énergie qui est utilisé pour produire suffisamment d’engrais pour nourrir la planète. Cela a le potentiel de réduire l’empreinte carbone mondiale et d’aider à résoudre les préoccupations relatives à l’insécurité alimentaire dans une population croissante.
Si vous souhaitez approfondir vos connaissances, voici quelques expériences que vous pouvez essayer :
- Estimer certains fichiers FCIDUMP personnalisés.
- Modifiez les hypothèses sur l’ordinateur target quantique en fournissant des paramètres qubit personnalisés.
Contenu connexe
- Le tutoriel Implémenter l’algorithme de recherche de Grover montre comment écrire un programme Q# qui utilise l’algorithme de recherche de Grover pour résoudre un problème de coloration de graphique.
- Le tutoriel Écrire et simuler des programmes au niveau qubit dans Q# explore comment écrire un programme Q# qui traite directement des qubits spécifiques.
- Le tutoriel Explorer l’inanglement quantique avec Q# montre comment fonctionner sur des qubits avec Q# pour changer leur état et montre les effets de la superposition et de l’inanglement.
- Les katas quantiques sont des didacticiels et des exercices de programmation basés sur Jupyter Notebook, auto-paced visant à enseigner en même temps les éléments de l’informatique quantique et de la programmation Q#.