Skip to main content
IBM Quantum Platform

Modelos de ruído

qiskit_paulice.noise_models

Especificação do modelo de ruído para a avaliação de verificações de Pauli no espaço-tempo.

NoiseModel

class NoiseModel(gate_noise=None, readout_noise=None, idling_noise=None)

GitHub

Bases: object

Modelo de ruído utilizado para determinar as localizações ideais dos circuitos para verificações de Pauli no espaço-tempo.

Parâmetros

  • gate_noise (GateNoise | None)
  • readout_noise (float | None)
  • idling_noise (float | None)

from_backend

classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)

GitHub

Instancie um NoiseModel a partir dos dados de calibração do backend.

As chaves “Edge” no dicionário resultante GateWiseNoise utilizam índices de qubits virtuais (posições em layout). Se o circuito de entrada tiver um layout que mapeie o virtual para o físico de maneira consistente com layout, as teclas também funcionam como índices físicos.

idling_noise é sempre None obtido a partir desse método; se backend não houver calibração da leitura, readout_noise também será None.

Parâmetros

  • backend (BackendV2) – Um backend que contém as probabilidades de erro das portas de dois qubits para cada aresta do mapa de acoplamento, bem como informações sobre erros de leitura para cada qubit no layout.
  • layout (Sequence[int]) – Índices de qubits físicos no backend a serem incluídos no modelo de ruído. A ordem define a indexação dos qubits virtuais (o qubit virtual 0 corresponde a layout[0], etc.).
  • uniform_gate_noise (bool) – Se True, o gate_noise campo na saída NoiseModel será um UniformGateNoise e presume-se que a probabilidade de erro esteja distribuída uniformemente entre as 15 bases de Pauli não-identitárias, formando um canal despolarizador uniforme que afetará todas as portas de entrelaçamento igualmente. Se False, gate_noise será uma GateWiseNoise instância em que cada aresta estará associada a um canal de ruído personalizado com base nos dados de calibração do backend.
  • pauli_bases (Sequence[str] | None) – Para GateWiseNoise os modelos, pauli_bases essas são as bases sobre as quais será distribuída a probabilidade de erro informada pelo backend. Cada base é uma sequência de Pauli de 2 caracteres emparelhada da esquerda para a direita com o tuplo da aresta; assim "XZ" , na aresta (a, b) , coloca-se X em a e Z em b. O comportamento padrão é utilizar a base de Pauli completa 2Q, excluindo "II". Para UniformNoise, presume-se a base completa, e esse argumento é ignorado.

Retorna

Uma NoiseModel instância contendo ruído de porta e de leitura derivada dos dados de calibração do backend.

Aumentos

ValueError – O backend não possui dados de calibração ou o layout contém índices de qubits inválidos.

Tipo de retorno

NoiseModel

from_pauli_lindblad_maps

classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)

GitHub

Crie um mapa de NoiseModel, a partir dos mapas de Pauli-Lindblad.

Este método constrói um NoiseModel a partir de PauliLindbladMap instâncias que representam canais de ruído que afetam os portões e, opcionalmente, as medições. O ruído da porta é especificado com o layer_noise argumento. Presume-se que cada PauliLindbladMap instância atue em uma camada única de portas de entrelaçamento. O ruído de leitura é especificado por um único PauliLindbladMap que contém geradores de Pauli-X de qubit único e suas taxas associadas.

Parâmetros

  • layer_noise (Sequence[PauliLindbladMap]) – Uma sequência de PauliLindbladMap objetos, em que cada mapa representa o canal de ruído de uma camada de entrelaçamento específica no circuito.
  • readout_noise (PauliLindbladMap | None) – Opcional PauliLindbladMap : incluindo geradores de Pauli X em cada qubit para erros de leitura.

Retorna

Uma NoiseModel instância que reflita o(s) modelo(s) de ruído definido(s) na entrada PauliLindbladMap``s. ``idling_noise será sempre fornecida None para este método.

Aumentos

  • ValueError – O peso do gerador de erros é maior que 2.
  • ValueError – O gerador de erros de leitura não é o Pauli-X.

Tipo de retorno

NoiseModel

gate_noise

Tipo: GateNoise | None

Valor Padrão: None

Erros que ocorrem durante as operações das portas de 2 qubits. Pode ser:

  • UniformNoise: A mesma probabilidade de erro para todas as portas. A probabilidade de erro é distribuída igualmente entre cada base de Pauli representada no canal.
  • LayeredNoise: Canal de ruído de Pauli-Lindblad por camada de entrelaçamento única
  • GateWiseNoise: Canal de ruído de Pauli-Lindblad por aresta de entrelaçamento única

idling_noise

Tipo: float | None

Valor Padrão: None

Taxa de decaimento do qubit durante o tempo de inatividade. A probabilidade total de erro é dada por 1 - exp(-t / idling_noise).

readout_noise

Tipo: float | None

Valor Padrão: None

Probabilidade de inversão de bit durante a medição.

UniformGateNoise

Valor Padrão: <class 'float'>

Uma probabilidade de despolarização aplicada uniformemente a todas as portas de 2 qubits.

Essa probabilidade será distribuída igualmente entre os 15 operadores de Pauli diferentes da identidade na base de Pauli de 2 qubits para formar o canal despolarizador. Esse canal de ruído será aplicado após cada porta de entrelaçamento.

LayeredGateNoise

Modelo de ruído em camadas que mapeia camadas de entrelaçamento únicas para geradores de erros de Pauli.

Nota

Presume-se que o erro de Pauli-Lindblad associado a cada camada de entrelaçamento seja definido antes das portas dessa camada.

As chaves são tuplas de pares de índices de qubits (arestas) que definem uma camada. Os valores são listas de (pauli, rate) tuplas, em que pauli é uma cadeia de Pauli ou uma sequência de Pauli definida sobre todos os qubits e rate é a taxa de erro associada.

alias de dict[tuple[tuple[int, int], …], list[tuple[Pauli | str, float]]]

GateWiseNoise

Modelo de ruído por porta que mapeia pares de qubits para um canal de ruído de Pauli.

As chaves são tuplas de pares de índices de qubits que representam arestas. Os valores são listas de tuplas (pauli, taxa), em que pauli é uma sequência de Pauli de 2 caracteres e rate é a taxa de erro associada. (pauli_str, indices)A sequência é emparelhada da esquerda para a direita com o tuplo de arestas — correspondendo PauliLindbladMapà forma esparsa de : para a aresta (a, b), "XZ" coloca X em a e Z em b.

alias de dict[tuple[int, int], list[tuple[str, float]]]

GateNoise

Valor Padrão: float | dict[tuple[tuple[int, int], ...], list[tuple[qiskit.quantum_info.operators.symplectic.pauli.Pauli | str, float]]] | dict[tuple[int, int], list[tuple[str, float]]]

O ruído do gate pode ser uniforme (float), em camadas (dict) ou por gate (dict).

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