Parity Twine Optimizer – API-Referenz
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.
ParityQC Anleitung zum Parity Twine Optimizer
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 ( ) oder binary ( ) sind.
- Erforderlich: Ja
- Auswahlmöglichkeiten:
spinoderbinary
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.