Skip to main content
IBM Quantum Platform

Qunova HI-VQE Chemistry API-Referenz

  • Qiskit Functions

    Qiskit Functions — von Partnerorganisationen entwickelte vorgefertigte Tools — abstrahieren Teile des Softwareentwicklungs-Workflows, um die Erforschung von Algorithmen und die Anwendungsentwicklung im großen Maßstab zu vereinfachen und zu beschleunigen. Klicken Sie hier, um die Anleitung zu dieser Qiskit-Funktion anzuzeigen.


Eingaben

geometry

Typ: `Union[List[List[Union[str, Tuple[float, float, float]]]], str]`

Dies kann entweder eine Zeichenkette oder eine strukturierte Liste sein, die Atom- und Koordinatenpaare enthält. Wenn dies als Zeichenfolge angegeben wird, muss es sich um eine Molekülgeometrie im kartesischen Koordinatenformat handeln. Wenn dies als Liste angegeben wird, sollte es sich um eine Liste von Listen handeln, die jeweils eine Zeichenkette und ein Koordinatentupel enthalten.

  • Erforderlich: Ja
  • Beispiel: [['O', (0, 0, 0)], ['H', (0, 1, 0)], ['H', (0, 0, 1)]] oder "O 0 0 0; H 0 1 0; H 0 0 1"

backend_name

Typ: `str`

Name des Backends, über das die Abfrage ausgeführt werden soll.

  • Erforderlich: Ja
  • Beispiel: ibm_fez

max_states

Typ: `int`

Die maximale Unterraumdimension für die Diagonalisierung. Es werden weniger Zustände verwendet, wenn die Zahl kein perfektes Quadrat ist.

  • Erforderlich: Ja
  • Beispiel: 100

max_expansion_states

Typ: `int`

Die maximale Anzahl klassisch generierter CI-Zustände, die in jede Iteration aufgenommen werden sollen.

  • Erforderlich: Ja
  • Beispiel: 10

molecule_options

Typ: `dict`

Optionen bezüglich des Moleküls, das als Eingabe für HI-VQE verwendet wird. Die folgende Liste enthält alle Schlüssel und Werte, die im molecule_options Wörterbuch festgelegt werden können, sowie deren Datentypen und Standardwerte. Alle Angaben sind freiwillig.

charge

Typ: `int`

Standardwert: `0`

Eine ganze Zahl, die die gesamte Nettoladung des molekularen Systems angibt. Der Standardwert ist 0; es kann jedoch jede beliebige ganze Zahl sein.

  • Gültigkeitsbereich: Verschiedene

basis

Typ: `str`

Standardwert: `'sto-3g'`

Eine Zeichenkette, die den Basistyp angibt; diese wird an pyscf übergeben. Zum Beispiel: "sto-3g", "3-21g", "6-31g", "cc-pvdz"

  • Gültigkeitsbereich: Verschiedene

active_orbitals

Typ: `List[int]`

Standardwert: Every orbital index

Eine Liste der aktiven Orbitalindizes im Intervall [0, n), wobei n die Anzahl der in der Aufgabe verwendeten Qubits ist. Wenn dies angegeben wird, muss auch das Argument „frozen_orbitals“ angegeben werden.

  • Gültigkeitsbereich: Die für die Aufgabe gültigen räumlichen Orbitalindizes

frozen_orbitals

Typ: `List[int]`

Standardwert: `No indices`

Eine Liste von festgelegten Orbitalindizes im gleichen Bereich wie active_orbitals. Falls angegeben, muss auch active\_orbitals angegeben werden. Beachten Sie, dass nur besetzte Orbitalen eingefroren werden sollten, da sich die Anzahl der aktiven Elektronen für jedes eingefrorene besetzte Orbital um 2 verringert.

  • Gültiger Bereich: Die für das Problem gültigen räumlichen Orbitalindizes, ausgenommen aktive Orbitale

orbital_coeffs

Typ: `List[List[float]]`

Standardwert: `Hartree-Fock molecular orbitals`

Die Koeffizienten für die räumlichen Orbitalen, die bei der Berechnung der elektronischen Abstoßungsintegrale für das System verwendet werden. Einige Beispiele hierfür sind Hartree-Fock-Molekülorbitale, natürliche Orbitale und AVAS-Orbitale.

  • Gültigkeitsbereich: Verschiedene

symmetry

Typ: `Union[str, bool]`

Standardwert: `False`

Wird verwendet, um die Punktgruppensymmetrie für die anfänglichen Molekülberechnungen heranzuziehen und so die symmetrieangepasste Orbitalbasis zu erstellen. Diese symmetrieangepassten Orbitale werden als Basisfunktionen für die folgenden SCF-Berechnungen verwendet. Der Standardwert ist „False“; wird er auf „True“ gesetzt, wird die Funktion aufgerufen und beliebige Punktgruppen werden automatisch erkannt und verwendet. Wird eine bestimmte Symmetrie zugewiesen, beispielsweise symmetry = „Dooh“, wird ein Fehler ausgelöst, wenn die Molekülgeometrie nicht dieser geforderten Symmetrie entspricht.

  • Gültiger Bereich: True oder False

