Skip to main content
IBM Quantum Platform

Referência da API de mitigação de erros da rede Tensor da Algorithmiq

  • Qiskit Functions

    Qiskit Functions — ferramentas pré-configuradas criadas por organizações parceiras — abstraem partes do fluxo de trabalho de desenvolvimento de software para simplificar e acelerar a descoberta de algoritmos e o desenvolvimento de aplicativos em escala de serviços públicos. Clique para ver o guia desta função do Qiskit.


Entradas

Caution

Atualmente, o TEM apresenta as seguintes limitações:

  • Circuitos parametrizados não são suportados. O argumento parameters deve ser definido como None se a precisão for especificada. Essa restrição será removida em versões futuras.
  • Só são suportados circuitos sem laços. Essa restrição será removida em versões futuras.
  • Portas não unitárias, como reset, measure e todas as formas de fluxo de controle, não são suportadas. O suporte à reinicialização será adicionado nas próximas versões.

Parâmetros

pubs

Tipo: Iterable[EstimatorPubLike]

Uma iterável de objetos do tipo " PUB " (bloco unificado primitivo), como tuplas (circuit, observables) ou (circuit, observables, parameters, precision). Consulte a Visão geral dos PUBs para obter mais informações. Se for aprovado um circuito que não seja ISA, ele será compilado com as configurações ideais. Se um circuito ISA for aprovado, ele não será transpilado; nesse caso, a observável deve ser definida em toda a QPU.

  • Necessário: sim
  • Exemplo:(circuit, observables)

backend_name

Tipo: str

Valor Padrão: Least busy backend

Nome do backend para realizar a consulta

  • Obrigatório: Não
  • Exemplo:"ibm_fez"

Opções

Tipo: dict

As opções de entrada para esta função são especificadas como um dicionário aninhado. Veja a lista completa de opções e seus valores padrão.

  • Obrigatório: Não
  • Exemplo:{"max_bond_dimension": 100}

Um dicionário que contém as opções avançadas do TEM. O dicionário pode conter as chaves da lista a seguir. Se alguma das opções não for especificada, será utilizado o valor padrão indicado na lista. Os valores padrão são adequados para o uso comum do TEM.

Lista de opções

tem_max_bond_dimension

Tipo: int

Valor Padrão: 500

A dimensão máxima do laço a ser utilizada nas redes tensoriais.

tem_compression_cutoff

Tipo: float

Valor Padrão: 1e-16

O valor de corte a ser utilizado nas redes tensoriais.

compute_shadows_bias_from_observable

Tipo: bool

Valor Padrão: False

Um indicador booleano que indica se o viés para o protocolo clássico de medição de sombras deve ou não ser adaptado à observável PUB. Se for False, será utilizado o protocolo clássico de sombras (probabilidade igual de medir Z, X, Y).

shadows_bias

Tipo: np.ndarray

Valor Padrão: np.array([1 / 3, 1 / 3, 1 / 3])

O viés a ser utilizado no protocolo de medição de sombras clássicas aleatórias, uma matriz de tipo 1d ou 2d com tamanho 3 ou forma (num_qubits, 3), respectivamente. A ordem é ZXY.

max_execution_time

Tipo: int or None

Valor Padrão: None

O tempo máximo de execução na QPU, em segundos. Se o tempo de execução exceder esse valor, a tarefa será cancelada. Caso contrário None, será aplicado um limite padrão definido pelo Qiskit Runtime.

num_randomizations

Tipo: int

Valor Padrão: 32

O número de randomizações a ser utilizado para o aprendizado de ruído e a rotação de portas.

max_layers_to_learn

Tipo: int

Valor Padrão: True

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

mitigate_readout_error

Tipo: bool

Valor Padrão: True

Um sinalizador booleano que indica se deve ou não ser realizada a mitigação de erros de leitura.

num_readout_calibration_shots

Tipo: int

Valor Padrão: 10000

O número de tentativas a ser utilizado para mitigar erros de leitura.

default_precision

Tipo: float

