TemplateOptimization
class qiskit.transpiler.passes.TemplateOptimization(*args, **kwargs)
Bases: TransformationPass
Clase para el pase de optimización de plantillas.
Parámetros
- template_list (list[QuantumCircuit()]) – lista de los diferentes circuitos de plantillas a aplicar.
- heuristics_backward_param (list[int]) – [longitud, superviviente] Son los parámetros para aplicar la heurística en la parte hacia atrás del algoritmo. Esta parte del algoritmo crea un árbol de escenarios coincidentes. Este árbol crece exponencialmente. La heurística evalúa qué escenarios tienen la coincidencia más larga y se queda sólo con esos. La longitud es el intervalo en el árbol para cortarlo y la supervivencia es el número de escenarios que se mantienen. Aconsejamos utilizar l=3 y s=1 para tener una seria ventaja de tiempo. Recordamos que la heurística implica perder una parte de las coincidencias máximas. Consulte la referencia para más detalles.
- heuristics_qubits_param (list[int]) – [longitud] La heurística para la elección de qubits hace conjeturas a partir de la dependencia dag del circuito para limitar el número de configuraciones de qubits a explorar. La longitud es el número de sucesores o no predecesores que se explorarán en la dependencia dag del circuito, cada qubits de los nodos se añade al conjunto de qubits autorizados. Le aconsejamos que utilice length=1. Consulte la referencia para más detalles.
- user_cost_dict (Dict[str, int]) – diccionario de costes cuánticos que se pasa a TemplateSubstitution para configurar su comportamiento. Esto anulará cualquier valor predeterminado si no se indica Ninguno. La clave es el nombre de la puerta y el valor su coste cuántico.
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)
Parámetros
dag (DAGCircuit) – Circuito DAG.
Devuelve
circuito DAG optimizado.
Tipo de retorno
Eleva
TranspilerError - Si la plantilla no tiene la forma correcta o si el circuito de salida actúa de forma diferente al de entrada.
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