Skip to main content
IBM Quantum Platform

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)

GitHub

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

qiskit.circuit.Instruction

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)

GitHub

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

Porte


QuantumCircuit <-> DagCircuit

circuit_to_dag

qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)

GitHub

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 QuantumCircuit pour la sortie DAGCircuit. Ce paramètre ne doit être activé que False si l'entrée QuantumCircuit ne sera plus utilisée, car les opérations de la sortie DAGCircuit seront des instances partagées et les modifications apportées aux opérations de la DAGCircuit se répercuteront sur la QuantumCircuit (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

DAGCircuit

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)

GitHub

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 DAGCircuit pour la sortie QuantumCircuit. Ce paramètre ne doit être activé que False si l'entrée DAGCircuit ne sera plus utilisée, car les opérations de la sortie QuantumCircuit seront des instances partagées et les modifications apportées aux opérations de la DAGCircuit se répercuteront sur la QuantumCircuit (et inversement).

Retours

le circuit représentant l'entrée dag.

Type de retour

QuantumCircuit

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')
Schéma de circuit produit par le code précédent.

QuantumCircuit <-> DagDependency

dagdependency_to_circuit

qiskit.converters.dagdependency_to_circuit(dagdependency)

GitHub

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

QuantumCircuit

circuit_to_dagdependency

qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)

GitHub

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

DAGDependency


DagCircuit <-> DagDependency

dag_to_dagdependency

qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)

GitHub

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

dagdependency_to_dag

qiskit.converters.dagdependency_to_dag(dagdependency)

GitHub

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

DAGCircuit

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.