Convertitori di circuito
qiskit.converters
QuantumCircuit -> componenti del circuito
circuit_to_instruction
qiskit.converters.circuit_to_instruction(circuit, parameter_map=None, equivalence_library=None, label=None)
Crea un Instruction oggetto a partire da un QuantumCircuit.
L'istruzione è anonima (non è legata a un registro quantistico) e quindi può essere inserita in un altro circuito. L'istruzione avrà lo stesso nome di stringa del circuito.
Parametri
- circuit (QuantumCircuit) – il circuito di ingresso.
- parameter_map (dict) – Per i circuiti parametrizzati, una mappatura dai parametri del circuito ai parametri da utilizzare nell'istruzione. Se Nessuno, i parametri del circuito esistenti parametrizzeranno anche l'istruzione.
- equivalence_library (EquivalenceLibrary) – Libreria di equivalenze opzionale in cui verrà registrata l'istruzione convertita.
- label (str) – Etichetta di istruzioni opzionale.
Aumenti
QiskitError - se la mappa dei parametri non è compatibile con il circuito
Risultati
un'istruzione equivalente all'azione del circuito di ingresso. Dopo la decomposizione, questa istruzione restituisce i componenti che compongono il circuito originale.
Tipo di restituzione
Esempio
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)
Crea un Gate oggetto a partire da un QuantumCircuit.
Il gate è anonimo (non è legato a un registro quantistico) e può quindi essere inserito in un altro circuito. Il gate avrà lo stesso nome di stringa del circuito.
Parametri
- circuit (QuantumCircuit) – il circuito di ingresso.
- parameter_map (dict) – Per i circuiti parametrizzati, una mappatura dai parametri del circuito ai parametri da utilizzare nel gate. Se Nessuno, i parametri del circuito esistenti parametrizzeranno anche il Gate.
- equivalence_library (EquivalenceLibrary) – Libreria di equivalenze opzionale in cui verrà registrato il gate convertito.
- label (str) – Etichetta opzionale per il cancello.
Aumenti
QiskitError - se il circuito non è unitario o se la mappa dei parametri non è compatibile con il circuito
Risultati
un Gate equivalente all'azione del circuito di ingresso. Dopo la decomposizione, questo gate restituisce i componenti del circuito originale.
Tipo di restituzione
QuantumCircuit <-> DagCircuit
circuit_to_dag
qiskit.converters.circuit_to_dag(circuit, copy_operations=True, *, qubit_order=None, clbit_order=None)
Crea un DAGCircuit oggetto a partire da un QuantumCircuit.
È accessibile anche come QuantumCircuit.to_dag().
Parametri
- circuit (QuantumCircuit) – il circuito di ingresso.
DAGCircuitcopy_operations (bool) – Esegui una copia profonda degli oggetti dell'operazione nelQuantumCircuitper l'output. Questa opzione dovrebbe essere impostata solo seFalsel'inputQuantumCircuitnon verrà più utilizzato, poiché le operazioni nell'outputDAGCircuitsaranno istanze condivise e le modifiche apportate alle operazioni nell'inputDAGCircuitsi rifletteranno nell'outputQuantumCircuit(e viceversa).- qubit_order (Iterable[Qubit] or None) – l'ordine in cui i qubit devono essere indicizzati nel DAG di uscita. L'ordine predefinito è lo stesso del circuito.
- clbit_order (Iterable[Clbit] or None) – l'ordine in cui i clbit devono essere indicizzati nel DAG di uscita. L'ordine predefinito è lo stesso del circuito.
Risultati
il DAG che rappresenta il circuito di ingresso.
Tipo di restituzione
Aumenti
ValueError - se i parametri qubit_order o clbit_order non corrispondono ai bit del circuito.
Esempio
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)
Costruire un oggetto QuantumCircuit da un oggetto DAGCircuit.
È accessibile anche come DAGCircuit.to_circuit().
Parametri
- dag (DAGCircuit) – il DAG di input.
QuantumCircuitcopy_operations (bool) – Esegui una copia profonda degli oggetti dell'operazione nelDAGCircuitper l'output. Questa opzione va impostata solo seFalsel'inputDAGCircuitnon verrà più utilizzato, poiché le operazioni nell'outputQuantumCircuitsaranno istanze condivise e le modifiche apportate alle operazioni nell'inputDAGCircuitsi rifletteranno nell'outputQuantumCircuit(e viceversa).
Risultati
il circuito che rappresenta l'ingresso dag.
Tipo di restituzione
Esempio
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)
Costruire un oggetto QuantumCircuit da un oggetto DAGDependency.
Parametri
dagdependency (DAGDependency) – il DAG di input.
Risultati
il circuito che rappresenta la dipendenza dall'ingresso dag.
Tipo di restituzione
circuit_to_dagdependency
qiskit.converters.circuit_to_dagdependency(circuit, create_preds_and_succs=True)
Costruire un oggetto DAGDependency da un oggetto QuantumCircuit.
Parametri
- circuit (QuantumCircuit) – il circuito di ingresso.
- create_preds_and_succs (bool) – se costruire liste di predecessori e successori per ogni nodo.
Risultati
il DAG che rappresenta il circuito di ingresso come dipendenza dag.
Tipo di restituzione
DagCircuit <-> DagDependency
dag_to_dagdependency
qiskit.converters.dag_to_dagdependency(dag, create_preds_and_succs=True)
Costruire un oggetto DAGDependency da un oggetto DAGCircuit.
Parametri
- dag (DAGCircuit) – il DAG di input.
- create_preds_and_succs (bool) – se costruire liste di predecessori e successori per ogni nodo.
Risultati
il DAG che rappresenta il circuito di ingresso come dipendenza dag.
Tipo di restituzione
dagdependency_to_dag
qiskit.converters.dagdependency_to_dag(dagdependency)
Costruire un oggetto DAGCircuit da un oggetto DAGDependency.
Parametri
dagdependency (DAGDependency) – il DAG di input.
Risultati
il DAG che rappresenta il circuito di ingresso.
Tipo di restituzione