Evolució Analògica
El funcional AnalogEvolution simula l’evolució analògica d’un sistema quàntic sota un o més Hamiltonians, seguint un programa dependent del temps especificat. La seva interfície de paràmetres reflecteix la de Schedule, cosa que facilita el recorregut de formes d’ona de control o amplituds de pols des d’optimitzadors clàssics.
Els observables i els comptatges de mesures s’especifiquen per separat mitjançant objectes de lectura passats a execute().
Paràmetres
schedule (
Schedule): Defineix el temps total d’evolució, els passos de temps, els Hamiltonians i els seus coeficients dependents del temps.initial_state (
QTensor): Estat inicial del sistema.store_intermediate_results (bool, opcional): Si és True, registra l’estat en cada pas de temps. El valor per defecte és False.
Retorna
FunctionalResult: Consulteuget_expectation_values()per als observables mesurats,get_state()per a l’estat final, iget_intermediate_states()iget_intermediate_expectation_values()quanstore_intermediate_resultsestà activat.
Exemple d’Ús
import numpy as np
from qilisdk.analog import Schedule, X, Z, Y
from qilisdk.core import QTensor
from qilisdk.core.interpolator import Interpolation
from qilisdk.backends import QiliSim, CudaBackend
from qilisdk.functionals import AnalogEvolution
# Define total time and timestep
T = 10.0
dt = 0.5
nqubits = 1
# Define Hamiltonians
Hx = -sum(X(i) for i in range(nqubits))
Hz = sum(Z(i) for i in range(nqubits))
# Create the AnalogEvolution functional
analog_evolution = AnalogEvolution(
schedule=Schedule.linear(Hx, Hz, total_time=T, dt=dt),
initial_state=QTensor.uniform(nqubits),
store_intermediate_results=False,
)
podem executar-lo al backend QiliSim:
from qilisdk.readout import Readout
# Execute on QiliSim backend and inspect results
backend = QiliSim()
results = backend.execute(
analog_evolution,
Readout().with_expectation(observables=[Z(0), X(0), Y(0)]),
)
print(results)
Sortida
- Functional Results: [
Expectation Value Results: (
expectation_values=[-0.99388223, 0.0467696, -0.10005353],
)
]