Skip to main content
IBM Quantum Platform

SabrePreLayout

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

GitHub

Bases: AnalysisPass

Elija un diseño inicial para utilizarlo en otras pruebas de diseño de Sabre.

La pasada funciona añadiendo cada vez más aristas «extra» al mapa de acoplamiento hasta que « VF2 » consigue encontrar un isomorfismo perfecto del grafo. Más concretamente, el mapa de acoplamiento ampliado contiene aristas entre nodos que se encuentran a una distancia determinada d en el mapa de acoplamiento original. Los bordes originales no presentan ruido, mientras que los bordes adicionales presentan un ruido que aumenta exponencialmente con la distancia. El valor de d se va aumentando hasta que se encuentra un isomorfismo.

Intuitivamente, una mejor disposición de « VF2 » implica un menor número de aristas adicionales y de menor longitud.


Valores establecidos de la propiedad escritos

sabre_starting_layouts (list[Layout])

Una lista opcional de Layout objetos a utilizar para pruebas adicionales de diseño Sabre.

Referencias:

[1] Henry Zou y Matthew Treinish y Kevin Hartman y Alexander Ivrii y Jake Lishman. “LightSABRE: Un algoritmo SABRE ligero y mejorado" arXiv:2409.08368

param acoplamiento_mapa

Grafo dirigido que representa el mapa de acoplamiento original o un modelo del backend (incluida su conectividad).

param distancia_máxima

La distancia máxima para ejecutar « VF2 » con el mapa de acoplamiento aumentado. En concreto, esto también especifica la distancia máxima entre los nodos originales que quedan conectados en el mapa de acoplamiento ampliado.

param error_rate

La tasa de error que se debe asignar a los bordes «extra». Una tasa de error distinta de cero hace que « VF2 » dé prioridad a los bordes originales frente a los bordes adicionales.

param max_trials_vf2

Especifica el número máximo de intentos de « VF2 ». Esta opción se mantiene principalmente por motivos de compatibilidad con versiones anteriores, desde la introducción de la evaluación sobre la marcha en VF2, que se incorporó en Qiskit 2.3. Para limitar la duración del paso, configura los parámetros max_distance y call_limit_vf2 en su lugar.

param call_limit_vf2

El número máximo de veces que la búsqueda de isomorfismos de tipo « VF2 » intentará ampliar la correspondencia. Si None, entonces no hay límite. Si se trata de una tupla de dos elementos, el límite comienza por el primer elemento y pasa al segundo una vez encontrada la primera coincidencia, sin reiniciar el recuento de pasos realizados. Esto permite realizar una búsqueda exhaustiva de cualquier correspondencia, pero, si se encuentra alguna, la búsqueda finaliza rápidamente con un presupuesto de extensión reducido.

param improve_layout

En desuso (esta opción quedó obsoleta con la introducción de la puntuación en tiempo real en VF2 ).

parámetro min_distance

La distancia para la primera ejecución de « VF2 » con el mapa de acoplamiento aumentado. La configuración min_distance > 1 omite todas las comprobaciones de distancias más cortas y, en particular, omite la comprobación « distance-1 », que corresponde a la ejecución del VF2Layout «pass».

sube TranspilerError

Durante la ejecución, si no se coupling_map proporciona el argumento.


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 SabrePreLayout en dag.

La disposición inicial descubierta se escribe en el valor del conjunto de propiedades sabre_starting_layouts.

Parámetros

dag (DAGCircuit) – DAG para el que crear el diseño inicial.

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.