Schaltkreiswandler
qiskit.converters
QuantumCircuit -> Schaltungskomponenten
circuit_to_instruction
qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)
Erstelle ein Instruction Objekt aus einem QuantumCircuit.
Die Anweisung ist anonym (nicht an ein bestimmtes Quantenregister gebunden) und kann daher in eine andere Schaltung eingefügt werden. Die Anweisung hat den gleichen Namen wie die Schaltung.
Parameter
- circuit (QuantumCircuit) – den Eingangskreis.
- parameter_map (dict) – Bei parametrisierten Schaltungen eine Zuordnung von Parametern in der Schaltung zu Parametern, die in der Anweisung verwendet werden sollen. Falls keine, wird die Anweisung auch durch vorhandene Schaltkreisparameter parametrisiert.
- equivalence_library (EquivalenceLibrary) – Optionale Äquivalenzbibliothek, in der der konvertierte Befehl registriert wird.
- label (str) – Optionales Hinweisschild.
Erhöht
QiskitError - wenn der Parameter_map nicht mit der Schaltung kompatibel ist
Rückgabe
eine Anweisung, die der Aktion der Eingangsschaltung entspricht. Bei der Zerlegung ergibt diese Anweisung die Komponenten, aus denen die ursprüngliche Schaltung besteht.
Rückgabetyp
Beispiel
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.converters import circuit_to_instruction
q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1])
circuit_to_instruction(circ)circuit_to_gate
qiskit.converters.circuit_to_gate(circuit, parameter_map=None, equivalence_library=None, label=None)
Erstelle ein Gate Objekt aus einem QuantumCircuit.
Das Gatter ist anonym (nicht an ein bestimmtes Quantenregister gebunden) und kann daher in eine andere Schaltung eingefügt werden. Das Gatter hat den gleichen Namen wie die Schaltung.
Parameter
- circuit (QuantumCircuit) – den Eingangskreis.
- parameter_map (dict) – Bei parametrisierten Schaltungen eine Zuordnung von Parametern in der Schaltung zu Parametern, die im Gatter verwendet werden sollen. Wenn keine, werden die vorhandenen Schaltkreisparameter auch das Gate parametrieren.
- equivalence_library (EquivalenceLibrary) – Optionale Äquivalenzbibliothek, in der das konvertierte Gatter registriert wird.
- label (str) – Optionales Gate-Etikett.
Erhöht
QiskitError - wenn die Schaltung nicht einheitlich ist oder wenn der Parameter_map nicht mit der Schaltung kompatibel ist
Rückgabe
a Gatter, das der Wirkung der Eingangsschaltung entspricht. Bei der Zerlegung dieses Gatters erhält man die Komponenten, aus denen die ursprüngliche Schaltung besteht.
Rückgabetyp
QuantumCircuit <-> DagCircuit
circuit_to_dag
qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)
Erstelle ein DAGCircuit Objekt aus einem QuantumCircuit.
Dies ist auch als QuantumCircuit.to_dag().
Parameter
- circuit (QuantumCircuit) – den Eingangskreis.
DAGCircuitcopy_operations (bool) – Führen Sie eine Deep-Copy der Operationsobjekte in derQuantumCircuitfür die Ausgabe durch. Diese Option sollte nur dann aktiviert werden,Falsewenn die EingabeQuantumCircuitnicht mehr verwendet wird, da die Operationen in der AusgabeDAGCircuitgemeinsam genutzte Instanzen sind und Änderungen an den Operationen in der EingabeDAGCircuitsich in derQuantumCircuitAusgabe widerspiegeln (und umgekehrt).- qubit_order (Iterable[Qubit] or None) – die Reihenfolge, in der die Qubits in der Ausgabe-DAG indiziert werden sollen. Standardmäßig wird die gleiche Reihenfolge wie in der Schaltung verwendet.
- clbit_order (Iterable[Clbit] or None) – die Reihenfolge, in der die Clbits in der Ausgabe-DAG indiziert werden sollen. Standardmäßig wird die gleiche Reihenfolge wie in der Schaltung verwendet.
Rückgabe
die DAG, die die Eingangsschaltung darstellt.
Rückgabetyp
Erhöht
ValueError - wenn die Parameter qubit_order oder clbit_order nicht mit den Bits in der Schaltung übereinstimmen.
Beispiel
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.dagcircuit import DAGCircuit
from qiskit.converters import circuit_to_dag
q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1])
dag = circuit_to_dag(circ)dag_to_circuit
qiskit.converters.dag_to_circuit(dag, copy_operations=True)
Erstellen Sie ein QuantumCircuit Objekt aus einer DAGCircuit.
Dies ist auch unter DAGCircuit.to_circuit(). verfügbar.
Parameter
- dag (DAGCircuit) – der Eingabe-DAG.
QuantumCircuitcopy_operations (bool) – Führen Sie eine Deep-Copy der Operationsobjekte in derDAGCircuitfür die Ausgabe durch. Diese Option sollte nur dann aktiviert werden,Falsewenn die EingabeDAGCircuitnicht mehr verwendet wird, da die Operationen in der AusgabeQuantumCircuitgemeinsam genutzte Instanzen sind und Änderungen an den Operationen in der EingabeDAGCircuitsich in derQuantumCircuitAusgabe widerspiegeln (und umgekehrt).
Rückgabe
die Schaltung, die den Eingang dag.
Rückgabetyp
Beispiel
from qiskit import QuantumRegister, ClassicalRegister, QuantumCircuit
from qiskit.dagcircuit import DAGCircuit
from qiskit.converters import circuit_to_dag
from qiskit.circuit.library.standard_gates import CHGate, U2Gate, CXGate
from qiskit.converters import dag_to_circuit
q = QuantumRegister(3, 'q')
c = ClassicalRegister(3, 'c')
circ = QuantumCircuit(q, c)
circ.h(q[0])
circ.cx(q[0], q[1])
circ.measure(q[0], c[0])
circ.rz(0.5, q[1])
dag = circuit_to_dag(circ)
circuit = dag_to_circuit(dag)
circuit.draw('mpl')
QuantumCircuit <-> DagDependency
dagdependency_to_circuit
qiskit.converters.dagdependency_to_circuit(dagdependency)
Erstellen Sie ein QuantumCircuit Objekt aus einer DAGDependency.
Parameter
dagdependency (DAGDependency) – der Eingabe-DAG.
Rückgabe
die Schaltung, die die Abhängigkeit vom Eingangstag darstellt.
Rückgabetyp
circuit_to_dagdependency
qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)
Erstellen Sie ein DAGDependency Objekt aus einer QuantumCircuit.
Parameter
- circuit (QuantumCircuit) – den Eingangskreis.
- create_preds_and_succs (bool) – ob für jeden Knoten Listen von Vorgängern und Nachfolgern erstellt werden sollen.
Rückgabe
die DAG, die den Eingabeschaltkreis als eine DAG-Abhängigkeit darstellt.
Rückgabetyp
DagCircuit <-> DagDependency
dag_to_dagdependency
qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)
Erstellen Sie ein DAGDependency Objekt aus einer DAGCircuit.
Parameter
- dag (DAGCircuit) – der Eingabe-DAG.
- create_preds_and_succs (bool) – ob für jeden Knoten Listen von Vorgängern und Nachfolgern erstellt werden sollen.
Rückgabe
die DAG, die den Eingabeschaltkreis als eine DAG-Abhängigkeit darstellt.
Rückgabetyp
dagdependency_to_dag
qiskit.converters.dagdependency_to_dag(dagdependency)
Erstellen Sie ein DAGCircuit Objekt aus einer DAGDependency.
Parameter
dagdependency (DAGDependency) – der Eingabe-DAG.
Rückgabe
die DAG, die die Eingangsschaltung darstellt.
Rückgabetyp