Convertidores de circuito
qiskit.converters
QuantumCircuit -> componentes del circuito
circuit_to_instruction
qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)
Construir un Instruction objeto a partir de un QuantumCircuit.
La instrucción es anónima (no está vinculada a un registro cuántico con nombre), por lo que puede insertarse en otro circuito. La instrucción tendrá el mismo nombre de cadena que el circuito.
Parámetros
- circuit (QuantumCircuit) – el circuito de entrada.
- parameter_map (dict) – Para circuitos parametrizados, una correspondencia entre los parámetros del circuito y los parámetros que se utilizarán en la instrucción. Si es Ninguno, los parámetros de circuito existentes también parametrizarán la instrucción.
- equivalence_library (EquivalenceLibrary) – Biblioteca de equivalencia opcional donde se registrará la instrucción convertida.
- label (str) – Etiqueta de instrucciones opcional.
Eleva
QiskitError - si parameter_map no es compatible con el circuito
Devuelve
una instrucción equivalente a la acción del circuito de entrada. Tras la descomposición, esta instrucción dará como resultado los componentes que componen el circuito original.
Tipo de retorno
Ejemplo
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)
Construir un Gate objeto a partir de un QuantumCircuit.
La puerta es anónima (no está vinculada a un registro cuántico con nombre), por lo que puede insertarse en otro circuito. La puerta tendrá el mismo nombre de cadena que el circuito.
Parámetros
- circuit (QuantumCircuit) – el circuito de entrada.
- parameter_map (dict) – Para los circuitos parametrizados, una correspondencia entre los parámetros del circuito y los parámetros que se utilizarán en la puerta. Si es Ninguno, los parámetros de circuito existentes también parametrizarán la Puerta.
- equivalence_library (EquivalenceLibrary) – Biblioteca de equivalencia opcional donde se registrará la puerta convertida.
- label (str) – Etiqueta de puerta opcional.
Eleva
QiskitError - si el circuito no es unitario o si parameter_map no es compatible con el circuito
Devuelve
a Puerta equivalente a la acción del circuito de entrada. Tras la descomposición, esta puerta dará lugar a los componentes que componen el circuito original.
Tipo de retorno
QuantumCircuit <-> DagCircuit
circuit_to_dag
qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)
Construir un DAGCircuit objeto a partir de un QuantumCircuit.
También se puede acceder a esto como QuantumCircuit.to_dag().
Parámetros
- circuit (QuantumCircuit) – el circuito de entrada.
- copy_operations (bool) – Copia en profundidad los objetos de operación en el
QuantumCircuitpara la salidaDAGCircuit. Sólo debe establecerse enFalsesi la entradaQuantumCircuitno se va a utilizar más, ya que las operaciones en la salidaDAGCircuitserán instancias compartidas y las modificaciones de las operaciones en la entradaDAGCircuitse reflejarán enQuantumCircuit(y viceversa). - qubit_order (Iterable[Qubit] or None) – el orden en que deben indexarse los qubits en el DAG de salida. Por defecto, el orden es el mismo que en el circuito.
- clbit_order (Iterable[Clbit] or None) – el orden en que deben indexarse los clbits en el DAG de salida. Por defecto, el orden es el mismo que en el circuito.
Devuelve
el DAG que representa el circuito de entrada.
Tipo de retorno
Eleva
ValueError - si los parámetros qubit_order o clbit_order no coinciden con los bits del circuito.
Ejemplo
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)
Construir un objeto QuantumCircuit a partir de un DAGCircuit.
También se puede acceder a esto como DAGCircuit.to_circuit().
Parámetros
- dag (DAGCircuit) – el dag de entrada.
- copy_operations (bool) – Copia en profundidad los objetos de operación en el
DAGCircuitpara la salidaQuantumCircuit. Sólo debe establecerse enFalsesi la entradaDAGCircuitno se va a utilizar más, ya que las operaciones en la salidaQuantumCircuitserán instancias compartidas y las modificaciones de las operaciones en la entradaDAGCircuitse reflejarán enQuantumCircuit(y viceversa).
Devuelve
el circuito que representa el dag de entrada.
Tipo de retorno
Ejemplo
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)
Construir un objeto QuantumCircuit a partir de un DAGDependency.
Parámetros
dagdependency (DAGDependency) – el dag de entrada.
Devuelve
el circuito que representa la dependencia dag entrada.
Tipo de retorno
circuit_to_dagdependency
qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)
Construir un objeto DAGDependency a partir de un objeto QuantumCircuit.
Parámetros
- circuit (QuantumCircuit) – el circuito de entrada.
- create_preds_and_succs (bool) – si construir listas de predecesores y sucesores para cada nodo.
Devuelve
el DAG que representa el circuito de entrada como una dependencia dag.
Tipo de retorno
DagCircuit <-> DagDependency
dag_to_dagdependency
qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)
Construir un objeto DAGDependency a partir de un DAGCircuit.
Parámetros
- dag (DAGCircuit) – el dag de entrada.
- create_preds_and_succs (bool) – si construir listas de predecesores y sucesores para cada nodo.
Devuelve
el DAG que representa el circuito de entrada como una dependencia dag.
Tipo de retorno
dagdependency_to_dag
qiskit.converters.dagdependency_to_dag(dagdependency)
Construir un objeto DAGCircuit a partir de un DAGDependency.
Parámetros
dagdependency (DAGDependency) – el dag de entrada.
Devuelve
el DAG que representa el circuito de entrada.
Tipo de retorno