Skip to main content
IBM Quantum Platform

TranslateParameterizedGates

class qiskit.transpiler.passes.TranslateParameterizedGates(*args, **kwargs)

GitHub

Basi: TransformationPass

Tradurre le porte parametrizzate in un insieme di basi supportato.

Una volta trovata un'istruzione parametrizzata che non è presente nell'elenco supported_gates , l'istruzione viene scomposta di un livello e i sottoblocchi parametrizzati vengono scomposti ricorsivamente. La ricorsione viene interrotta una volta che tutti i gate parametrati sono presenti in supported_gates, oppure se un gate non ha una definizione e si tenta di tradurlo nella base (questo potrebbe accadere, ad esempio, per UGate se non è presente nell'elenco dei gate specificato).

Esempio

Il circuito seguente, annidato in modo multiplo:

from qiskit.circuit import QuantumCircuit, ParameterVector
from qiskit.transpiler.passes import TranslateParameterizedGates

x = ParameterVector("x", 4)
block1 = QuantumCircuit(1)
block1.rx(x[0], 0)

sub_block = QuantumCircuit(2)
sub_block.cx(0, 1)
sub_block.rz(x[2], 0)

block2 = QuantumCircuit(2)
block2.ry(x[1], 0)
block2.append(sub_block.to_gate(), [0, 1])

block3 = QuantumCircuit(3)
block3.ccx(0, 1, 2)

circuit = QuantumCircuit(3)
circuit.append(block1.to_gate(), [1])
circuit.append(block2.to_gate(), [0, 1])
circuit.append(block3.to_gate(), [0, 1, 2])
circuit.cry(x[3], 0, 2)

supported_gates = ["rx", "ry", "rz", "cp", "crx", "cry", "crz"]
unrolled = TranslateParameterizedGates(supported_gates)(circuit)

è decomposto in:

     ┌──────────┐     ┌──────────┐┌─────────────┐
q_0:Ry(x[1]) ├──■──┤ Rz(x[2]) ├┤0            ├─────■──────
     ├──────────┤┌─┴─┐└──────────┘│             │     │
q_1:Rx(x[0]) ├┤ X ├────────────┤1 circuit-92 ├─────┼──────
     └──────────┘└───┘            │             │┌────┴─────┐
q_2: ─────────────────────────────┤2            ├┤ Ry(x[3])
                                  └─────────────┘└──────────┘

Parametri

  • supported_gates – Un elenco dei gate di base supportati specificati come stringa. In tal caso None, è necessario target specificare un.
  • equivalence_library - La libreria di equivalenza per tradurre le porte. Per impostazione predefinita, la libreria di equivalenza di tutte le porte standard di Qiskit.
  • target - Un elemento Target contenente le operazioni supportate. Se None, supported_gates deve essere impostato. Si noti che questo argomento ha la precedenza su supported_gates, se entrambi sono impostati.

Aumenti

ValueError - Se nessuno dei due supported_gates e target viene superato.


Attributi

is_analysis_pass

Controlla se il passaggio è un passaggio di analisi.

Se il passo è un AnalysisPass,, significa che il passo può analizzare il DAG e scrivere i risultati di tale analisi nel set di proprietà. Questo tipo di passaggio non consente di modificare il DAG.

is_transformation_pass

Controlla se il passaggio è un passaggio di trasformazione.

Se il passaggio è un TransformationPass,, significa che il passaggio può manipolare il DAG, ma non può modificare il set di proprietà (ma può essere letto).


Metodi

execute

execute(passmanager_ir, state, callback=None)

GitHub

Eseguire l'attività di ottimizzazione per l'IR Qiskit in ingresso.

Parametri

  • passmanager_ir (DAGCircuit) – Qiskit IR da ottimizzare.
  • state (DAGCircuit) – Stato associato all'esecuzione del flusso di lavoro da parte dello stesso gestore dei passaggi.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Una funzione di callback che viene chiamata ad ogni esecuzione di un'attività di ottimizzazione.

Risultati

Qiskit IR ottimizzato e stato del flusso di lavoro.

Tipo di restituzione

tuple [ DAGCircuit, PassManagerState ]

name

name()

GitHub

Nome del passo.

Tipo di restituzione

STR

run

run(dag)

GitHub

Eseguire il passaggio del transpiler.

Parametri

dag (DAGCircuit) – Il circuito DAG in cui le porte parametrizzate devono essere srotolate.

Risultati

Un DAG in cui le porte parametrizzate sono state srotolate.

Aumenti

QiskitError – Se non è possibile srotolare il circuito.

Tipo di restituzione

DAGCircuito

update_status

update_status(state, run_state)

GitHub

Aggiornare lo stato del flusso di lavoro.

Parametri

  • state (PassManagerState) – Passare lo stato del gestore da aggiornare.
  • run_state (RunState) – Stato di completamento dell'attività corrente.

Risultati

Stato aggiornato del gestore dei passaggi.

Tipo di restituzione

PassManagerState

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