symmetry_subgroup

Typ: `Optional[str]`

Standardwert: `None`

Kann verwendet werden, um eine Untergruppe der erkannten Symmetrie zu erzeugen. Dies hat keine Auswirkung, wenn die Symmetrie über das Schlüsselwortargument „symmetry“ festgelegt wird.

unit

Typ: `str`

Standardwert: `angstrom`

Legt die Maßeinheit fest, die für Atomkoordinaten und Abstände verwendet werden soll. Standardmäßig werden Angström-Einheiten verwendet.

nucmod

Typ: `Optional[Union[dict, str]]`

Standardwert: `None`

Legt das zu verwendende Kernmodell fest. Standardmäßig wird das Punktkernmodell verwendet; durch andere Werte wird das Gaußsche Kernmodell aktiviert. Wird eine Funktion angegeben, wird diese in Verbindung mit dem Gaußschen Kernmodell verwendet, um den Wert der Kernladungsverteilung „zeta“ zu berechnen.

pseudo

Typ: `Optional[Union[dict, str]]`

Standardwert: `None`

Gibt das Pseudopotential für die Atome im Molekül an. Standardmäßig ist hier „None“ eingestellt, was bedeutet, dass keine Pseudopotentiale angewendet werden und alle Elektronen explizit in die Berechnungen einbezogen werden.

cart

Typ: `bool`

Standardwert: `False`

Gibt an, ob bei der Berechnung kartesische GTOs als Basisfunktionen für den Drehimpuls verwendet werden sollen. Der Standardwert „False“ bewirkt die Verwendung sphärischer GTOs.

magmom

