RemoveIdentityEquivalent
class qiskit.transpiler.passes.RemoveIdentityEquivalent(*args, **kwargs)
Bases: TransformationPass
Remova os portões com efeitos insignificantes.
Remove portas cujo efeito está próximo de uma operação de identidade até uma fase global e até a tolerância especificada. As portas parametrizadas não são consideradas por essa passagem.
Para uma fidelidade de corte , essa passagem remove as portas cuja fidelidade média em relação à identidade está abaixo de . Concretamente, uma porta é removida se onde
em que é a dimensão da porta para qubits.
Esta função é multithread e, por padrão, pode iniciar um pool de threads com um número de threads igual ao número de CPUs. Você pode ajustar o número de threads usando a variável RAYON_NUM_THREADS de ambiente. Por exemplo, definir RAYON_NUM_THREADS=4 limitaria o conjunto de threads a 4 threads.
Inicializa a passagem do transpilador.
Parâmetros
- approximation_degree - O grau a ser aproximado para a verificação de equivalência. Esse pode ser um valor de ponto flutuante entre 0 e 1, ou
None. Se o valor for 1, não haverá aproximação acima da precisão do ponto flutuante. Para um valor < 1, isso é usado como um fator de escala para a fidelidade de corte. Se o valor forNone, isso se aproxima da fidelidade da porta especificada emtarget. Caso não seja definidotarget, aproximamos até16 * machine_epscomo padrão para levar em conta as acumulações em sistemas de poucos qubits. - alvo - Se
approximation_degreeestiver definido comoNonee umTargetfor fornecido para esse campo, a tolerância para determinar se uma operação é equivalente à identidade será definida como a taxa de erro relatada no destino. Se forapproximation_degree(o padrão), não terá efeito; se forapproximation_degree=None, usará a taxa de erro especificada emTargetpara a porta que está sendo avaliada, e um valor numérico diferente de 1 comtargetdefinido será usado como fator de escala da taxa de erro do alvo.
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
Verificar 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 uma passagem no DAGCircuit. Isso é implementado pelo desenvolvedor do passe.
Parâmetros
dag (DAGCircuit) – o dag no qual o passe é executado.
Aumentos
NotImplementedError - quando isso não é implementado em uma passagem.
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