Circuit Converters (qiskit.converters)#

qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)[fuente]#

Build a DAGCircuit object from a QuantumCircuit.

Par谩metros:
  • circuit (QuantumCircuit) 鈥 the input circuit.

  • copy_operations (bool) 鈥 Deep copy the operation objects in the QuantumCircuit for the output DAGCircuit. This should only be set to False if the input QuantumCircuit will not be used anymore as the operations in the output DAGCircuit will be shared instances and modifications to operations in the DAGCircuit will be reflected in the QuantumCircuit (and vice versa).

  • qubit_order (Iterable[Qubit] or None) 鈥 the order that the qubits should be indexed in the output DAG. Defaults to the same order as in the circuit.

  • clbit_order (Iterable[Clbit] or None) 鈥 the order that the clbits should be indexed in the output DAG. Defaults to the same order as in the circuit.

Devuelve:

the DAG representing the input circuit.

Tipo del valor devuelto:

DAGCircuit

Muestra:

ValueError 鈥 if the qubit_order or clbit_order parameters do not match the bits in the circuit.

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]).c_if(c, 2)
dag = circuit_to_dag(circ)
qiskit.converters.dag_to_circuit(dag, copy_operations=True)[fuente]#

Build a QuantumCircuit object from a DAGCircuit.

Par谩metros:
Devuelve:

the circuit representing the input dag.

Tipo del valor devuelto:

QuantumCircuit

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]).c_if(c, 2)
dag = circuit_to_dag(circ)
circuit = dag_to_circuit(dag)
circuit.draw('mpl')

(Source code)

../_images/converters-1.png
qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)[fuente]#

Build an Instruction object from a QuantumCircuit.

The instruction is anonymous (not tied to a named quantum register), and so can be inserted into another circuit. The instruction will have the same string name as the circuit.

Par谩metros:
  • circuit (QuantumCircuit) 鈥 the input circuit.

  • parameter_map (dict) 鈥 For parameterized circuits, a mapping from parameters in the circuit to parameters to be used in the instruction. If None, existing circuit parameters will also parameterize the instruction.

  • equivalence_library (EquivalenceLibrary) 鈥 Optional equivalence library where the converted instruction will be registered.

  • label (str) 鈥 Optional instruction label.

Muestra:

QiskitError 鈥 if parameter_map is not compatible with circuit

Devuelve:

an instruction equivalent to the action of the input circuit. Upon decomposition, this instruction will yield the components comprising the original circuit.

Tipo del valor devuelto:

qiskit.circuit.Instruction

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]).c_if(c, 2)
circuit_to_instruction(circ)
qiskit.converters.circuit_to_gate(circuit, parameter_map=None, equivalence_library=None, label=None)[fuente]#

Build a Gate object from a QuantumCircuit.

The gate is anonymous (not tied to a named quantum register), and so can be inserted into another circuit. The gate will have the same string name as the circuit.

Par谩metros:
  • circuit (QuantumCircuit) 鈥 the input circuit.

  • parameter_map (dict) 鈥 For parameterized circuits, a mapping from parameters in the circuit to parameters to be used in the gate. If None, existing circuit parameters will also parameterize the Gate.

  • equivalence_library (EquivalenceLibrary) 鈥 Optional equivalence library where the converted gate will be registered.

  • label (str) 鈥 Optional gate label.

Muestra:

QiskitError 鈥 if circuit is non-unitary or if parameter_map is not compatible with circuit

Devuelve:

a Gate equivalent to the action of the input circuit. Upon decomposition, this gate will yield the components comprising the original circuit.

Tipo del valor devuelto:

Gate

qiskit.converters.ast_to_dag(ast)[fuente]#

Build a DAGCircuit object from an AST Node object.

Par谩metros:

ast (Program) 鈥 a Program Node of an AST (parser鈥檚 output)

Devuelve:

the DAG representing an OpenQASM鈥檚 AST

Tipo del valor devuelto:

DAGCircuit

Muestra:

QiskitError 鈥 if the AST is malformed.

Ejemplo

from qiskit.converters import ast_to_dag
from qiskit import qasm, QuantumCircuit, ClassicalRegister, QuantumRegister

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]).c_if(c, 2)
qasm_str = circ.qasm()
ast = qasm.Qasm(data=qasm_str).parse()
dag = ast_to_dag(ast)
qiskit.converters.dagdependency_to_circuit(dagdependency)[fuente]#

Build a QuantumCircuit object from a DAGDependency.

Par谩metros:

dagdependency (DAGDependency) 鈥 the input dag.

Devuelve:

the circuit representing the input dag dependency.

Tipo del valor devuelto:

QuantumCircuit

qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)[fuente]#

Build a DAGDependency object from a QuantumCircuit.

Par谩metros:
  • circuit (QuantumCircuit) 鈥 the input circuit.

  • create_preds_and_succs (bool) 鈥 whether to construct lists of predecessors and successors for every node.

Devuelve:

the DAG representing the input circuit as a dag dependency.

Tipo del valor devuelto:

DAGDependency

qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)[fuente]#

Build a DAGDependency object from a DAGCircuit.

Par谩metros:
  • dag (DAGCircuit) 鈥 the input dag.

  • create_preds_and_succs (bool) 鈥 whether to construct lists of predecessors and successors for every node.

Devuelve:

the DAG representing the input circuit as a dag dependency.

Tipo del valor devuelto:

DAGDependency

qiskit.converters.dagdependency_to_dag(dagdependency)[fuente]#

Build a DAGCircuit object from a DAGDependency.

Par谩metros:

dependency (dag) 鈥 the input dag.

Devuelve:

the DAG representing the input circuit.

Tipo del valor devuelto:

DAGCircuit