LayerNoiseLearningOptions
class LayerNoiseLearningOptions(max_layers_to_learn=Unset, shots_per_randomization=Unset, num_randomizations=Unset, layer_pair_depths=Unset)
Bases: object
Opciones para aprender el ruido de las capas. Sólo lo utiliza V2 Estimator.
Estas opciones sólo se utilizan cuando el nivel de resiliencia o las opciones especifican una técnica que requiere aprendizaje de ruido de capa.
El número total de circuitos únicos implementados para aprender el ruido de una sola capa depende únicamente de layer_pair_depths y num_randomizations. Por ejemplo, si layer_pair_depths contiene seis profundidades y num_randomizations se establece en 32, la etapa de aprendizaje de ruido ejecuta un total de 6 * 9 circuitos únicos por capa, cada uno con 32 aleatorizaciones (en shots_per_randomization cada uno).
El número 9 anterior es el número de circuitos únicos que necesitan ser implementados para aprender el ruido para todo el subsistema de dos qubits en la capa dada realizando mediciones locales. De hecho, aprender el ruido para uno solo de estos subsistemas requiere medir todos los 16 Paulis de dos qubits en ese subsistema. Aprovechando las relaciones de conmutación para medir más de una de estas Paulis (por ejemplo, XI, IX, y XX) con un solo circuito, es posible medir todas estas 16 Paulis implementando únicamente circuitos 9 . Paralelizar estas tareas de medición de forma óptima permite entonces medir el 16 Paulis para todos los subsistemas de dos qubits de la capa con sólo 9 circuitos. Más detalles en Ref. [1].
Referencias
- E. van den Berg, Z. Minev, A. Kandala, K. Temme, Probabilistic error cancellation with sparse Pauli-Lindblad models on noisy quantum processors, Nature Physics volumen 19, páginas 1116-1121 (2023). arXiv:2201.09866 [quant-ph]
Atributos
Parámetros
- max_layers_to_learn (UnsetType | int | None)
- shots_per_randomization (UnsetType | int)
- num_randomizations (UnsetType | int)
- layer_pair_depths (UnsetType | list[int])
layer_pair_depths
Tipo: UnsetType | list[int]
Valor predeterminado: Unset
La profundidad de los circuitos (medida en número de pares) que se utilizará en los experimentos de aprendizaje.
Se utilizan pares como unidad porque aprovechamos la naturaleza « order-2 » de nuestras puertas de entrelazamiento en la implementación del aprendizaje con ruido. Un valor de 3 correspondería a 6 capas de la capa en cuestión, por ejemplo.
Por defecto: (0, 1, 2, 4, 16, 32).
max_layers_to_learn
Tipo: UnsetType | int | None
Valor predeterminado: Unset
El número máximo de capas únicas que se van a entrenar.
El None valor indica que no hay límite. Si hay más capas únicas, algunas de ellas no se aprenderán ni se mitigarán. Las capas aprendidas se ordenan por orden de prioridad en función del número de veces que aparecen en un conjunto de ejecuciones del estimador PUB, y, en caso de que haya capas con la misma frecuencia de aparición, se ordenan además según el número de puertas de dos qubits que contienen.
Por defecto: 4.
num_randomizations
Tipo: UnsetType | int
Valor predeterminado: Unset
El número de circuitos aleatorios que se utilizarán por cada configuración de circuito de aprendizaje.
Una configuración consiste en una base de medición y un ajuste de profundidad. Por ejemplo, si tu experimento tiene seis niveles de profundidad, al establecer este valor en 32 se obtendrá un total de 32 * 9 * 6 circuitos que deben ejecutarse (donde 9 es el número de circuitos que deben implementarse para medir todas las observables necesarias; consulta la nota en la cadena de documentación LayerNoiseLearningOptions de para obtener más detalles), a shots_per_randomization cada uno.
Por defecto: 32.
shots_per_randomization
Tipo: UnsetType | int
Valor predeterminado: Unset
El número total de intentos que se utilizarán por cada circuito de aprendizaje aleatorio.
Un circuito de aprendizaje es un circuito aleatorio con una profundidad de aprendizaje determinada y una base de medición específica que se ejecuta en hardware.
Por defecto: 128.