SabrePreLayout
class qiskit.transpiler.passes.SabrePreLayout(*args, **kwargs)
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)
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
run
run(dag)
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)
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