MinimumPoint
class qiskit.transpiler.passes.MinimumPoint(*args, **kwargs)
Bases: TransformationPass
Verificar se o DAG atingiu um ponto semi-estável relativo em execuções anteriores
Essa passagem é semelhante à passagem FixedPoint e destina-se principalmente a ser usada para definir uma condição de interrupção de loop no conjunto de propriedades. Entretanto, ao contrário da classe FixedPoint que só define a condição se duas execuções consecutivas tiverem o mesmo valor de propriedade de valor definido, essa passagem foi projetada para encontrar um mínimo local e usá-lo em vez disso. Essa passagem foi projetada para um loop de otimização em que um ponto fixo pode nunca ser alcançado (por exemplo, se a síntese for usada e houver várias saídas equivalentes para alguns casos).
Essa passagem rastreará o estado dos campos no conjunto de propriedades em suas execuções anteriores e definirá um campo booleano quando um ponto fixo for atingido sobre a profundidade de retrocesso ou selecionando o valor mínimo encontrado se a profundidade de retrocesso for atingida. Para isso, ele armazena uma cópia profunda do DAG mínimo atual no conjunto de propriedades e, quando backtrack_depth número de execuções é atingido desde o último mínimo, o DAG de saída é definido para essa cópia do mínimo anterior.
Os campos usados por essa passagem no conjunto de propriedades são (todos relativos ao argumento prefix ):
-
{prefix}_minimum_point_state- Usado para rastrear o estado da pesquisa de ponto mínimo -
{prefix}_minimum_point- Esse valor é definido comoTruequando um ponto fixoé atingido nas execuções do
backtrack_depthoubacktrack_depthfoi excedido e um mínimo anterior é restaurado.
Inicializar uma instância dessa passagem
Parâmetros
- property_set_list (list) – Uma lista de chaves de conjunto de propriedades que serão usadas para avaliar o mínimo local. Os valores dessas chaves de conjunto de propriedades serão usados como uma tupla para comparação
- prefix (str) – O prefixo a ser usado para a chave do conjunto de propriedades que é usada para rastrear avaliações anteriores
- backtrack_depth (int) – O número máximo de entradas a serem armazenadas. Se esse número for atingido e a próxima iteração não diminuir o número de valores, o mínimo do n anterior será definido como o dag de saída e
minimum_pointserá definido comoTrueno conjunto de propriedades
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
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