Skip to main content
IBM Quantum Platform

ElidePermutations

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

GitHub

Bases: TransformationPass

Remover operações de permutação de um circuito pré-layout

Essa passagem deve ser executada antes que um layout (mapeamento de qubits virtuais para qubits físicos) seja definido durante o pipeline de transpilação. Essa passagem itera sobre o DAGCircuit e quando um SwapGate ou PermutationGate são encontrados, ela permuta os qubits virtuais no circuito e remove a porta de troca. Isso removerá efetivamente qualquer SwapGates ou PermutationGate no circuito antes de executar o layout. Se essa passagem for executada depois que um layout tiver sido definido, ela se tornará um no-op (e registrará um aviso), pois essa otimização não é válida depois que os qubits físicos são selecionados e há restrições de conectividade a serem respeitadas.

Para fins de rastreamento, essa passagem define 3 valores no conjunto de propriedades, se houver algum SwapGate ou PermutationGate no circuito e a passagem não for um no-op.

  • original_layout: O trivial Layout para a entrada desta passagem que está sendo executada

  • original_qubit_indices: O mapeamento de objetos de qubit para índices posicionais para o estado

    do circuito como entrada para essa passagem.

  • virtual_permutation_layout: Um objeto Layout que mapeia os qubits de entrada para a saída

    depois de eliminar as permutações.

Essas três propriedades são necessárias para que o transpilador rastreie as permutações no atributo out QuantumCircuit.layout atributo. A elisão de permutações é equivalente a um conjunto final_layout por roteamento e todos esses três atributos são necessários no caso


Atributos

is_analysis_pass

Verificar se o passe é um passe de análise.

Se a passagem for um AnalysisPass,, isso significa que a passagem pode analisar o DAG e escrever os resultados dessa análise no conjunto de propriedades. As modificações no DAG não são permitidas por esse tipo de passe.

is_transformation_pass

Verifique se o passe é um passe de transformação.

Se a passagem for um TransformationPass,, isso significa que a passagem pode manipular o DAG, mas não pode modificar o conjunto de propriedades (mas pode ser lido).


Métodos

execute

execute(passmanager_ir, state, callback=None)

GitHub

Executar a tarefa de otimização para a entrada Qiskit IR.

Parâmetros

  • passmanager_ir (Any) – Qiskit IR para otimizar.
  • state (PassManagerState) – Estado associado à execução do fluxo de trabalho pelo próprio gerenciador de passes.
  • callback (Callable | None) – Uma função de retorno de chamada que é chamada a cada execução da tarefa de otimização.

Retorna

Qiskit IR otimizado e estado do fluxo de trabalho.

Tipo de retorno

tupla [ Any, PassManagerState ]

name

name()

GitHub

Nome do passe.

Tipo de retorno

str

run

run(dag)

GitHub

Execute a passagem ElidePermutations em dag.

Parâmetros

dag (DAGCircuit) – o DAG a ser otimizado.

Retorna

o DAG otimizado.

Tipo de retorno

DAGCircuit

update_status

update_status(state, run_state)

GitHub

Atualizar o status do fluxo de trabalho.

Parâmetros

  • state (PassManagerState) – Passar o estado do gerenciador para atualizar.
  • run_state (RunState) – Status de conclusão da tarefa atual.

Retorna

Estado do gerenciador de passes atualizado.

Tipo de retorno

PassManagerState

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.