Skip to main content
IBM Quantum Platform

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)

GitHub

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

qiskit.circuit.Instruction

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)

GitHub

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

Gate


QuantumCircuit <-> DagCircuit

circuit_to_dag

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

GitHub

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 nel QuantumCircuit per l'output. Questa opzione dovrebbe essere impostata solo se False l'input QuantumCircuit non verrà più utilizzato, poiché le operazioni nell'output DAGCircuit saranno istanze condivise e le modifiche apportate alle operazioni nell'input DAGCircuit si rifletteranno nell'output QuantumCircuit (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

DAGCircuit

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)

GitHub

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 nel DAGCircuit per l'output. Questa opzione va impostata solo se False l'input DAGCircuit non verrà più utilizzato, poiché le operazioni nell'output QuantumCircuit saranno istanze condivise e le modifiche apportate alle operazioni nell'input DAGCircuit si rifletteranno nell'output QuantumCircuit (e viceversa).

Risultati

il circuito che rappresenta l'ingresso dag.

Tipo di restituzione

QuantumCircuit

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')
Schema del circuito prodotto dal codice precedente.

QuantumCircuit <-> DagDependency

dagdependency_to_circuit

qiskit.converters.dagdependency_to_circuit(dagdependency)

GitHub

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

QuantumCircuit

circuit_to_dagdependency

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

GitHub

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

DAGDependency


DagCircuit <-> DagDependency

dag_to_dagdependency

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

GitHub

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

dagdependency_to_dag

qiskit.converters.dagdependency_to_dag(dagdependency)

GitHub

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

DAGCircuit

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.