Skip to main content
IBM Quantum Platform

Metadatos OBPM

class OBPMetadata(truncation_error_budget, num_slices, operator_budget, backpropagation_history, num_backpropagated_slices)

GitHub

Bases: object

Un contenedor para los metadatos generados durante el método backpropagate() .


Atributos

Parámetros

truncation_error_budget

Tipo: TruncationErrorBudget

Valores que especifican la estrategia de truncamiento observable.

num_slices

Tipo: int | None

El número total de cortes que se intentarán retropropagar.

operator_budget

Tipo: OperatorBudget

Valores que especifican el tamaño que puede alcanzar el operador.

backpropagation_history

Tipo: list[SliceMetadata]

Una secuencia de objetos de metadatos para seguir la progresión de la retropropagación.

num_backpropagated_slices

Tipo: int

El número de cortes retropropagados.

Nota

Este valor puede diferir de len(backpropagation_history) en los casos en los que un criterio de parada como operator_budget.max_paulis o operator_budget.max_qwc_groups haya provocado la finalización de la retropropagación. Entonces, este valor debe ser igual a len(backpropagation_history) - 1 porque el último corte hizo que se superaran los umbrales. Sin embargo, por comodidad, estos valores se siguen registrando para que el usuario final pueda inspeccionarlos.


Métodos

accumulated_error

accumulated_error(observable_idx, slice_idx=None)

GitHub

Calcular el error acumulado para un observable dado en un "momento" dado.

Este método calcula el error acumulado para un índice observable dado en un "momento" determinado durante el curso de la retropropagación. En este contexto, "tiempo" debe entenderse como los pasos discretos de cortes ya retropropagados.

El error acumulado se calcula como la suma de los errores individuales SliceMetadata.slice_errors. A su vez, estos pueden calcularse dentro de un TruncationErrorBudget.p_norm. Por lo tanto, el error acumulado calculado constituye un límite superior del error acumulado real, tal y como establece la desigualdad de Minkowski (la generalización de la desigualdad triangular para normas Lp distintas de p=2).

Nota

Dado que una norma Lp general (distinta de p=2) no es una norma de producto interior, no satisface la ley del paralelogramo. Por lo tanto, debemos utilizar la desigualdad de Minkowski como límite superior del error acumulado.

Parámetros

  • observable_idx (int) – el índice del observable cuyo error acumulado calcular.
  • slice_idx (int | None) – el índice del corte (el paso discreto de "tiempo") hasta el que calcular el error acumulado. Si es None, se pasará por defecto a self.num_backpropagated_slices que equivale a computar el error acumulado de un observable en el último punto del tiempo que no haya superado ningún criterio de parada en el algoritmo

Devuelve

El error acumulado calculado según las explicaciones anteriores.

Tipo de retorno

Float

from_json

classmethod from_json(json_file)

GitHub

Carga los metadatos de un archivo json.

Parámetros

json_file (str) – la ruta del archivo a cargar.

Devuelve

Los metadatos cargados.

Tipo de retorno

OBPMetadata

left_over_error_budget

left_over_error_budget(observable_idx, slice_idx=None)

GitHub

Calcular el presupuesto de error restante para un observable dado en un "momento" dado.

Este método calcula el presupuesto de error restante para un índice observable dado en un "momento" determinado durante el curso de la retropropagación. En este contexto, "tiempo" debe entenderse como los pasos discretos de cortes ya retropropagados.

El presupuesto de error restante se calcula como el resto del presupuesto total menos la suma de los individuales SliceMetadata.slice_errors. A su vez, estos pueden calcularse dentro de un TruncationErrorBudget.p_norm.

Nota

Véanse también las explicaciones en accumulated_error() para más detalles sobre cómo se suman los errores de cada corte para formar un límite superior del error real a través de la desigualdad de Minkowski.

Nota

El presupuesto de error sobrante es relativo al valor de self.truncation_error_budget.max_error_total que puede ser numpy.inf en cuyo caso el valor devuelto de este método será numpy.inf, también.

Parámetros

  • observable_idx (int) – el índice de la observable cuyo presupuesto de error sobrante calcular.
  • slice_idx (int | None) – el índice de la rebanada (el paso discreto de "tiempo") hasta el que calcular el presupuesto de error restante. Si es None, se pasará por defecto a self.num_backpropagated_slices que equivale a calcular el presupuesto de error sobrante de un observable en el último punto del tiempo que no ha superado ningún criterio de parada en el algoritmo

Devuelve

El presupuesto de error restante se calcula según las explicaciones anteriores.

Tipo de retorno

Float

to_json

to_json(json_file, **kwargs)

GitHub

Vuelca estos metadatos en un archivo json.

Parámetros

  • json_file (str) – la ruta del archivo en el que volcar los metadatos.
  • kwargs - argumentos de palabra clave que se pasan a json.dump().

Tipo de retorno

Ninguna

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