AddPostCircuitNonMarkovianErrorChecks
class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)
Bases: TransformationPass
Añadir comprobaciones de error no markovianas al final del circuito en los qubits activos, que concluyen con una medición.
Una comprobación de errores no markoviana posterior al circuito consiste en un pulso X de banda estrecha situado tras una medición terminal que invierte el estado del qubit desde el estado medido . A continuación, se mide el estado y, si la QPU no ha logrado invertir el qubit en un intento concreto, esa muestra puede considerarse poco fiable y descartarse. La selección posterior de únicamente aquellas muestras que superen todas las comprobaciones puede mejorar la fidelidad de las distribuciones muestreadas a partir de la QPU.
Las medidas añadidas se escriben en nuevos registros clásicos que son copias de los registros del DAG, con nombres modificados (por defecto, añadiéndose "_ps" al nombre del registro).
Estas pasadas solo son compatibles con las QPU Heron que admiten puertas fraccionarias.
Inicializa el pase.
Parámetros
- x_pulse_type – El tipo de pulso X que se aplicará en las mediciones posteriores a la comprobación. O bien
"xslow"o bien"rx". - post_check_suffix – Un sufijo fijo que se añade a los nombres de los registros clásicos al copiarlos.
- ignore_creg_suffixes – Una lista de sufijos de registros clásicos que deben ignorarse (no copiarse). Por defecto, los registros que terminan en «_pre» se ignoran para evitar añadir registros de comprobación posterior a los de comprobación previa.
Atributos
is_analysis_pass
Comprueba si la pasada es una pasada de análisis.
Si el paso es de tipo « AnalysisPass, », eso significa que dicho paso puede analizar el DAG y escribir los resultados de ese análisis en el conjunto de propiedades. Este tipo de pasada no permite realizar modificaciones en el DAG.
is_transformation_pass
Comprueba si el paso es un paso de transformación.
Si el pase es de tipo « TransformationPass, », eso significa que el pase puede manipular el DAG, pero no puede modificar el conjunto de propiedades (aunque sí puede leerlo).
Métodos
execute
execute(passmanager_ir, state, callback=None)
Ejecutar la tarea de optimización para el IR de Qiskit de entrada.
Parámetros
- passmanager_ir (DAGCircuit) – Qiskit IR para optimizar.
- state (DAGCircuit) – Estado relacionado con la ejecución del flujo de trabajo por parte del propio gestor de pasadas.
- callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Una función de devolución de llamada que se invoca cada vez que se ejecuta una tarea de optimización.
Devuelve
IR de Qiskit optimizado y estado del flujo de trabajo.
Tipo de retorno
name
run
run(dag)
Ejecuta una pasada en el DAGCircuit. Esto lo implementa el desarrollador de Pass.
Parámetros
dag (DAGCircuit) – el día en que se realiza la ascensión.
Subidas
NotImplementedError – cuando esto no se aplica en una pasada.
update_status
update_status(state, run_state)
Actualizar el estado del flujo de trabajo.
Parámetros
- state (PassManagerState) – Pasa el estado del gestor para actualizarlo.
- run_state (RunState) – Estado de finalización de la tarea actual.
Devuelve
Se ha actualizado el estado del gestor de pases.
Tipo de retorno