ElidePermutations
class qiskit.transpiler.passes.ElidePermutations(*args, **kwargs)
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 trivialLayoutpara a entrada desta passagem que está sendo executada -
original_qubit_indices: O mapeamento de objetos de qubit para índices posicionais para o estadodo circuito como entrada para essa passagem.
-
virtual_permutation_layout: Um objetoLayoutque mapeia os qubits de entrada para a saídadepois 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)
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
run
run(dag)
Execute a passagem ElidePermutations em dag.
Parâmetros
dag (DAGCircuit) – o DAG a ser otimizado.
Retorna
o DAG otimizado.
Tipo de retorno
update_status
update_status(state, run_state)
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