Inici ràpid
A continuació es mostren exemples mínims per posar en marxa circuits digitals i evolucions analògiques.
Exemple de Circuit Digital
Construïu un circuit de 2 qubits, mostrejeu-lo i inspeccioneu els recomptes de mesura:
import numpy as np
from qilisdk.digital import Circuit, H, RX, CNOT
from qilisdk.backends import QiliSim
from qilisdk.functionals import DigitalPropagation
from qilisdk.readout import Readout
# 1. Define a simple 2‑qubit circuit
circuit = Circuit(2)
circuit.add(H(0))
circuit.add(RX(1, theta=np.pi / 2))
circuit.add(CNOT(0, 1))
# 2. Wrap it in a DigitalPropagation functional
propagation = DigitalPropagation(circuit=circuit)
# 3. Execute on GPU with sampling readout
backend = QiliSim()
results = backend.execute(propagation, Readout().with_sampling(nshots=500))
print("Counts:", results.get_probabilities())
Exemple d’Evolució Analògica
Definiu dos Hamiltonians, construïu una programació d’interpolació basada en intervals i simuleu:
from qilisdk.analog import Schedule, X, Z
from qilisdk.core import ket, tensor_prod
from qilisdk.functionals import AnalogEvolution
from qilisdk.backends import QiliSim
from qilisdk.readout import Readout
# Total time and step
T, dt = 5.0, 0.1
# Hamiltonians H1 = ∑ X, H2 = ∑ Z
n = 1
H1 = sum(X(i) for i in range(n))
H2 = sum(Z(i) for i in range(n))
# Define coefficients over the full interval with automatic sampling
schedule = Schedule(
hamiltonians={"h1": H1, "h2": H2},
coefficients={
"h1": {(0.0, T): lambda t: 1 - t / T},
"h2": {(0.0, T): lambda t: t / T},
},
dt=dt,
)
# Initial state |+⟩
psi0 = tensor_prod([(ket(0) - ket(1)).unit() for _ in range(n)]).unit()
# AnalogEvolution functional
evolution = AnalogEvolution(
schedule=schedule,
initial_state=psi0,
store_intermediate_results=True,
)
# Execute on CPU with expectation readout
results = QiliSim().execute(
evolution,
Readout().with_expectation(observables=[Z(0)]).with_state_tomography(),
)
print(results)
Passos següents
Un cop hàgiu confirmat que tot funciona, exploreu la secció de tutorials o consulteu cada mòdul per obtenir més detalls:
Primitives del nucli (Core) per a vectors d’estat, operadors i abstraccions compartides.
Fluxos de treball digitals (Digital) que cobreixen la construcció de circuits, escombrats de paràmetres i exportació QASM.
Fluxos de treball analògics (Analog) per a constructors d’Hamiltonians, programacions i utilitats d’evolució temporal.
Funcionals (Funcionals) per veure com els experiments connecten models amb backends d’execució.
Objectius d’execució (Backends) per comparar els temps d’execució de Qutip (CPU) i CUDA (CPU/GPU).
Noise (Noise) to simulate hardware effects in both digital and analog contexts.
Funcions de cost (Cost Functions) per a objectius d’optimització i mètriques comunes.
Núvol SpeQtrum (SpeQtrum) per a la configuració de comptes, treballs amb calibració i recuperació de resultats.
Feliç programació quàntica!