Skip to main content
IBM Quantum Platform

qiskit_ibm_runtime.options_models.ZneOptions

pydantic model ZneOptions

GitHub

Bases: BaseOptionsModel

Opciones de mitigación de la extrapolación del ruido cero. Esto solo lo utiliza el programa de cálculo de presupuestos de V2.

Nota

Cualquier estimador de tipo « V2 » garantiza que devolverá campos de datos denominados evs y stds que recogen, respectivamente, las estimaciones de los valores esperados deseados y los errores correspondientes. Cuando se activan las opciones ZNE en el estimador de tiempo de ejecución, se devuelven datos adicionales.

En concreto, supongamos que una entrada «pub» tiene una forma de matriz observable y obs_shape una forma de valores de parámetros par_shape, con la forma correspondiente de «pub» shape=np.broadcast_shapes(obs_shape, par_shape). En ese caso, el resultado «pub» correspondiente incluirá además:

  1. pub_result.data.evs_extrapolated y pub_result.data.stds_extrapolated,

    ambas con forma (*shape, num_extrapolators, num_evaluation_points), donde num_extrapolators es la longitud de la lista de options.resilience.zne.extrapolator, y num_evaluation_points es la longitud de la lista options.resilience.zne.extrapolated_noise_factors. Estos valores ofrecen evaluaciones de cada extrapolador para cada valor de extrapolación de ruido especificado.

  2. pub_result.data.evs_noise_factors, pub_result.data.stds_noise_factors, y tienen ensemble_stds_noise_factors todos la forma (*shape, num_noise_factors) donde num_noise_factors es la longitud de options.resilience.zne.noise_factors. Estos valores proporcionan valores de expectativa brutos, promediados tras el «twirling» si procede, para cada uno de los niveles de amplificación del ruido; puedes basar tus propias rutinas de ajuste en estos valores. Si no se aplica el «twirling», ambos *stds* vectores serán iguales; en caso contrario, stds_noise_factors se obtiene a partir de la dispersión observada en las muestras con «twirling», mientras que se ensemble_stds_noise_factors supone únicamente ruido de disparo y ausencia de deriva.

Nota técnica: en el caso de observables simples con múltiples términos de base, puede ocurrir que se utilicen varios métodos de extrapolación en un mismo valor esperado; por ejemplo, XX se extrapola linealmente, mientras que XY se extrapola exponencialmente en la observable {"XX": 0.5, "XY": 0.5}. Llamemos a esto un ajuste heterogéneo. Los datos de (2) se evalúan a partir de ajustes heterogéneos, seleccionando el mejor ajuste para cada término concreto, mientras que los datos de (1) se evalúan a partir de ajustes homogéneos forzados, uno para cada extrapolador proporcionado. Si tu trabajo requiere una distinción matizada a este respecto, te recomendamos por el momento que utilices observables de un solo término además de los de varios términos.

Referencias

  1. Z. Cai, «Extrapolación de errores multiexponenciales y combinación de técnicas de mitigación de errores para aplicaciones NISQ», npj Quantum Inf 7, 80 (2021)

Config

  • validate_assignment : bool = True
  • extra : str = prohibir

amplifier

field

Tipo: Literal['gate_folding', 'gate_folding_front', 'gate_folding_back', 'pea']

Valor predeterminado: 'gate_folding'

¿Qué técnica se debe utilizar para amplificar el ruido?

Uno de los siguientes:

  • «gate_folding» (por defecto) utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el ruido

    Si este factor requiere amplificar solo un subconjunto de las puertas, estas se eligen al azar.

  • «gate_folding_front» utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el ruido

    Si el factor requiere amplificar únicamente un subconjunto de las puertas, estas se seleccionan desde la parte delantera del circuito DAG ordenado topológicamente.

  • «gate_folding_back» utiliza el plegado de puertas de 2 qubits para amplificar el ruido. Si el ruido

    Si el factor requiere amplificar únicamente un subconjunto de las puertas, estas se seleccionan de la parte posterior del circuito DAG ordenado topológicamente.

  • «pea» utiliza una técnica denominada «amplificación probabilística de errores»

    ( PEA ) para amplificar el ruido. Cuando se seleccione esta opción, siempre se utilizará el giro de la compuerta, independientemente de si se ha activado o no en las opciones. En esta técnica, el modelo de ruido «twirled» de cada una de las capas únicas de puertas de entrelazamiento de tus circuitos ISA se aprende de antemano; consulta LayerNoiseLearningOptions para conocer las opciones de aprendizaje pertinentes. Una vez completados, los circuitos se ejecutan para cada factor de ruido, y cada capa de entrelazamiento de los circuitos se amplifica mediante la inyección probabilística de ruido de un solo qubit, proporcional al modelo de ruido aprendido correspondiente.

extrapolated_noise_factors

field

Tipo: Sequence[Annotated[float, Field(ge``=``0)]] | Literal['auto']

Valor predeterminado: 'auto'

Factores de ruido para evaluar el ajuste de los modelos de extrapolación en.

Si se selecciona «auto», los valores esperados se calcularán en [0, *noise_factors]. Esta opción no afecta en modo alguno a la ejecución ni al ajuste del modelo; únicamente determina los puntos en los que se evalúan los valores de extrapolators que se van a devolver en los campos de datos denominados y evs_extrapolated stds_extrapolated.

extrapolator

field

Tipo: ExtrapolatorType | Sequence[ExtrapolatorType]

Valor predeterminado: ('exponential', 'linear')

Extrapoladores que se van a probar (por orden) para la extrapolación con ruido cero.

Las opciones disponibles son:

  • "exponential", que ajusta los datos mediante una función de decaimiento exponencial

    definida como f(x;A,τ)=Ae−x/τf(x; A, \tau) = A e^{-x/\tau}, donde A=f(0;A,τ)A = f(0; A, \tau) es el valor en ausencia de ruido ( x=0x=0 ) y τ>0\tau>0 es una tasa positiva.

  • "double_exponential", que utiliza la suma de dos funciones exponenciales, tal y como se indica en la ref. 1.

  • "polynomial_degree_(1 <= k <= 7)", que utiliza una función polinómica definida como

    f(x;c0,c1,…,ck)=∑i=0,kcixif(x; c_0, c_1, \ldots, c_k) = \sum_{i=0, k} c_i x^i.

  • "linear", lo que equivale a "polynomial_degree_1".

  • "fallback", que simplemente devuelve los datos sin procesar correspondientes al nivel de ruido más bajo

    factor (normalmente 1) sin realizar ningún tipo de extrapolación.

Los valores extrapolados (evs_extrapolated y stds_extrapolated) se ordenan según el orden de los extrapoladores proporcionados. Si se especifica más de un extrapolador, los valores y evs que figuran stds en los datos del resultado se refieren al primer extrapolador que ha tenido éxito, determinándose dicho éxito de forma heurística.

noise_factors

field

Tipo: Annotated[Sequence[Annotated[float, Field(ge``=``1)]], AfterValidator(at_least_two_noise_factors)] | Literal['auto']

Valor predeterminado: 'auto'

Factores de ruido que deben utilizarse para la amplificación del ruido.

El valor predeterminado es DEFAULT_NOISE_FACTORS. Debe contener más valores que el número de grados de libertad (DOF) en todos los extrapoladores solicitados.

update

update(**kwargs)

GitHub

Actualiza las opciones.

Parámetros

kwargs (Any)

Tipo de retorno

Ninguna

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