Convertisseurs de circuit
qiskit.converters
QuantumCircuit -> composants du circuit
circuit_to_instruction
qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)
Créer un Instruction objet à partir d'un QuantumCircuit.
L'instruction est anonyme (elle n'est pas liée à un registre quantique nommé) et peut donc être insérée dans un autre circuit. L'instruction aura le même nom de chaîne que le circuit.
Paramètres
- circuit (QuantumCircuit) – le circuit d'entrée.
- parameter_map (dict) – Pour les circuits paramétrés, une correspondance entre les paramètres du circuit et les paramètres à utiliser dans l'instruction. Si ce n'est pas le cas, les paramètres existants du circuit paramétrent également l'instruction.
- equivalence_library (EquivalenceLibrary) – Bibliothèque d'équivalences facultative dans laquelle l'instruction convertie sera enregistrée.
- label (str) – Étiquette d'instruction optionnelle.
Augmentations
QiskitError - si la carte des paramètres n'est pas compatible avec le circuit
Retours
une instruction équivalente à l'action du circuit d'entrée. Lors de la décomposition, cette instruction permet d'obtenir les composants du circuit d'origine.
Type de retour
Exemple
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)
Créer un Gate objet à partir d'un QuantumCircuit.
La porte est anonyme (elle n'est pas liée à un registre quantique nommé) et peut donc être insérée dans un autre circuit. La porte aura le même nom de chaîne que le circuit.
Paramètres
- circuit (QuantumCircuit) – le circuit d'entrée.
- parameter_map (dict) – Pour les circuits paramétrés, une correspondance entre les paramètres du circuit et les paramètres à utiliser dans la porte. Si ce n'est pas le cas, les paramètres du circuit existant paramétrent également la porte.
- equivalence_library (EquivalenceLibrary) – Bibliothèque d'équivalences facultative dans laquelle la porte convertie sera enregistrée.
- label (str) – Étiquette de porte en option.
Augmentations
QiskitError - si le circuit n'est pas unitaire ou si la carte des paramètres n'est pas compatible avec le circuit
Retours
une porte équivalente à l'action du circuit d'entrée. Lors de la décomposition, cette porte donnera les composants du circuit d'origine.
Type de retour
QuantumCircuit <-> DagCircuit
circuit_to_dag
qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)
Créer un DAGCircuit objet à partir d'un QuantumCircuit.
Ceci est également accessible sous forme de QuantumCircuit.to_dag().
Paramètres
- circuit (QuantumCircuit) – le circuit d'entrée.
- copy_operations (bool) – Effectuez une copie profonde des objets d'opération dans le
QuantumCircuitpour la sortieDAGCircuit. Ce paramètre ne doit être activé queFalsesi l'entréeQuantumCircuitne sera plus utilisée, car les opérations de la sortieDAGCircuitseront des instances partagées et les modifications apportées aux opérations de laDAGCircuitse répercuteront sur laQuantumCircuit(et inversement). - qubit_order (Iterable[Qubit] or None) – l'ordre dans lequel les qubits doivent être indexés dans le DAG de sortie. Par défaut, l'ordre est le même que dans le circuit.
- clbit_order (Iterable[Clbit] or None) – l'ordre dans lequel les clbits doivent être indexés dans le DAG de sortie. Par défaut, l'ordre est le même que dans le circuit.
Retours
le DAG représentant le circuit d'entrée.
Type de retour
Augmentations
ValueError - si les paramètres qubit_order ou clbit_order ne correspondent pas aux bits du circuit.
Exemple
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)
Construire un objet QuantumCircuit à partir d'un objet DAGCircuit.
On peut également y accéder via DAGCircuit.to_circuit().
Paramètres
- dag (DAGCircuit) – le DAG d'entrée.
- copy_operations (bool) – Effectuez une copie profonde des objets d'opération dans le
DAGCircuitpour la sortieQuantumCircuit. Ce paramètre ne doit être activé queFalsesi l'entréeDAGCircuitne sera plus utilisée, car les opérations de la sortieQuantumCircuitseront des instances partagées et les modifications apportées aux opérations de laDAGCircuitse répercuteront sur laQuantumCircuit(et inversement).
Retours
le circuit représentant l'entrée dag.
Type de retour
Exemple
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)
Construire un objet QuantumCircuit à partir d'un objet DAGDependency.
Paramètres
dagdependency (DAGDependency) – le DAG d'entrée.
Retours
le circuit représentant la dépendance de l'entrée dag.
Type de retour
circuit_to_dagdependency
qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)
Construire un objet DAGDependency à partir d'un objet QuantumCircuit.
Paramètres
- circuit (QuantumCircuit) – le circuit d'entrée.
- create_preds_and_succs (bool) – s'il faut construire des listes de prédécesseurs et de successeurs pour chaque nœud.
Retours
le DAG représentant le circuit d'entrée en tant que dépendance dag.
Type de retour
DagCircuit <-> DagDependency
dag_to_dagdependency
qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)
Construire un objet DAGDependency à partir d'un objet DAGCircuit.
Paramètres
- dag (DAGCircuit) – le DAG d'entrée.
- create_preds_and_succs (bool) – s'il faut construire des listes de prédécesseurs et de successeurs pour chaque nœud.
Retours
le DAG représentant le circuit d'entrée en tant que dépendance dag.
Type de retour
dagdependency_to_dag
qiskit.converters.dagdependency_to_dag(dagdependency)
Construire un objet DAGCircuit à partir d'un objet DAGDependency.
Paramètres
dagdependency (DAGDependency) – le DAG d'entrée.
Retours
le DAG représentant le circuit d'entrée.
Type de retour