Share via


Tutorial: Schätzen der Ressourcen eines Quantenchemieproblems

In diesem Tutorial wird gezeigt, wie Sie die physischen Ressourcen schätzen, die erforderlich sind, um die Energie eines Hamiltonianers mit einer chemischen Genauigkeit von 1 mHa mithilfe des Azure Quantum Resource Estimators zu berechnen.

Hinweis

Das Microsoft Quantum Development Kit (Classic QDK) wird nach dem 30. Juni 2024 nicht mehr unterstützt. Wenn Sie bereits QDK-Entwickler sind, empfehlen wir Ihnen, zum neuen Azure Quantum Development Kit (Modern QDK) umzusteigen, um die Entwicklung von Quantenlösungen fortzusetzen. Weitere Informationen finden Sie unter Migrieren Ihres Q#-Codes zum modernen QDK.

In diesem Lernprogramm lernen Sie Folgendes:

  • Klonen Sie ein Beispielrepository von GitHub.
  • Verwenden Sie FCIDUMP-Dateien als Argumentparameter für chemische Modellierungs- und Simulationsanwendungen.
  • Führen Sie die Ressourcenschätzung für ein groß angelegtes Problem aus, bei dem es sich um ein doppelt factorisiertes Chemiebeispiel handelt.

Voraussetzungen

Tipp

Sie benötigen kein Azure-Konto, um den lokalen Ressourcenstimator auszuführen.

Beschreiben Sie das Problem

In diesem Tutorial werten Sie die physikalischen Ressourcenschätzungen des Qubitisierungsalgorithmus aus, die in Phys. Rev. Research 3, 033055 (2021) beschrieben sind, um die Energie eines Benutzers zu berechnen, der Hamiltonian zur chemischen Genauigkeit von 1 mHa bereitgestellt hat.

Der Quantenalgorithmus, der die Energie des Hamilton-Schen berechnet, basiert auf der doppelt factorisierten Qubitisierung. Das Hamilton-Element wird in Bezug auf Ein- und Zwei-Elektronen-Integrale in bereitgestellten FCIDUMP-Dateien (Vollständige Konfigurationsinteraktion) beschrieben, die über einen HTTPS-URI verfügbar sind.

Der Qubitisierungsansatz basiert auf der Quantenphasenschätzung, aber anstatt den Standard $U = \exp{(-i H/\alpha)}$ aus der Hamilton-Matrix $H$zu konstruieren, nimmt man $U = \exp{(-i \sin^{-1} (H/\alpha))}$, die in der Regel mit weniger Ressourcen implementiert werden kann. Durch die Doppelfaktorisierung wird $H$ kompakt durch eine Kombination aus einer vernünftigen Auswahl von Orbitalen und Komprimierung dargestellt.

Laden des Beispiels in Visual Studio Code

Den Code für dieses Tutorial finden Sie im Q#-Beispielrepository unter schätzung/df-chemistry. Es wird empfohlen, das Repository auf Ihrem lokalen Computer zu klonen, um das Beispiel auszuführen.

Führen Sie den folgenden Befehl in Ihrem Terminal aus, um das Repository zu klonen:

git clone https://github.com/microsoft/qsharp.git

Auswählen und Übergeben einer FCIDUMP-Datei

In diesem Beispiel wird das Hamilton-Element in Form von Ein- und Zwei-Elektronen-Integralen 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 Orbital-Aktivraum eines der stabilen Zwischenprodukte im Ruthenium-katalysierten Kohlenstofffixierungszyklus.
https://aka.ms/fcidump/nitrogenase-54e-54o nitrogenase_54orbital 54 Elektron, 54 orbital aktiver Raum des aktiven Kerns der Stickstoffase.
https://aka.ms/fcidump/fe2s2-10e-40o fe2s2-10e-40o 10 Elektron, 40 orbitaler aktiver Raum von [2Fe, 2S] Cluster.
https://aka.ms/fcidump/polyyne-24e-24o polyyne-24e-24o 24 Elektron, 24 orbital aktiver Raum des polynynen Moleküls.
https://aka.ms/fcidump/n2-10e-8o n2-10e-8o 10 Elektron, 8 orbital aktiver Raum von er dissoziierte Stickstoff in 3 Angstrom Entfernung.

