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)
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
from_backend
classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)
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, ogate_noisecampo na saídaNoiseModelserá umUniformGateNoisee presume-se que a probabilidade de erro esteja distribuída uniformemente entre as15bases de Pauli não-identitárias, formando um canal despolarizador uniforme que afetará todas as portas de entrelaçamento igualmente. SeFalse,gate_noiseserá umaGateWiseNoiseinstâ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
GateWiseNoiseos modelos,pauli_basesessas 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-seXemaeZemb. O comportamento padrão é utilizar a base de Pauli completa 2Q, excluindo"II". ParaUniformNoise, 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
from_pauli_lindblad_maps
classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)
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
PauliLindbladMapobjetos, 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
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 únicaGateWiseNoise: 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.
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.
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).