Skip to main content
IBM Quantum Platform

Parity Twine Optimizer – 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

In der folgenden Liste finden Sie alle Eingabeparameter, die diese API akzeptiert.

problem

Typ: dict[str, float]

Die zu lösende Kostenfunktion. Die Schlüssel des Wörterbuchs entsprechen den Qubit-Bezeichnungen, die Werte den Koeffizienten.

  • Erforderlich: Ja
  • Beispiel: {"()": 3, "(0,)": 1, "(0, 1)": 2, "(1, 2)": -1}

variable_type

Typ: str

Unabhängig davon, ob die Variablen vom Typ spin ( s∈{−1,1}s \in \{-1, 1\} ) oder binary ( x∈{0,1}x \in \{0, 1\} ) sind.

  • Erforderlich: Ja
  • Auswahlmöglichkeiten: spin oder binary

backend_name

Typ: str

Name des zu verwendenden Backends. Sofern nicht anders angegeben, wird das am wenigsten ausgelastete Backend ausgewählt.

  • Erforderlich: Nein
  • Beispiel: ibm_phoenix

problem_type

Typ: str

Standardwert: ""

Gibt die Art des Problems an, um eine spezielle Nachbearbeitung zu ermöglichen. Derzeit wird nur mis (maximale unabhängige Menge) unterstützt. Wenn gesetzt mis ist, wendet der Algorithmus eine spezielle Nachbearbeitung an, die die MIS-Struktur nutzt. Wird das Feld leer gelassen, wird die Standard-Nachbearbeitung angewendet.

  • Erforderlich: Nein
  • Auswahlmöglichkeiten: mis

Optionen

Typ: dict[str, Any]

Eingabeoptionen, darunter die folgenden: (Optional) Die Optionen werden als verschachteltes Wörterbuch angegeben. Hier finden Sie die vollständige Liste der Optionen und ihrer Standardwerte.

  • Erforderlich: Nein
  • Beispiel: {"shots": 1000, "problem_type": "my_problem", "postprocessing_level": 1, "transpile_only": False, "job_tags": ["my_tag"]}

Optionsliste

shots

Typ: int

Standardwert: 100000

Die Anzahl der Aufnahmen, die verwendet werden sollen.

postprocessing_level

Typ: int

Standardwert: 1

Ob man eine klassische Nachbearbeitung durchführen soll oder nicht. Mögliche Werte sind 0 (keine Nachbearbeitung) und 1 (Nachbearbeitung durchführen).

transpile_only

Typ: bool

Standardwert: False

Boolescher Wert, der angibt, ob nur die Transpilierung der Schaltung durchgeführt wird. In diesem Fall werden Schaltkreismetriken zurückgegeben.

job_tags

Typ: list[str]

Standardwert: None

Ein Label zur Identifizierung des Auftrags auf IBM Quantum® Platform.

  • Standardwert: None
  • Beispiel: ["my_job_tag"]

Ausgaben

Die Ausgabe dieser API ist ein Objekt dict , das die Lösung, den Lösungsbitstring, den Zielwert und Metadaten enthält. Wenn das Flag transpile_only gesetzt ist, werden nur die Felder für die Schaltungsmetrik mit Werten gefüllt.

Beispiel:

{
    'solution': {'0': -1, '1': 1, '2': 1}, 
    'objective_value': -1.0,
    'solution_bitstring': '100',
    'metadata': {
        'circuit_metrics': {
            'depth': 23, 
            'gate_count': 200,
            'two_qubit_gate_depth': 4,
            'two_qubit_gate_count': 4,
            'num_qubits': 3,
            'operations': {'delay': 158, 'rz': 18, 'sx': 15, 'cz': 4, 'measure': 3, 'x': 2}
        }, 
        'solver_info': {
            'variable_mapping': {'0': 0, '1': 1, '2': 2},
            'bitstring_distributions': {
                'before_postprocessing': {'011': 3, '001': 1, '110': 1, '111': 3, '101': 1, '010': 1},
                'after_postprocessing': {'011': 4, '100': 6}
            }, 
            'best_parameters': {
                'beta': [-0.46259546391008877],
                'gamma': [0.6181957189727373]
            }
        },
        'resource_usage': {
            'RUNNING: MAPPING': {'CPU_TIME': 15.536},
            'RUNNING: OPTIMIZING_FOR_HARDWARE': {'CPU_TIME': 0.04}, 
            'RUNNING: WAITING_FOR_QPU': {'CPU_TIME': 0.0},
            'RUNNING: EXECUTING_QPU': {'QPU_TIME': 8.945},
            'RUNNING: POST_PROCESSING': {'CPU_TIME': 0.765}
        }
    }
}

Ausgabestruktur

solution

Typ: dict[str, int]

Wert der Lösung. Die Schlüssel entsprechen den in … definierten problem.

  • Beispiel: {'0': -1, '1': 1, '2': 1}

objective_value

Typ: float

Kosten der Lösung. Misst die Qualität der Lösung.

  • Beispiel: -1.0

solution_bitstring

Typ: str

Die Bitfolge, die den niedrigsten Kosten entspricht.

  • Beispiel: '100'

metadata

circuit_metrics

Typ: dict[str, Any]

Informationen zur Twine-Transpilation.

depth

Typ: int

Die Tiefe der Schaltung.

gate_count

Typ: int

Die Anzahl der Gatter in der Schaltung.

two_qubit_gate_depth

Typ: int

Die Schaltungstiefe für zwei Qubits.

two_qubit_gate_count

Typ: int

Die Anzahl der Zwei-Qubit-Schaltungen.

num_qubits

Typ: int

Anzahl der im Schaltkreis aktiven Qubits.

operations

Typ: dict[str, int]

Gattertyp (Schlüssel) und Vorkommen (Wert) im Schaltkreis.

solver_info

Typ: dict[str, Any]

Algorithmische Erkenntnisse

variable_mapping

Typ: dict[str, int]

Die bei der Berechnung verwendete Zuordnung von Variablen zu Qubits.

bitstring_distributions

Typ: dict[str, Any]

Eine Darstellung des Grundzustands und der Häufigkeit, mit der er abgetastet wurde.

before_postprocessing

Typ: dict[str, int]

Verteilung der gemessenen Bitstrings vor der klassischen Nachbearbeitung.

after_postprocessing

Typ: dict[str, int]

Verteilung der gemessenen Bitstrings nach klassischer Nachbearbeitung.

best_parameters

Typ: dict[str, Any]

Optimierte Parameter für das Variationstraining.

beta

Typ: list[float]

Optimierter Variationsparameter Beta.

gamma

Typ: list[float]

Optimierter Variationsparameter Gamma.

resource_usage

Typ: dict[str, Any]

Informationen zum Zeitplan.

RUNNING: MAPPING

Typ: dict[str, float]

CPU-Zeit (s) für das Zuordnungsproblem.

RUNNING: OPTIMIZING_FOR_HARDWARE

Typ: dict[str, float]

CPU-Zeit (s) für die Hardware-Optimierung.

RUNNING: WAITING_FOR_QPU

Typ: dict[str, float]

CPU-Zeit (s) beim Warten auf die QPU.

RUNNING: EXECUTING_QPU

Typ: dict[str, float]

Verbrauchte QPU-Zeit (s).

RUNNING: POST_PROCESSING

Typ: dict[str, float]

CPU-Zeit (s) für die Nachbearbeitung der Ergebnisse.

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