Skip to main content
IBM Quantum Platform

Einführung in die Optionen

Mithilfe von Optionen können Sie die „ IBM Quantum “-Primitive an Ihre Anforderungen anpassen.


Struktur

Beim Aufruf der Primitive kannst du Optionen über eine Optionsklasse oder ein Wörterbuch übergeben. Häufig verwendete Optionen, wie z. B. resilience_level, befinden sich auf der ersten Ebene. Weitere Optionen sind in Kategorien zusammengefasst, wie zum Beispiel execution. Geben Sie die Optionen in diesem Format an: options.option.sub-option.sub-sub-option = choice. Beispiel: options.dynamical_decoupling.enable = True.


Standardwerte

Wenn Sie keinen Wert für eine Option angeben, erhält sie den speziellen Wert Unset und es wird der Standardwert des Servers verwendet. Der Standardwert ist also unabhängig von Ihrer Codeversion derselbe.

In den Tabellen im Abschnitt „Übersicht über die Optionsklassen“ im Leitfaden „Optionen“ der einzelnen Primitive sind die Standardwerte aufgeführt.


Optionen festlegen

Optionen können vor der Erstellung einer Primitive definiert und dieser als Instanz der Optionsklasse oder als Wörterbuch übergeben werden. Das Primitiv erstellt eine Kopie davon, was bedeutet, dass Änderungen am ursprünglichen Wörterbuch oder an der Optionsinstanz keinen Einfluss auf die Optionen haben, die dem Primitiv gehören.

Außerdem kannst du die Optionen ändern, nachdem die Primitive erstellt wurde. Verwenden Sie den Workflow, der für Ihre Anwendung am besten geeignet ist.

Hinweise zur Angabe von Primitivoptionen
  • Die verfügbaren Optionen können Sie während oder nach der Initialisierung der Primitive einsehen.
  • Wenn Sie für eine Option keinen Wert angeben, wird ihr der Sonderwert zugewiesen, Unset und es gelten die Standardeinstellungen des Servers.
  • Das options Attribut ist vom dataclass Typ „ Python “. Du kannst die integrierte asdict Methode verwenden, um es in ein Wörterbuch umzuwandeln.

options class

Beim Erstellen einer Instanz der Primitivklasse können Sie eine Instanz der options Klasse übergeben. run() Diese Optionen werden dann angewendet, wenn Sie die Berechnung durchführen. Geben Sie die Optionen in diesem Format an: options.option.sub-option.sub-sub-option = choice. Beispiel: options.dynamical_decoupling.enable = True.

Ausführliche Informationen zum Kurs finden Sie EstimatorOptions unter oder SamplerOptions .

Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator
# from qiskit_ibm_runtime.options import EstimatorOptions

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator
from qiskit_ibm_runtime.options_models import EstimatorOptions

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

options = EstimatorOptions(
    resilience_level=2,
    resilience={"zne_mitigation": True, "zne": {"noise_factors": [1, 3, 5]}},
)

# or...
options = EstimatorOptions()
options.resilience_level = 2
options.resilience.zne_mitigation = True
options.resilience.zne.noise_factors = [1, 3, 5]

estimator = Estimator(mode=backend, options=options)

Wörterbuch

Bei der Initialisierung einer Primitive können Sie Optionen als Wörterbuch angeben.

Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

# Setting options during initialization
estimator = Estimator(
    backend,
    options={
        "resilience_level": 2,
        "resilience": {
            "zne_mitigation": True,
            "zne": {"noise_factors": [1, 3, 5]},
        },
    },
)

Optionen nach der Initialisierung aktualisieren

Sie können die Optionen in diesem Format angeben: _primitive_.options.option.sub-option.sub-sub-option = choice , um die Autovervollständigung zu nutzen, oder die update() -Methode verwenden, um Massenaktualisierungen vorzunehmen.

Die Optionsklasse des Primitivs (EstimatorOptions oder SamplerOptions) muss nicht instanziiert werden, wenn Sie die Optionen erst nach der Initialisierung des Primitivs festlegen.

Im folgenden Beispiel wird die Primitive „Estimator“ verwendet, die Syntax für andere Primitive ist jedoch ähnlich.

from qiskit_ibm_runtime import QiskitRuntimeService

# Legacy server-side primitive before qiskit-ibm-runtime 0.50.0
# from qiskit_ibm_runtime import Estimator

# Client-side primitive introduced in qiskit-ibm-runtime 0.50.0
from qiskit_ibm_runtime.executor_estimator import Estimator

service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)

estimator = Estimator(mode=backend)

# Setting options after initialization
# This uses auto-complete.
estimator.options.default_precision = 0.01
# This does bulk update.
estimator.options.update(
    default_precision=0.02, resilience={"zne_mitigation": True}
)

Nächste Schritte

Empfehlungen
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.