Skip to main content
IBM Quantum Platform

MinimumPoint

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

GitHub

Bases: TransformationPass

Comprobar si el DAG ha alcanzado un punto relativamente semiestable en ejecuciones anteriores

Este paso es similar al FixedPoint y se utiliza principalmente para establecer una condición de ruptura de bucle en el conjunto de propiedades. Sin embargo, a diferencia de la clase FixedPoint que sólo establece la condición si 2 ejecuciones consecutivas tienen el mismo valor de propiedad, este pase está diseñado para encontrar un mínimo local y utilizarlo en su lugar. Este paso está diseñado para un bucle de optimización en el que puede que nunca se alcance un punto fijo (por ejemplo, si se utiliza la síntesis y hay varias salidas equivalentes para algunos casos).

Esta pasada rastreará el estado de los campos en el conjunto de propiedades a lo largo de sus ejecuciones pasadas y establecerá un campo booleano cuando se alcance un punto fijo sobre la profundidad de retroceso o seleccionando el valor mínimo encontrado si se alcanza la profundidad de retroceso. Para ello almacena una copia profunda del DAG mínimo actual en el conjunto de propiedades y cuando se alcanza backtrack_depth número de ejecuciones desde el último mínimo el dag de salida se establece en esa copia del mínimo anterior.

Los campos utilizados por este pase en el conjunto de propiedades son (todos relativos al argumento prefix ):

  • {prefix}_minimum_point_state - Se utiliza para seguir el estado de la búsqueda del punto mínimo

  • {prefix}_minimum_point - Este valor se establece en True cuando un punto fijo

    se alcanza a lo largo de las ejecuciones de backtrack_depth , o se ha superado backtrack_depth y se restablece un mínimo anterior.

Inicializar una instancia de este pase

Parámetros

  • property_set_list (list) – Una lista de claves de conjuntos de propiedades que se utilizarán para evaluar el mínimo local. Los valores de estas claves de conjunto de propiedades se utilizarán como una tupla para la comparación
  • prefix (str) – El prefijo a utilizar para la clave del conjunto de propiedades que se utiliza para el seguimiento de las evaluaciones anteriores
  • backtrack_depth (int) – El número máximo de entradas a almacenar. Si se alcanza este número y la siguiente iteración no tiene una disminución en el número de valores, el mínimo del n anterior se establecerá como dag de salida y minimum_point se establecerá en True en el conjunto de propiedades

Atributos

is_analysis_pass

Comprueba si el pase es un pase de análisis.

Si el pase es un AnalysisPass, significa que el pase puede analizar el DAG y escribir los resultados de ese análisis en el conjunto de propiedades. Este tipo de paso no permite realizar modificaciones en el DAG.

is_transformation_pass

Comprueba si el pase es un pase de transformación.

Si el pase es un TransformationPass, significa que el pase puede manipular el DAG, pero no puede modificar el conjunto de propiedades (pero se puede leer).


Métodos

execute

execute(passmanager_ir, state, callback=None)

GitHub

Ejecutar la tarea de optimización para la entrada Qiskit IR.

Parámetros

  • passmanager_ir (Any) – Qiskit IR para optimizar.
  • state (PassManagerState) – Estado asociado a la ejecución del flujo de trabajo por el propio gestor de pases.
  • callback (Callable | None) – Una función de devolución de llamada que se invoca cada vez que se ejecuta una tarea de optimización.

Devuelve

Qiskit IR optimizado y estado del flujo de trabajo.

Tipo de retorno

tupla [ Any, PassManagerState ]

name

name()

GitHub

Nombre del pase.

Tipo de retorno

str

run

run(dag)

GitHub

Ejecuta el pase MinimumPoint en dag.

update_status

update_status(state, run_state)

GitHub

Actualizar el estado del flujo de trabajo.

Parámetros

  • state (PassManagerState) – Pasar estado de gestor a actualizar.
  • run_state (RunState) – Estado de finalización de la tarea actual.

Devuelve

Estado del gestor de pases actualizado.

Tipo de retorno

PassManagerState

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.