qiskit_ibm_runtime.options_models.ZneOptions
pydantic model ZneOptions
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.
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:
-
pub_result.data.evs_extrapolatedypub_result.data.stds_extrapolated,ambas con forma
(*shape, num_extrapolators, num_evaluation_points), dondenum_extrapolatorses la longitud de la lista deoptions.resilience.zne.extrapolator, ynum_evaluation_pointses la longitud de la listaoptions.resilience.zne.extrapolated_noise_factors. Estos valores ofrecen evaluaciones de cada extrapolador para cada valor de extrapolación de ruido especificado. -
pub_result.data.evs_noise_factors,pub_result.data.stds_noise_factors, y tienenensemble_stds_noise_factorstodos la forma(*shape, num_noise_factors)dondenum_noise_factorses la longitud deoptions.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_factorsse obtiene a partir de la dispersión observada en las muestras con «twirling», mientras que seensemble_stds_noise_factorssupone ú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
- 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
LayerNoiseLearningOptionspara 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 exponencialdefinida como , donde es el valor en ausencia de ruido ( ) y 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.
"linear", lo que equivale a"polynomial_degree_1".
"fallback", que simplemente devuelve los datos sin procesar correspondientes al nivel de ruido más bajofactor (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.