Skip to main content
IBM Quantum Platform

AddPostCircuitNonMarkovianErrorChecks

class AddPostCircuitNonMarkovianErrorChecks(*args, **kwargs)

GitHub

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 ∣x⟩↦∣x⊕1⟩|x\rangle\mapsto|x\oplus1\rangle. 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).

Nota

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

tupla [ DAGCircuit, PassManagerState ]

name

name()

Nombre del paso.

Tipo de retorno

str

run

run(dag)

GitHub

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

PassManagerState

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