Freigeben über


Lernprogramm: Schätzen der Ressourcen eines Quantenchemieproblems

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

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

  1. Öffnen Sie in Visual Studio Code den Ordner, in dem Sie das QDK-Beispiel-Repository geklont haben.

  2. Ö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.

  3. 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-8o in den Arbeitsordner herunter und führt die Ressourcenschätzung dafür aus.

    python chemistry.py -f https://aka.ms/fcidump/n2-10e-8o
    

    Danach können Sie stattdessen den Pfad zur heruntergeladenen Datei an das Skript übergeben.

    python chemistry.py -f n2-10e-8o
    
  4. Das Ergebnis der Ressourcenschätzung wird im Terminal angezeigt. Die folgende Ausgabe zeigt beispielsweise die Ressourcenschätzung für die n2-10e-8o FCIDUMP-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

  1. Öffnen Sie die Datei chemistry.py .

  2. Die target Parameter der Ressourcenschätzung sind im Aufruf zu qsharp.estimate der chemistry.py Datei 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"}})
    
  3. 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.