Skip to main content
IBM Quantum Platform

NoiseLearnerOptions

class NoiseLearnerOptions(_VERSION=2, max_execution_time=Unset, environment=<factory>, simulator=<factory>, max_layers_to_learn=Unset, shots_per_randomization=Unset, num_randomizations=Unset, layer_pair_depths=Unset, twirling_strategy=Unset, experimental=Unset)

GitHub

Bases: OptionsV2

Opções para NoiseLearner.

Nota

O número total de circuitos exclusivos implementados para aprender o ruído de uma única camada depende apenas de layer_pair_depths e num_randomizations. Por exemplo, se layer_pair_depths contiver seis profundidades e num_randomizations for definido como 32, o estágio de aprendizado de ruído executará um total de 6 * 9 circuitos exclusivos por camada, cada um com 32 randomizações (em shots_per_randomization cada).

O número 9 acima é o número de circuitos exclusivos que precisam ser implementados para conhecer o ruído de todos os subsistemas de dois qubits na camada determinada, realizando medições locais. De fato, aprender o ruído de um único desses subsistemas requer a medição de todos os 16 dois-qubit Paulis nesse subsistema. Aproveitando as relações de comutação para medir mais de um desses Paulis (por exemplo, XI, IX e XX) com um único circuito, é possível medir todos esses Paulis 16 implementando apenas circuitos 9 . A paralelização dessas tarefas de medição da maneira ideal permite medir o 16 Paulis para todos os subsistemas de dois qubits da camada com apenas 9 circuitos. Mais detalhes na Ref. [1].

Referências

  1. E. van den Berg, Z. Minev, A. Kandala, K. Temme, Probabilistic error cancellation with sparse Pauli-Lindblad models on noisy quantum processors, Nature Physics volume 19, pages 1116-1121 (2023). arXiv:2201.09866 [quant-ph]

Atributos

Parâmetros

  • _VERSION (int)
  • max_execution_time (UnsetType | int)
  • environment (EnvironmentOptions | Dict)
  • simulator (SimulatorOptions | Dict)
  • max_layers_to_learn (UnsetType | int | None)
  • shots_per_randomization (UnsetType | int)
  • num_randomizations (UnsetType | int)
  • layer_pair_depths (UnsetType | list[int])
  • twirling_strategy (UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all'])
  • experimental (UnsetType | dict)

environment

Tipo: EnvironmentOptions | Dict

Valor Padrão: FieldInfo(annotation=NoneType, required=False, default_factory=EnvironmentOptions)

experimental

Tipo: UnsetType | dict

Valor Padrão: Unset

Opções experimentais.

Essas opções estão sujeitas a alterações sem notificação, e a estabilidade não é garantida.

layer_pair_depths

Tipo: UnsetType | list[int]

Valor Padrão: Unset

A profundidade do circuito (medida em número de pares) a ser usada nos experimentos de aprendizado.

Os pares são usados como unidade porque exploramos a natureza order-2 de nossas portas de emaranhamento na implementação do aprendizado de ruído. Por exemplo, um valor de 3 corresponde a 6 repetições da camada de interesse. Padrão: (0, 1, 2, 4, 16, 32).

max_execution_time

Tipo: UnsetType | int

Valor Padrão: Unset

max_layers_to_learn

Tipo: UnsetType | int | None

Valor Padrão: Unset

O número máximo de camadas exclusivas a serem aprendidas.

Um valor None indica que não há limite. Se houver mais camadas exclusivas presentes, algumas camadas não serão aprendidas ou atenuadas. As camadas aprendidas são priorizadas com base no número de vezes que ocorrem e, para camadas que ocorrem igualmente, são classificadas pelo número de portas de dois qubits na camada. Padrão: 4.

num_randomizations

Tipo: UnsetType | int

Valor Padrão: Unset

O número de circuitos aleatórios a serem usados por configuração de circuito de aprendizagem.

Uma configuração é uma base de medição e uma definição de profundidade. Por exemplo, se o seu experimento tiver seis profundidades, definir esse valor como 32 resultará em um total de 32 * 9 * 6 circuitos que precisam ser executados (em que 9 é o número de circuitos que precisam ser implementados para medir todos os observáveis necessários; consulte a nota na docstring de NoiseLearnerOptions para obter detalhes do modo), em shots_per_randomization cada um.

shots_per_randomization

Tipo: UnsetType | int

Valor Padrão: Unset

O número total de disparos a serem usados por circuito de aprendizado aleatório.

Um circuito de aprendizagem é um circuito aleatório em uma profundidade de aprendizagem específica com uma base de medição específica que é executada no hardware. Padrão: 128.

simulator

Tipo: SimulatorOptions | Dict

Valor Padrão: FieldInfo(annotation=NoneType, required=False, default_factory=SimulatorOptions)

twirling_strategy

Tipo: UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']

Valor Padrão: Unset

A estratégia de giro nas camadas identificadas de portas giratórias de dois qubits.

Os valores permitidos são:

  • "active"em cada camada individual girada, somente os qubits de instrução são girados.

  • "active-circuit": em cada camada individual girada, a união de todas as instruções

    qubits no circuito são girados.

  • "active-accum": em cada camada individual girada, a união de instruções qubits

    no circuito até a camada atual girada são giradas.

  • "all"em cada camada individual girada, todos os qubits no circuito de entrada são girados.

Nota

As barreiras e as instruções de atraso são ignoradas ao determinar se um qubit está ativo.

Padrão: "active-accum".


Métodos

update

update(**kwargs)

GitHub

Atualize as opções.

Parâmetros

kwargs (Any)

Tipo de retorno

Nenhum

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.