Descripción general
El módulo qilisdk.noise contiene clases que representan diferentes tipos de ruido en sistemas cuánticos. Estos modelos de ruido pueden integrarse en simulaciones cuánticas para tener en cuenta las imperfecciones del mundo real y los efectos de decoherencia. Un NoiseModel puede contener varios tipos de ruido, cada uno de los cuales se aplica durante la simulación.
Backend |
Modelos de Ruido Compatibles |
|---|---|
✔ |
|
✔ |
|
✕ |
Uso
Los pases de ruido se añaden a un NoiseModel, que luego debe incluirse al crear un backend. Por ejemplo, para crear un circuito simple y simularlo con un backend CUDA que contenga un modelo de ruido de inversión de bit:
from qilisdk.noise import NoiseModel, BitFlip
from qilisdk.digital import X, Circuit
from qilisdk.functionals import DigitalPropagation
from qilisdk.readout import Readout
from qilisdk.backends import CudaBackend
# Define the random circuit and functional
c = Circuit(nqubits=2)
c.add(X(0))
c.add(X(1))
functional = DigitalPropagation(c)
# Apply bit-flip noise with 50% probability to X gates on qubit 1
nm = NoiseModel()
nm.add(BitFlip(probability=0.5), gate=X, qubits=[1])
# Execute with CUDA backend
backend_cuda = CudaBackend(noise_model=nm)
res = backend_cuda.execute(functional, readout=Readout().with_sampling(nshots=1000))
print(res)
Resumen de los Tipos de Ruido
Algunos de los pases de ruido disponibles en QiliSDK pueden utilizarse tanto para circuitos digitales como para programas analógicos, mientras que otros son específicos de uno u otro:
Tipo de Ruido |
Propagación Digital |
Evolución Analógica |
|---|---|---|
✔ |
||
✔ |
||
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |