Modelos de ruido
qiskit_paulice.noise_models
Especificación del modelo de ruido para evaluar las comprobaciones de Pauli en el espacio-tiempo.
NoiseModel
class NoiseModel(gate_noise=None, readout_noise=None, idling_noise=None)
Bases: object
Modelo de ruido utilizado para determinar las ubicaciones óptimas de los circuitos en las comprobaciones de Pauli en el espacio-tiempo.
Parámetros
from_backend
classmethod from_backend(backend, layout, uniform_gate_noise=False, pauli_bases=None)
Crear una instancia de NoiseModel a partir de los datos de calibración del backend.
Las claves de los bordes del diccionario resultante GateWiseNoise utilizan índices de qubits virtuales (posiciones en layout). Si el circuito de entrada tiene una disposición que asigna los elementos virtuales a los físicos de forma coherente con layout, las teclas también sirven como índices físicos.
idling_noise siempre None se obtiene a partir de este método; si backend no se dispone de la calibración de lectura, readout_noise también será None.
Parámetros
- backend (BackendV2) – Un backend que contiene las probabilidades de error de las puertas de dos qubits para cada arista del mapa de acoplamiento, así como la información sobre los errores de lectura de cada qubit de la disposición.
- layout (Sequence[int]) – Índices de qubits físicos del backend que deben incluirse en el modelo de ruido. La orden define la indexación de los qubits virtuales (el qubit virtual 0 se corresponde con
layout[0], etc.). - uniform_gate_noise (bool) – Si
True, elgate_noisecampo en la salidaNoiseModelserá unUniformGateNoisey se supone que la probabilidad de error se distribuye uniformemente entre las15bases de Pauli distintas de la identidad, formando así un canal despolarizador uniforme que afectará por igual a todas las puertas de entrelazamiento. SiFalse,gate_noiseserá unaGateWiseNoiseinstancia en la que cada arista estará asociada a un canal de ruido personalizado basado en los datos de calibración del backend. - pauli_bases (Sequence[str] | None) – En el caso de
GateWiseNoiselos modelos,pauli_basesestas son las bases sobre las que se distribuirá la probabilidad de error comunicada por el backend. Cada base es una cadena de Pauli de dos caracteres emparejada de izquierda a derecha con la tupla del arco, de"XZ"modo que, en el arco(a, b), se colocanXenayZenb. El comportamiento predeterminado consiste en utilizar la base de Pauli completa 2Q, excluyendo"II". En el caso deUniformNoise, se supone que la base es completa, por lo que se ignora este argumento.
Devuelve
Una NoiseModel instancia que contiene el ruido de puerta y de lectura, derivado de los datos de calibración del backend.
Subidas
ValueError – El backend carece de datos de calibración o la estructura contiene índices de qubits no válidos.
Tipo de retorno
from_pauli_lindblad_maps
classmethod from_pauli_lindblad_maps(layer_noise, readout_noise=None)
Crear un « NoiseModel » a partir de las aplicaciones de Pauli-Lindblad.
Este método construye un NoiseModel a partir de PauliLindbladMap instancias que representan los canales de ruido que afectan a las puertas y, opcionalmente, a las mediciones. El ruido de la puerta se especifica mediante el layer_noise argumento. Se supone que cada PauliLindbladMap instancia actúa sobre una capa única de puertas de entrelazamiento. El ruido de lectura viene determinado por un único PauliLindbladMap que contiene generadores de Pauli-X de un solo qubit y sus tasas asociadas.
Parámetros
- layer_noise (Sequence[PauliLindbladMap]) – Una secuencia de
PauliLindbladMapobjetos, en la que cada mapa representa el canal de ruido de una capa de entrelazamiento concreta del circuito. - readout_noise (PauliLindbladMap | None) – Opcional
PauliLindbladMap: incluye generadores de Pauli X en cada qubit para detectar errores de lectura.
Devuelve
Para este método, siempre se generará None una NoiseModel instancia que refleje el modelo o modelos de ruido definidos en la entrada PauliLindbladMap``s. ``idling_noise .
Subidas
- ValueError – El peso del generador de errores es mayor que
2. - ValueError – El generador de errores de lectura no es Pauli-X.
Tipo de retorno
gate_noise
Tipo: GateNoise | None
Valor predeterminado: None
Errores que se producen durante las operaciones con puertas de 2 qubits. Puede ser:
UniformNoise: La misma probabilidad de error para todas las puertas. La probabilidad de error se distribuye por igual entre cada una de las bases de Pauli representadas en el canal.LayeredNoise: Canal de ruido de Pauli-Lindblad por cada capa de entrelazamiento únicaGateWiseNoise: Canal de ruido de Pauli-Lindblad por cada arista de entrelazamiento única
idling_noise
Tipo: float | None
Valor predeterminado: None
Tasa de desintegración del qubit durante el tiempo de inactividad. La probabilidad total de error se expresa como 1 - exp(-t / idling_noise).
readout_noise
Tipo: float | None
Valor predeterminado: None
Probabilidad de que se produzca un cambio de estado de un bit durante la medición.
UniformGateNoise
Valor predeterminado: <class 'float'>
Una probabilidad de despolarización aplicada de manera uniforme a todas las puertas de 2 qubits.
Esta probabilidad se distribuirá de forma equitativa entre los 15 estados de Pauli distintos de la identidad en la base de Pauli de 2 qubits para formar el canal de despolarización. Este canal de ruido se aplicará después de cada puerta de entrelazamiento.
LayeredGateNoise
Modelo de ruido por capas que asigna capas de entrelazamiento únicas a generadores de errores de Pauli.
Se supone que el error de Pauli-Lindblad asociado a cada capa de entrelazamiento está definido antes de las puertas de esa capa.
Las claves son tuplas de pares de índices de qubits (aristas) que definen una capa. Los valores son listas de (pauli, rate) tuplas, donde pauli es una cadena de Pauli o una cadena de Pauli definida sobre todos los qubits y rate es la tasa de error asociada.
alias de dict[tuple[tuple[int, int], …], list[tuple[Pauli | str, float]]]
GateWiseNoise
Modelo de ruido por puerta que asigna pares de qubits a un canal de ruido de Pauli.
Las claves son tuplas de pares de índices de qubits que representan aristas. Los valores son listas de tuplas (pauli, tasa), donde pauli es una cadena de Pauli de 2 caracteres y rate es la tasa de error asociada. (pauli_str, indices)La cadena se empareja de izquierda a derecha con la tupla de aristas —en consonancia PauliLindbladMapcon la forma dispersa de : para la arista (a, b), "XZ" coloca X en a y Z en b.
GateNoise
Valor predeterminado: 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]]]
El ruido de la puerta puede ser uniforme (float), por capas (dict) o por puerta (dict).