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)
Bases: OptionsV2
Opções para NoiseLearner.
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
- 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çõesqubits no circuito são girados.
"active-accum": em cada camada individual girada, a união de instruções qubitsno 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.
As barreiras e as instruções de atraso são ignoradas ao determinar se um qubit está ativo.
Padrão: "active-accum".