-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement optimization for a Hamiltonian with non linear dependence on the field #23
Comments
Yes, that would definitely be nice to have. I'm not sure it will make it into the initial release, but we'll see. In any case, the way to implement this is to add a |
I actually think that it might be possible to optimize parametrized pulses without making any changes at all to the One would set up the Hamiltonian as In addition to the So basically, Krotov will only know about u(t), not ϵ(t), and calculate updates for that u(t). The parametrization of the pulse is only taken into account for the propagation, which is external to the optimization, and via ∂H/∂u, which is the only place where the equation of motion enters the optimization explicitly. Obviously, there are some caveats: the I might be overlooking something, but I think this should work. |
This would be really nice!
|
Not within the constraints of this "hacky" solution: There is no way that QuTiP could know whether it receives This still leaves room for a more user-friendly implementation of parametrization that works transparently for the user, but requires some minimal changes in the Krotov code. I actually have a working implementation in #92 that does all of this correctly. It still requires testing and documentation, though. |
Specially when talking about bounded variables, using an optimization for a Hamiltonian H( f ( Ɛ(t) )) can be really useful, with Ɛ(t) being the parameter to optimize and f a function with a bounded image.
So as Christiane and Daniel R. used in one of their past works, for a variable α with bounds [a,b] one could write α = b*( tanh(Ɛ) + 1)/2 + a and try to optimize Ɛ. Due to the monotonic behaviour in tanh I don't think second order Krotov would be necessary for this to work, so it would be a nice feature to have even in first order Krotov.
The text was updated successfully, but these errors were encountered: