Skip to main content
IBM Quantum Platform

Referencia de la API de mitigación de errores de redes Tensor de Algorithmiq

  • Qiskit Functions

    Qiskit Functions — Herramientas preconfiguradas creadas por organizaciones asociadas — que abstraen partes del flujo de trabajo de desarrollo de software para simplificar y acelerar el descubrimiento de algoritmos y el desarrollo de aplicaciones a escala industrial. Haz clic aquí para ver la guía de esta función de Qiskit.


Entradas

Caution

Actualmente, TEM presenta las siguientes limitaciones:

  • No se admiten circuitos parametrizados. El argumento «parámetros» debe establecerse en None si se especifica la precisión. Esta restricción se eliminará en futuras versiones.
  • Solo se admiten circuitos sin bucles. Esta restricción se eliminará en futuras versiones.
  • No se admiten puertas no unitarias, como las de reinicio, medición y todas las formas de flujo de control. La compatibilidad con el reinicio se añadirá en próximas versiones.

Parámetros

pubs

Tipo: Iterable[EstimatorPubLike]

Una secuencia de objetos similares a los de PUB (bloques primitivos unificados), como tuplas (circuit, observables) o (circuit, observables, parameters, precision). Consulte la sección «Descripción general de los PUB» para obtener más información. Si se supera un circuito que no es ISA, se transpilará con los ajustes óptimos. Si se pasa un circuito ISA, no se transpilará; en ese caso, la observable debe definirse en toda la QPU.

  • Obligatorio: Sí
  • Ejemplo:(circuit, observables)

backend_name

Tipo: str

Valor predeterminado: Least busy backend

Nombre del backend al que se va a realizar la consulta

  • Requisito: No
  • Ejemplo:"ibm_fez"

Opciones

Tipo: dict

Las opciones de entrada para esta función se especifican como un diccionario anidado. Consulte la lista completa de opciones y sus valores predeterminados.

  • Requisito: No
  • Ejemplo:{"max_bond_dimension": 100}

Un diccionario que recoge las opciones avanzadas del TEM. El diccionario puede contener las claves de la siguiente lista. Si no se especifica ninguna de las opciones, se utilizará el valor predeterminado que figura en la lista. Los valores predeterminados son adecuados para el uso habitual de TEM.

Lista de opciones

tem_max_bond_dimension

Tipo: int

Valor predeterminado: 500

El tamaño máximo de los enlaces que se utilizará en las redes tensoriales.

tem_compression_cutoff

Tipo: float

Valor predeterminado: 1e-16

El valor de corte que se utilizará para las redes tensoriales.

compute_shadows_bias_from_observable

Tipo: bool

Valor predeterminado: False

Un indicador booleano que señala si el sesgo del protocolo clásico de medición de sombras debe adaptarse a la observable « PUB » o no. Si el valor es «False», se utilizará el protocolo clásico de sombras (probabilidad igual de medir Z, X, Y).

shadows_bias

Tipo: np.ndarray

Valor predeterminado: np.array([1 / 3, 1 / 3, 1 / 3])

El sesgo que se utilizará para el protocolo de medición aleatoria de sombras clásicas, una matriz de tipo 1d o 2d de tamaño 3 o de forma (num_qubits, 3), respectivamente. El orden es ZXY.

max_execution_time

Tipo: int or None

Valor predeterminado: None

El tiempo máximo de ejecución en la QPU, expresado en segundos. Si el tiempo de ejecución supera este valor, el trabajo se cancelará. En ese caso None, se aplicará el límite predeterminado establecido por Qiskit Runtime.

num_randomizations

Tipo: int

Valor predeterminado: 32

El número de aleatorizaciones que se utilizarán para el aprendizaje del ruido y el giro de la puerta.

max_layers_to_learn

Tipo: int

Valor predeterminado: True

El número máximo de capas únicas que se van a aprender.

mitigate_readout_error

Tipo: bool

Valor predeterminado: True

Un indicador booleano que indica si se debe aplicar la mitigación de errores de lectura o no.

num_readout_calibration_shots

Tipo: int

Valor predeterminado: 10000

El número de disparos que se utilizarán para mitigar los errores de lectura.

