Resultados Intermedios
Cuando un funcional se construye con store_intermediate_results=True (actualmente soportado por AnalogEvolution y QuantumReservoir), o mediante mediciones a mitad del circuito en un Circuit, el backend almacena un resultado de readout para cada paso temporal. Los mismos métodos de readout se aplican en cada paso.
from qilisdk.analog import Schedule, Z, X
from qilisdk.core import ket
from qilisdk.functionals import AnalogEvolution
from qilisdk.readout import Readout
from qilisdk.backends import QiliSim
T = 5.0
schedule = Schedule(
hamiltonians={"driver": X(0), "problem": Z(0)},
coefficients={
"driver": {(0.0, T): lambda t: 1.0 - t / T},
"problem": {(0.0, T): lambda t: t / T},
},
dt=0.1,
)
backend = QiliSim()
functional = AnalogEvolution(schedule, initial_state=ket(0), store_intermediate_results=True)
spec = Readout().with_expectation(observables=[Z(0)]).with_state_tomography()
result = backend.execute(functional, readout=spec)
# Per-step expectation values (intermediate steps + final step)
all_evs = result.get_intermediate_expectation_values() # list[list[float]]
all_states = result.get_intermediate_states() # list[QTensor]
all_probs = result.get_intermediate_probabilities() # list[dict[str, float]]
all_samples = result.get_intermediate_samples() # list[dict[str, int]]
Propiedad |
Tipo |
Requiere |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Todas las listas intermedias contienen una entrada por paso temporal en orden cronológico, con el paso final añadido al último. result[i] devuelve el ReadoutCompositeResults para el paso i.