Skip to main content
IBM Quantum Platform

ElidePermutations

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

GitHub

Basi: TransformationPass

Rimuovere le operazioni di permutazione da un circuito pre-layout

Questo passaggio deve essere eseguito prima che venga impostato un layout (mappatura dei qubit virtuali sui qubit fisici) durante la pipeline di transpilazione. Questo passaggio itera sul file DAGCircuit e quando un SwapGate o PermutationGate si verifica una permutazione dei qubit virtuali nel circuito e rimuove la porta di scambio. In questo modo si rimuove efficacemente qualsiasi SwapGateo PermutationGate nel circuito prima di eseguire il layout. Se questo passaggio viene eseguito dopo che è stato impostato un layout, diventerà un no-op (e verrà visualizzato un avviso), poiché questa ottimizzazione non è valida dopo che sono stati selezionati i qubit fisici e ci sono vincoli di connettività da rispettare.

Per scopi di tracciamento, questo passaggio imposta 3 valori nell'insieme di proprietà, se ce ne sono SwapGate o PermutationGate nel circuito e il passaggio non è un no-op.

  • original_layout: Il banale Layout per l'input di questo passaggio in fase di esecuzione

  • original_qubit_indices: La mappatura degli oggetti qubit agli indici posizionali per lo stato

    del circuito come ingresso a questo passaggio.

  • virtual_permutation_layout: Un oggetto Layout che mappa i qubit di ingresso con quelli di uscita

    dopo aver eliso le permutazioni.

Queste tre proprietà sono necessarie affinché il transpiler possa tenere traccia delle permutazioni nell'attributo "out QuantumCircuit.layout ". L'omissione delle permutazioni equivale a un final_layout insieme definito tramite instradamento e tutti e tre questi attributi sono necessari nel caso in cui


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

Parametri

dag (DAGCircuit) – il DAG da ottimizzare.

Risultati

il DAG ottimizzato.

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.