Propagació Digital
El funcional DigitalPropagation propaga un circuit quàntic digital a través del backend. Com que és una subclasse de PrimitiveFunctional, qualsevol paràmetre simbòlic exposat pel Circuit subjacent es pot consultar o actualitzar mitjançant mètodes d’ajuda com get_parameter_names().
Els detalls de mesura, com el nombre de shots, s’especifiquen per separat mitjançant objectes de lectura passats a execute().
Paràmetres
circuit (
Circuit): Circuit a propagar.
Retorna
FunctionalResult: Accediu als comptadors de shotsmitjançant
get_samples()iprobabilitats mitjançant
get_probabilities().
Exemple d’ús
import numpy as np
from qilisdk.digital import Circuit, H, RX, CNOT
from qilisdk.functionals import DigitalPropagation
# Create a 2-qubit circuit
circuit = Circuit(2)
circuit.add(H(0))
circuit.add(RX(0, theta=np.pi))
circuit.add(CNOT(0, 1))
# Initialize the DigitalPropagation functional
digital_propagation = DigitalPropagation(circuit)
Aquest funcional es pot executar en qualsevol backend que admeti circuits digitals. Per exemple, podem executar-lo al backend CUDA:
from qilisdk.backends import CudaBackend
from qilisdk.readout import Readout
# Run on CUDA backend and retrieve counts
backend = CudaBackend()
results = backend.execute(digital_propagation, Readout().with_sampling(nshots=100))
print(results)
Sortida
- Functional Results: [
Sampling Results: (
nshots=100,
samples={'00': 53, '11': 47}
)
]