Valor Padrão: 0.02

A precisão padrão a ser usada para os PUBs cuja precisão não foi especificada.

seed

Tipo: int or None

Valor Padrão: None

Defina a semente do gerador de números aleatórios para garantir a reprodutibilidade. Se for o caso None, não defina a semente.

shots_per_randomization

Tipo: int

Valor Padrão: 128

O número total de tentativas a serem utilizadas por circuito de aprendizado aleatório.

layer_pair_depths

Tipo: list[int]

Valor Padrão: [0, 1, 2, 4, 16, 32]

As profundidades do circuito (medidas em número de pares) a serem utilizadas nas experiências de aprendizagem.

layer_noise_model

Tipo: NoiseLearnerResult, Sequence[LayerError], or None

Valor Padrão: None

O ruído pré-calculado do modelo de aprendizagem resulta de uma execução anterior.

private

Tipo: bool

Valor Padrão: False

Se as tarefas da QPU devem ser privadas. Definir esse valor como True impedirá downloads posteriores dos dados do experimento e é recomendado para trabalhos confidenciais.

tem_enforce_linear_circuit

Tipo: bool

Valor Padrão: False

Se o circuito deve ser implementado com topologia linear.

Precisão

A precisão dos resultados pode ser solicitada de três maneiras. A precisão pode ser passada no PUB, e ela se aplicará apenas a esse PUB. Caso contrário, é possível passar default_precision um nas opções, conforme especificado acima. Por fim, para uso avançado, o número específico de fotos por PUB pode ser passado nas opções com default_shots, e isso substituirá qualquer outra opção de precisão.

Se for passado um default_precision valor ou um valor por PUB, o número de iterações é estimado para atingir a precisão desejada. Isso é feito com base nos parâmetros da QPU e nas taxas de erro selecionados, da seguinte forma:

  • Cálculo do erro por porta em camadas (EPLG), que quantifica o ruído introduzido pelas camadas de portas de dois qubits. Se houver propriedades de backend disponíveis, ele extrai a fidelidade relevante; caso contrário, utiliza um valor padrão.
  • Contar o número de portas de dois qubits no circuito, já que estas são normalmente as principais fontes de ruído.
  • Cálculo de um pré-fator de ruído com base no número de portas de dois qubits e no EPLG.
  • Utilizando a precisão solicitada, ele estima o número necessário de disparos por meio de um cálculo que leva em conta o pré-fator de ruído e o inverso do quadrado da precisão.

Essa abordagem garante que o número de disparos seja suficiente para alcançar a precisão desejada, levando em conta tanto a estrutura do circuito quanto as características de ruído do backend.


Saídas

Um Qiskit PrimitiveResults que contém o resultado com correção TEM. O resultado para cada PUB é retornado como um objeto PubResult que contém os seguintes campos:

dados

Tipo: Databin

Um Qiskit DataBin que contém a observável com correção TEM e seu erro padrão. O formulário " DataBin " possui os seguintes campos:

  • evs: O valor observável corrigido pelo TEM.
  • stds: O erro-padrão da observável corrigida pelo TEM.

metadados

Tipo: dict

Um dicionário que contém resultados adicionais. O dicionário contém as seguintes chaves:

  • "evs_non_mitigated": O valor observável sem mitigação de erros.
  • "stds_non_mitigated": O erro padrão do resultado sem mitigação de erros.
  • "evs_mitigated_no_readout_mitigation": O valor observado com mitigação de erros, mas sem mitigação de erros de leitura.
  • "stds_mitigated_no_readout_mitigation": O erro padrão do resultado com mitigação de erros, mas sem mitigação de erros de leitura.
  • "evs_non_mitigated_with_readout_mitigation": O valor observável sem mitigação de erros, mas com mitigação de erros de leitura.
  • "stds_non_mitigated_with_readout_mitigation": O erro padrão do resultado sem mitigação de erros, mas com mitigação de erros de leitura.
  • "resource_usage": Um dicionário que contém os recursos de tempo utilizados pelo TEM.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.