Propagación Digital

El funcional DigitalPropagation propaga un circuito cuántico digital a través del backend. Al ser una subclase de PrimitiveFunctional, cualquier parámetro simbólico expuesto por el Circuit subyacente puede consultarse o actualizarse mediante métodos auxiliares como get_parameter_names().

Los detalles de medición, como el número de shots, se especifican por separado mediante objetos de lectura que se pasan a execute().

Parámetros

  • circuit (Circuit): Circuito a propagar.

Retorna

Ejemplo de Uso

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)

Este functional puede ejecutarse en cualquier backend que soporte circuitos digitales. Por ejemplo, puede ejecutarse en el backend de 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)

Salida

- Functional Results: [

Sampling Results: (
    nshots=100,
    samples={'00': 53, '11': 47}
)

]