Typ: `(`Optional[List[Union[int, float]]]`

Standardwert: `1_000`

Legt das kolineare magnetische Spinmoment jedes Atoms fest. Standardmäßig ist dies „None“, und jedes Atom wird mit einem Spin von Null initialisiert.

avas_aolabels

Typ: `Optional[List[str]]`

Standardwert: `None`

Hiermit wird der Atomorbital zur Einbeziehung in das AVAS-Schema definiert. Siehe AVAS-Dokumentation.

  • Gültiger Bereich: z. B. [„H 1s “], „O 2p “ für H 2_2 O

avas_threshold

Typ: `float`

Standardwert: `0.2`

Hiermit wird der Schwellenwert festgelegt, anhand dessen bestimmt wird, welche atomaren Orbitalen (AOs) im aktiven Raum beibehalten werden.

  • Gültiger Bereich: Zwischen 0.0 und 2.0

noons_level

Typ: `Optional[str]`

Standardwert: `None`

Dies definiert den theoretischen Ansatz zur Erstellung natürlicher Orbitale und zur Auswahl aktiver Orbitale auf der Grundlage des NOON-Schemas (Natural Orbital Occupation Numbers). Siehe die Dokumentation zu NOON. Sowohl die aktiven als auch die eingefrorenen Orbitalindizes müssen angegeben werden, um die Anzahl der Orbitale (und die Anzahl der Qubits) zu steuern.

  • Gültiger Bereich: "mp2" oder "ccsd"
  • Erforderlich: Nein
  • Beispiel: {"basis": "sto3g", "unit": "angstrom" }

hivqe_options

Typ: `dict`

Optionen zur Steuerung des Verhaltens des HI-VQE-Algorithmus. Die folgende Liste enthält alle Schlüssel und Werte, die im hivqe_options Wörterbuch festgelegt werden können, sowie deren Datentypen und Standardwerte. Alle Angaben sind freiwillig.

shots

Typ: `int`

Standardwert: `1_000`

Anzahl der Schüsse, die pro Iteration auf dem Quanten-Gerät verwendet werden sollen.

  • Gültiger Bereich: Zwischen 1 und 10 000

max_iter

Typ: `int`

Standardwert: `25`

Die maximale Anzahl von Iterationen, die zur Optimierung des Ansatzes durchgeführt werden sollen. Der Algorithmus benötigt möglicherweise weniger Iterationen, wenn die Konvergenz frühzeitig erreicht wird.

  • Gültiger Bereich: Zwischen 1 und 50

initial_basis_states

Typ: `List[str]`

Standardwert: The Hartree-Fock state

Kann verwendet werden, um den Algorithmus mit klassischen Zuständen aus einem früheren Ergebnis neu zu starten.

  • Gültiger Bereich: Binärzeichenfolgen, deren Bitanzahl der für das Problem erforderlichen Anzahl an Qubits entspricht.

ansatz

Typ: `str`

Standardwert: `epa`

Hiermit wird der zu optimierende Quantenansatz zur Erzeugung neuer Zustände festgelegt. "epa" wählt den ansatz zur Erhaltung der Anregung. "hea" wählt den hardwareeffizienten Ansatz. "lucj" wählt den lokalen unitaren Cluster-Jastrow-Ansatz aus.

  • Gültiger Bereich: "epa", "hea", oder "lucj"

convergence_count

Typ: `int`

Standardwert: `3`

Die Anzahl der Iterationen, bei denen sich die berechnete Energie nicht wesentlich ändert und die verstreichen müssen, bevor davon ausgegangen wird, dass der Algorithmus konvergiert ist.

  • Mindestens 2

convergence_abstol

Typ: `float`

Standardwert: `1e-4`

Die Größe der Änderung der berechneten Energie, die für die Zwecke der Konvergenzprüfung als signifikant angesehen wird.

  • Gültiger Bereich: größer als 0 und höchstens 1

reset_convergence_count

Typ: `bool`

Standardwert: `True`

Damit die convergence_count Iterationen als Truekonvergierend gelten, dürfen sie ohne eine unterbrechende wesentliche Änderung ablaufen. Wenn False, dann bricht der Algorithmus nach ab convergence_count , sofern während des Optimierungsprozesses bei irgendeiner Iteration nur unwesentliche Änderungen aufgetreten sind.

  • Gültiger Bereich: True oder False

configuration_recovery

Typ: `bool`

Standardwert: `True`

Ob die Konfiguration recovery aus dem qiskit-addon-sqd Paket verwendet werden soll oder nicht. Wenn „True“, werden die vom Quantenbauelement erfassten ungültigen Zustände klassisch korrigiert. Ist der Wert „False“, werden sie verworfen.

  • Gültiger Bereich: True oder False

ansatz_entanglement

Typ: `str`

Standardwert: `circular`

Hiermit wird das Verschränkungsschema festgelegt, das innerhalb des Quantenschaltkreises verwendet werden soll, wobei die gängigen Konventionen von Qiskit und ffsim für den LUCJ-Ansatz befolgt werden.

  • Gültiger Bereich: Eine der folgenden Zahlen: "reverse_linear"``"linear", "pairwise", "circular", "full",, oder "sca". Wenn man den "lucj" Ansatz verwendet, "lucj_default" ist dies ebenfalls eine Option.

ansatz_reps

Typ: `int`

Standardwert: `2`

Die Anzahl der Wiederholungen jeder Schicht im Quantenkreis.

  • Gültiger Bereich: Größer als 0

amplitude_screening_tolerance

Typ: `Union[float,int]`

Standardwert: `0`

Der Toleranzwert, anhand dessen entschieden wird, welche Zustände nach der Diagonalisierung aus dem Unterraum herausgefiltert werden sollen. Es legt den Einbeziehungsschwellenwert für die Unterraumzustände auf der Grundlage ihrer berechneten Amplituden fest.

  • Gültiger Bereich: Mindestens 0 und kleiner als 1

overlap_screening_tolerance

Typ: `float`

Standardwert: `1e-2`

Die Toleranz zur Vorhersage, welche Zustände vor der Diagonalisierung aus dem Unterraum herausgefiltert werden sollen. Er bestimmt die Genauigkeit der vorhergesagten Amplituden für jeden Zustand, wobei ein kleinerer Wert zu genaueren Vorhersagen führt.

  • Gültiger Bereich: zwischen 1e-4 und 1e-1, einschließlich
  • Erforderlich: Nein
  • Beispiel: {"shots": 10_000, "max_iter": 10 }

Ausgaben

Die Funktion gibt ein Wörterbuch mit vier Schlüsseln und Werten zurück. Die Schlüssel und Werte sind in der folgenden Tabelle aufgeführt:

Schlüssel
Werttyp
Erläuterung
"energy"floatDie ungefähre Grundzustandsenergie des Moleküls.
"states"List[str]Die ausgewählten Determinanten, die den Unterraum bilden, der zur Bestimmung der Energie herangezogen wird. Sie sind im abwechselnden Alpha-Beta-Format angeordnet.
"eigenvector"List[float]Der Eigenvektor, der dem Grundzustand des aus "states"… bestehenden Unterraums entspricht.
"energy_variance"floatDie Energievariation des Grundzustands des aus bestehenden "states" Unterraums, die Aufschluss über die Qualität der Lösung gibt. Dieser Wert ist nicht negativ, und ein niedrigerer Wert bedeutet, dass der Grundzustand des Unterraums einem Eigenzustand des Hamilton-Operators des Systems näher kommt.
"energy_history"List[float]Die Energien, die bei jeder Iteration während des hybriden Optimierungsprozesses berechnet wurden, in derselben Reihenfolge, in der sie berechnet wurden. Im Rahmen des SPSA-Optimierungsprozesses werden pro Iteration zwei Energiewerte berechnet.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.