Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm schätzen Sie die physikalischen Ressourcen, die zum Berechnen der Energie eines Hamiltonian zur chemischen Genauigkeit von 1 mHa mit dem Azure Quantum Resource Estimator erforderlich sind.
In diesem Tutorial wird Folgendes vermittelt:
- Klonen Sie ein Beispiel-Repository von GitHub.
- Verwenden Sie FCIDUMP-Dateien als Argumentparameter für chemische Modellierungs- und Simulationsanwendungen.
- Führen Sie die Ressourcenschätzung für ein großes Problem aus, bei dem es sich um eine doppelstufige Chemieprobe handelt.
Voraussetzungen
Eine Python-Umgebung mit installiertem Python und Pip.
Die neueste Version von Visual Studio Code (VS Code) mit installierten Azure Quantum Development Kit (QDK) und Python-Erweiterungen .
Die neueste
qdkPython-Bibliothek sowie dienumpyundscipyPakete.python -m pip install --upgrade qdk numpy scipy
Tipp
Sie müssen nicht über ein Azure-Konto verfügen, um den Ressourcen-Estimator auszuführen.
Beschreiben Sie das Problem
In diesem Lernprogramm bewerten Sie die physikalischen Ressourcenschätzungen des in Phys. Rev. Research 3, 033055 (2021) beschriebenen physikalischen Ressourcenschätzungen des Qubitisierungsalgorithmus, der für die chemische Genauigkeit von 1 mHa bereitgestellt wurde.
Der Quantenalgorithmus, der die Energie des Hamiltonischen berechnet, basiert auf der doppelstufigen Qubitisierung. Der Hamiltonian wird in Bezug auf Ein- und Zwei-Elektronen-Integrale in den bereitgestellten FCIDUMP-Dateien (vollständige Konfigurationsinteraktion) beschrieben, die über einen HTTPS-URI verfügbar sind.
Der Qubitization-Ansatz basiert auf der Quantenphasenschätzung, aber anstatt den Standard $U = \exp{(-i H/\alpha)}$ aus der Hamiltonischen Matrix $H$, benötigt man $U = \exp{(-i \sin^{-1} (H/\alpha))}$, die normalerweise mit weniger Ressourcen implementiert werden kann. Mithilfe der Doppelfaktorisierung wird $H$ kompakt durch eine Kombination aus einer sorgfältigen Auswahl von Orbitalen und Komprimierung dargestellt.
Laden des Beispiels in Visual Studio Code
Der Code für dieses Lernprogramm finden Sie im QDK-Beispiel-Repository unter Schätz-/Df-Chemie. Es wird empfohlen, das Repository auf Ihrem lokalen Computer zu klonen, um das Beispiel auszuführen.
Führen Sie zum Klonen des Repositorys den folgenden Befehl aus Ihrem Terminal aus:
git clone https://github.com/microsoft/qdk.git
Auswählen und Übergeben einer FCIDUMP-Datei
In diesem Beispiel wird der Hamiltonian in Bezug auf Ein- und Zwei-Elektronen-Integrale im FCIDUMP-Format beschrieben. Sie können eine der FCIDUMP-Dateien aus der folgenden Tabelle auswählen oder Ihre eigene FCIDUMP-Datei auswählen, die auf Ihrem Computer oder online über einen öffentlich zugänglichen HTTPS-URI verfügbar ist.
| URI | Instanzname | Beschreibung |
|---|---|---|
| https://aka.ms/fcidump/XVIII-cas4-fb-64e-56o | XVIII-cas4-fb-64e56o | 64 Elektronen, 56 orbitales aktives Raum eines der stabilen Zwischenstufen im Ruthenium-katalysierten Kohlenstoff-Fixierungszyklus. |
| https://aka.ms/fcidump/nitrogenase-54e-54o | nitrogenase_54orbital | 54 Elektronen, 54 orbitales aktives Raum des aktiven Kerns der Stickstoffase. |
| https://aka.ms/fcidump/fe2s2-10e-40o | fe2s2-10e-40o | 10 Elektronen, 40 orbital aktiver Raum des [2Fe, 2S]-Clusters. |
| https://aka.ms/fcidump/polyyne-24e-24o | polyyne-24e-24o | 24 Elektronen, 24 orbitales aktives Raum des Polyyne-Moleküls. |
| https://aka.ms/fcidump/n2-10e-8o | n2-10e-8o | 10 Elektronen, 8 orbitales aktives Raum von ihm dissoziierte Stickstoff bei 3 Angstrom Entfernung. |
Um die FCIDUMP-Datei zu übergeben, müssen Sie die chemistry.py Datei ausführen. Übergeben Sie den FCIDUMP-Dateinamen oder URI als Argument, indem Sie entweder -f oder --fcidumpfile verwenden.
usage: chemistry.py [-h] [-f FCIDUMPFILE]
options:
-h, --help
-f FCIDUMPFILE, --fcidumpfile FCIDUMPFILE
Ausführen des Chemiebeispiels
Öffnen Sie in Visual Studio Code den Ordner, in dem Sie das QDK-Beispiel-Repository geklont haben.
Öffnen Sie ein neues Terminal, Terminal -> Neues Terminal, und navigieren Sie zu dem Verzeichnis, in dem sich die Quantenchemie-Probe befindet. Wenn Sie beispielsweise das QDK-Beispiel-Repository auf Ihrem lokalen Computer klonen, lautet der Pfad
qdk/samples/estimation/df-chemistry.Führen Sie die chemistry.py Datei aus, und übergeben Sie die FCIDUMP-Datei. Beispielsweise lädt der folgende Befehl die FCIDUMP-Datei
n2-10e-8oin den Arbeitsordner herunter und führt die Ressourcenschätzung dafür aus.python chemistry.py -f https://aka.ms/fcidump/n2-10e-8oDanach können Sie stattdessen den Pfad zur heruntergeladenen Datei an das Skript übergeben.
python chemistry.py -f n2-10e-8oDas Ergebnis der Ressourcenschätzung wird im Terminal angezeigt. Die folgende Ausgabe zeigt beispielsweise die Ressourcenschätzung für die
n2-10e-8oFCIDUMP-Datei.Algorithm runtime: 19 mins Number of physical qubits required: 207.60k For more detailed resource counts, see file resource_estimate.json
Hinweis
Nachdem Sie die chemistry.py Datei ausgeführt haben, wird eine resource_estimation.json Datei im Arbeitsordner erstellt. Die resource_estimation.json Datei enthält die detaillierte Ausgabe des Ressourcenstimators, z. B. die Auftragsparameter, physische Anzahlen, T-Factoryeigenschaften, logische Zählungen und logische Qubit-Eigenschaften.
Ändern von target Parametern
Öffnen Sie die Datei
chemistry.py.Die target Parameter der Ressourcenschätzung sind im Aufruf zu
qsharp.estimatederchemistry.pyDatei zu finden. Der folgende Codeausschnitt zeigt die in diesem Lernprogramm verwendeten Parameter.# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.01, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})Wenn Sie die target Parameter ändern möchten, ändern Sie den vorherigen Codeausschnitt. Der folgende Codeausschnitt zeigt beispielsweise, wie das Fehlerbudget in 0,333 geändert wird. Weitere Informationen finden Sie unter Anpassen der target Parameter des Ressourcenstimators.
# Get resource estimates res = qsharp.estimate(qsharp_string, params={"errorBudget": 0.333, "qubitParams": {"name": "qubit_maj_ns_e6"}, "qecScheme": {"name": "floquet_code"}})
Warum Chemieanwendungen des Quantencomputings wichtig sind
Dieses Lernprogramm stellt einen ersten Schritt dar, um die Ressourcenschätzung von Quantenlösungen in elektronische Strukturprobleme zu integrieren. Einer der wichtigsten Anwendungen skalierter Quantencomputer ist die Lösung von Quantenchemieproblemen. Die Simulation komplexer quantenmechanischer Systeme hat das Potenzial, Durchbrüche in Bereichen wie Kohlenstoffabscheidung, Lebensmittelunsicherheit und Entwicklung besserer Brennstoffe und Materialien zu entsperren.
Beispielsweise beschreibt eine der FCIDUMP-Dateien, die in dieser Stichprobe enthalten sind, nitrogenase_54orbitaldas Stickstoffaseenzym. Wenn Sie genau simulieren könnten, wie dieses Enzym auf Quantenebene funktioniert, könnte es uns helfen, zu verstehen, wie es im Maßstab produziert wird. Sie könnten den hoch energieintensiven Prozess ersetzen, der verwendet wird, um genug Düngemittel zu produzieren, um den Planeten zu füttern. Dies hat das Potenzial, den globalen Co2-Fußabdruck zu reduzieren und auch die Bedenken hinsichtlich der Ernährungsunsicherheit in einer wachsenden Bevölkerung zu beheben.
Wenn Sie Ihr Wissen vertiefen möchten, finden Sie hier einige Experimente, die Sie ausprobieren können:
- Schätzen Sie einige benutzerdefinierte FCIDUMP-Dateien.
- Ändern Sie die Annahmen auf dem target Quantencomputer, indem Sie benutzerdefinierte Qubit-Parameter bereitstellen.
Zugehöriger Inhalt
- Das Lernprogramm Implement Grovers Suchalgorithmus zeigt, wie Sie ein Q#-Programm schreiben, das den Suchalgorithmus von Grover verwendet, um ein Diagrammfarbproblem zu lösen.
- Das Lernprogramm "Schreiben und Simulieren von Qubit-Level-Programmen in Q# " untersucht, wie Sie ein Q#-Programm schreiben, das bestimmte Qubits direkt adressiert.
- Das Lernprogramm "Erkunden der Quantenanglementierung mit Q#" zeigt, wie Sie mit Q# auf Qubits arbeiten, um ihren Zustand zu ändern, und zeigt die Auswirkungen von Superposition und Veranglement.
- Die Quantum Katas sind Jupyter Notebook-basierte, selbstgesteuerte Lernprogramme und Programmierübungen, die darauf abzielen, die Elemente der Quantencomputing- und Q#-Programmierung gleichzeitig zu unterrichten.