Skip to main content
IBM Quantum Platform

Comprobaciones

qiskit_paulice.checks

Funcionalidad para encontrar comprobaciones de Pauli eficaces en el espaciotiempo.

add_pauli_checks

add_pauli_checks(circuit, target_qubits, noise_model, cost='gamma', cost_nshots=10000, method='windowed', ancilla_qubits=None, check_creg_name='checks_c', check_qreg_name='checks_q', seed=None)

GitHub

Añade comprobaciones de Pauli en el espaciotiempo a un circuito de Clifford.

El algoritmo de selección de comprobaciones busca comprobaciones válidas y de bajo peso en cada qubit objetivo, en el orden en que se especifican en target_qubits , y elige la comprobación que ofrece la mayor cobertura de detección de errores (es decir, la que minimiza el cost valor de ). Una vez que se confirma una comprobación en target_qubits[0], esta se fijará para el resto del algoritmo y comenzará la búsqueda de una comprobación válida en target_qubits[1] . Por este motivo, el orden de target_qubits puede influir en el conjunto de comprobaciones que genera la función.

Esta función genera qiskit_paulice.CheckedCircuit instancias que contienen un número de comprobaciones que oscila entre 0 y una comprobación por cada qubit objetivo. Puede resultar instructivo observar la convergencia de la función de coste a medida que se añaden más comprobaciones, ya que es posible que se observe la convergencia del coste utilizando un número menor de comprobaciones.

Para obtener más información sobre cómo encontrar comprobaciones de Pauli eficaces en el espaciotiempo, véase Sección complementaria. II-VI de Martiel, Javadi.

Parámetros

  • circuit (QuantumCircuit) – El circuito de Clifford para vestir con cuadros de Pauli en el espacio-tiempo. El circuito debe finalizar con una medición en al menos un qubit. El circuito puede definirse en qubits virtuales o físicos. ancilla_qubitsSi el circuito tiene un esquema, el usuario debe proporcionarlo.

  • target_qubits (Sequence[int]) – Índices de circuit qubits que se utilizarán para entrelazar los qubits de comprobación con la carga útil. Cuando circuit tiene una disposición (modo ISA), se trata de índices de qubits físicos, en el mismo espacio de índices que ancilla_qubits.

  • noise_model (NoiseModel) – Un modelo de ruido que describe el efecto del ruido en el dispositivo en cuestión. Este modelo se utilizará para estimar el efecto de una comprobación determinada durante el proceso de selección de comprobaciones. Aunque es posible generar un modelo de ruido a partir del ruido de Pauli-Lindblad aprendido, a menudo basta con una aproximación más aproximada del ruido generado a partir de los datos de referencia del backend. Los límites de ancilla/objetivo introducidos por la inserción de comprobaciones que no figuren en los datos facilitados GateWiseNoise o LayeredNoise se deducen automáticamente (tasa mediana por par de Pauli en los datos facilitados); facilítalos explícitamente para anular esta deducción.

  • cost (Literal['gamma', 'LER']) –

    Métrica que hay que optimizar. Puede ser "gamma" o "LER" (tasa de error lógico).

    • "gamma": El valor gamma asociado al canal de ruido lógico inverso (es decir, el canal de ruido formado por errores dentro del cono de luz de medición que no pueden detectarse mediante las comprobaciones).
    • "LER": La tasa de error lógico empírico tras la postselección. Realiza simulaciones de Monte Carlo para calcular la proporción de disparos postseleccionados afectados por ruido lógico no detectado.
  • cost_nshots (int) – Número de simulaciones de Monte Carlo utilizadas por las métricas de coste basadas en Monte Carlo (actualmente solo "LER").

  • method (Literal['windowed', 'genetic', 'windowed_genetic']) –

    Selecciona el método de preparación de pedidos ("windowed", "genetic", o "windowed_genetic"). Cada método añadirá comprobaciones de target_qubits forma secuencial. Una vez que se ha aplicado una comprobación a un qubit de destino determinado, esta no se anulará aunque se añadan más comprobaciones. costCada método selecciona las comprobaciones que ofrecen la máxima capacidad de detección de errores (es decir, el valor más bajo).

    • "windowed": Muestrear pequeños subconjuntos de los cables de cada qubit objetivo para encontrar comprobaciones adecuadas
    • "genetic": Desarrollar un conjunto de comprobaciones candidatas a partir del espacio de cables completo de cada qubit objetivo
    • "windowed_genetic": Realizar una búsqueda genética en ventanas aleatorias de cables en cada qubit objetivo
  • ancilla_qubits (Sequence[int] | None) – Lista de índices de qubits físicos (uno por índice en target_qubits) que especifican dónde colocar los dispositivos auxiliares de comprobación en el circuito de salida. NoneEs necesario cuando circuit.layout no es. ancilla_qubits[i] compartirá puertas de entrelazamiento con target_qubits[i] al implementar la i-ésima comprobación.

  • check_creg_name (str) – Nombre del registro clásico para las mediciones de control (por defecto: «checks_c»)

  • check_qreg_name (str) – Nombre del registro cuántico que contiene los ancillas de comprobación en los circuitos de salida (por defecto: «checks_q»). Se ignora en modo ISA.

  • seed (int | None) – Semilla aleatoria para controlar el carácter aleatorio durante la búsqueda de comprobaciones válidas. Aunque esta semilla controla cierta aleatoriedad en el algoritmo, sigue existiendo cierto indeterminismo al utilizar LER la función de coste o cualquiera de las dos variantes del método de selección genética. NoneLa combinación de cost="gamma" y method="windowed" es totalmente determinista si seed no es.

Devuelve

Una lista de qiskit_paulice.CheckedCircuit instancias: instancias que contienen el circuito básico sin comprobaciones y una para cada comprobación añadida. El elemento final de la salida contiene los qiskit_paulice.CheckedCircuit controles de cada qubit de destino, suponiendo que se haya podido encontrar un conjunto válido de controles.

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