Skip to main content
IBM Quantum Platform

OptimizeAnnotated

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

GitHub

Basi: TransformationPass

Passaggio di ottimizzazione su circuiti con operazioni annotate.

Ottimizzazioni implementate:

  • Per ogni operazione annotata, convertire l'elenco dei suoi modificatori in una forma canonica. Ad esempio, applicare consecutivamente inverse(), control(2) e inverse() equivale ad applicare control(2).
  • Rimuovere le annotazioni quando possibile. Ad esempio, AnnotatedOperation(SwapGate(), [InverseModifier(), InverseModifier()]) è equivalente a SwapGate().
  • Combinare ricorsivamente le annotazioni. Ad esempio, se g1 = AnnotatedOperation(SwapGate(), InverseModifier()) e g2 = AnnotatedOperation(g1, ControlModifier(2)), allora g2 può essere sostituito con AnnotatedOperation(SwapGate(), [InverseModifier(), ControlModifier(2)]).
  • Applica la riduzione coniugata alle operazioni annotate. Ad esempio, control - [P -- Q -- P^{-1}] può essere riscritto come P -- control - [Q] -- P^{-1}, cioè è necessario controllare solo la parte centrale. Questo funziona anche per i modificatori inversi e di potenza.

OptimizeAnnotated inizializzatore.

Parametri

  • destinazione – la destinazione del backend da utilizzare per questo passaggio.
  • equivalence_library - La libreria di equivalenza utilizzata (le istruzioni in questa libreria non saranno ottimizzate da questo passaggio).
  • basis_gates – nomi delle basi di destinazione in cui eseguire l'unrolling, ad esempio [‘u3’, ‘cx’] (le istruzioni presenti in questo elenco non saranno ottimizzate da questo passaggio). Viene ignorato se target è specificato anche.
  • recurse - Per impostazione predefinita, quando viene specificato target o basis_gates , il passaggio scende ricorsivamente nelle definizioni dei gate (e la ricorsione non viene applicata quando nessuno dei due è specificato, poiché tali oggetti non devono essere sintetizzati). Impostando questo valore a False si preclude la ricorsione in ogni caso.
  • do_conjugate_reduction - controlla se deve essere eseguita la riduzione del coniugato.

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 OptimizeAnnotated su dag.

Parametri

dag (DAGCircuit) – ingresso dag.

Risultati

Output dag con operazioni di livello superiore ottimizzate.

Aumenti

TranspilerError – quando qualcosa va storto.

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.