default_precision

Tipo: float

Valor predeterminado: 0.02

La precisión predeterminada que se utilizará para los PUB en los que no se haya especificado la precisión.

seed

Tipo: int or None

Valor predeterminado: None

Establece la semilla del generador de números aleatorios para garantizar la reproducibilidad. Si es así None, no establezcas la semilla.

shots_per_randomization

Tipo: int

Valor predeterminado: 128

El número total de intentos que se utilizarán por cada circuito de aprendizaje aleatorio.

layer_pair_depths

Tipo: list[int]

Valor predeterminado: [0, 1, 2, 4, 16, 32]

La profundidad de los circuitos (medida en número de pares) que se utilizará en los experimentos de aprendizaje.

layer_noise_model

Tipo: NoiseLearnerResult, Sequence[LayerError], or None

Valor predeterminado: None

El ruido precalculado se obtiene de una ejecución anterior.

private

Tipo: bool

Valor predeterminado: False

Si los trabajos de la QPU deben ser privados. Si se establece en «True», se impedirán las descargas posteriores de los datos del experimento, por lo que se recomienda para trabajos confidenciales.

tem_enforce_linear_circuit

Tipo: bool

Valor predeterminado: False

Si se debe aplicar la topología lineal al circuito.

Precisión

La precisión de los resultados se puede solicitar de tres maneras. La precisión se puede especificar en el PUB, y se aplicará únicamente a ese PUB. De lo contrario, se puede default_precision pasar un en las opciones, tal y como se ha indicado anteriormente. Por último, para usuarios avanzados, se puede especificar el número concreto de disparos por PUB en las opciones mediante default_shots, lo que anulará cualquier otra opción de precisión.

Si se pasa un default_precision valor o un valor por PUB, se calcula el número de iteraciones necesarias para alcanzar la precisión deseada. Esto se lleva a cabo en función de los parámetros de la QPU y las tasas de error seleccionados, de la siguiente manera:

  • Cálculo del error por puerta en capas (EPLG), que cuantifica el ruido introducido por las capas de puertas de dos qubits. Si hay propiedades de backend disponibles, extrae la fidelidad correspondiente; de lo contrario, utiliza un valor predeterminado.
  • Contar el número de puertas de dos qubits en el circuito, ya que suelen ser las principales fuentes de ruido.
  • Cálculo de un prefactor de ruido basado en el número de puertas de dos qubits y en la EPLG.
  • Utilizando la precisión solicitada, calcula el número de disparos necesarios mediante una escala basada en el prefactor de ruido y la inversa del cuadrado de la precisión.

Este enfoque garantiza que el número de disparos sea suficiente para alcanzar la precisión deseada, teniendo en cuenta tanto la estructura del circuito como las características de ruido del backend.


Resultados

Un Qiskit PrimitiveResults que contiene el resultado con corrección TEM. El resultado de cada PUB se devuelve como un objeto PubResult que contiene los siguientes campos:

datos

Tipo: Databin

Un Qiskit DataBin que contiene la observable mitigada por TEM y su error estándar. El formulario « DataBin » contiene los siguientes campos:

  • evs: El valor observable ajustado según el modelo TEM.
  • stds: El error estándar de la magnitud observable corregida por TEM.

metadatos

Tipo: dict

Un diccionario que contiene resultados adicionales. El diccionario contiene las siguientes claves:

  • "evs_non_mitigated": El valor observable sin mitigación de errores.
  • "stds_non_mitigated": El error estándar del resultado sin mitigación de errores.
  • "evs_mitigated_no_readout_mitigation": El valor observable con mitigación de errores, pero sin mitigación de errores de lectura.
  • "stds_mitigated_no_readout_mitigation": El error estándar del resultado con mitigación de errores, pero sin mitigación de errores de lectura.
  • "evs_non_mitigated_with_readout_mitigation": El valor observable sin mitigación de errores, pero con mitigación de errores de lectura.
  • "stds_non_mitigated_with_readout_mitigation": El error estándar del resultado sin mitigación de errores, pero con mitigación de errores de lectura.
  • "resource_usage": Un diccionario que recoge los recursos temporales utilizados por el TEM.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.