Um die FCIDUMP-Datei zu übergeben, müssen Sie die chemistry.py-Datei ausführen und den FCIDUMP-Dateinamen oder den URI als Argument übergeben, indem Sie entweder -f oder verwenden --fcidumpfile.

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 Q#-Beispielrepository geklont haben.

  2. Öffnen Sie ein neues Terminal, Terminal –> Neues Terminal, und navigieren Sie zu dem Verzeichnis, in dem sich das Quantenchemiebeispiel befindet. Wenn Sie beispielsweise das Q#-Beispielrepository auf Ihrem lokalen Computer klonen, lautet qsharp/samples/estimation/df-chemistryder Pfad .

  3. Führen Sie die chemistry.py-Datei aus, und übergeben Sie die FCIDUMP-Datei. Der folgende Befehl lädt beispielsweise 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 FCIDUMP-Datei n2-10e-8o .

    Algorithm runtime: 19 mins
    Number of physical qubits required: 207.60k
    For more detailed resource counts, see file resource_estimate.json
    

Hinweis

Nach dem Ausführen der chemistry.py-Datei wird eine resource_estimation.json-Datei im Arbeitsordner erstellt. Die resource_estimation.json-Datei enthält die detaillierte Ausgabe des Resource Estimators. Dies sind die Auftragsparameter, physische Anzahlen, T Factory-Eigenschaften, logische Anzahlen und logische Qubiteigenschaften.

Parameter ändern target

  1. Öffnen Sie die datei chemistry.py .

  2. Die target Parameter der Ressourcenschätzung finden Sie im Aufruf qsharp.estimate der chemistry.py-Datei. Der folgende Codeausschnitt zeigt die in diesem Tutorial 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 Parameter ändern möchten, können Sie dies target tun, indem Sie den vorherigen Codeausschnitt ändern. Der folgende Codeausschnitt zeigt beispielsweise, wie das Fehlerbudget in 0,333 geändert wird. Weitere Informationen finden Sie unter Anpassen der target Parameter des Resource Estimators.

    # Get resource estimates
    res = qsharp.estimate(qsharp_string,
                          params={"errorBudget": 0.333,
                                  "qubitParams": {"name": "qubit_maj_ns_e6"},
                                  "qecScheme": {"name": "floquet_code"}})
    

Warum sind chemische Anwendungen des Quantencomputings wichtig?

Dieses Tutorial stellt einen ersten Schritt zur Integration der Ressourcenschätzung von Quantenlösungen in elektronische Strukturprobleme dar. Eine der wichtigsten Anwendungen von skalierten Quantencomputern ist die Lösung von Quantenchemieproblemen. Die Simulation komplexer quanten-mechanischer Systeme hat das Potenzial, Durchbrüche in Bereichen wie Kohlenstoffabscheidung, Ernährungsunsicherheit und entwicklung besserer Brennstoffe und Materialien zu erzielen.

Beispielsweise beschreibt eine der in diesem Beispiel bereitgestellten FCIDUMP-Dateien , nitrogenase_54orbital, das Enzym Nitrogenase. Wenn Sie genau simulieren könnten, wie dieses Enzym auf Quantenebene funktioniert, könnte es uns helfen, zu verstehen, wie es im großen Stil produziert werden kann. Sie könnten den hoch energieintensiven Prozess ersetzen, der verwendet wird, um genug Dünger zu produzieren, um den Planeten zu ernähren. Dies hat das Potenzial, den globalen CO2-Fußabdruck zu verringern und auch dazu beizutragen, Bedenken hinsichtlich der Ernährungsunsicherheit in einer wachsenden Bevölkerung auszuräumen.

Nächste Schritte

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 Qubitparameter bereitstellen.
  • Sehen Sie sich die anderen Beispielnotizbücher für die Ressourcenschätzung im Azure Quantum-Beispielkatalog an.

Machen Sie sich im Anschluss mit anderen Quantenalgorithmen und -techniken vertraut: