-
Using Krotov's method, I'd like to add constraint terms I was thinking about defining a cost functional Is there another way to implement these constraint terms? When running an optimization with Krotov's method, we can track the value of |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
Krotov's method does not support arbitrary running costs. Fundamentally, you should consider it a method suitable for unconstrained optimization. Some forms of Also, penalties do not enforce constraints. To ensure amplitude constraints with Krotov's method, "pulse parameterization" should be used, see Pulse Parametrization for Krotov's Method. However, since this makes the control non-linear, it is important to take small update steps (large λₐ), slowing down the conversion significantly. Non-linear parameterization can also introduce local traps in the optimization landscape, so you have to try different guess pulses. Frequency constraints are mathematically possible, see J. P. Palao, D. Reich, and C. Koch, "Steering the optimization pathway in the control landscape using constraints", Phys. Rev. A 88, 053409 (2013). However, this significantly complicates the implementation, and there are no plans to implement this. In practice, a better way to impose spectral constraints is to apply a filter (via a State-dependent running costs Either type of running cost is significantly easier to realize with GRAPE, see M. H. Goerz, S. C. Carrasco, and V. S. Malinovsky, Quantum optimal control via semi-automatic differentiation, Quantum 6, 871 (2022). That's also why implementing any of these for Krotov is very low priority. The state-dependening running cost described in the paper hasn't been implemented in GRAPE.jl yet. It's on my to-do list, but won't happen until I actually need the feature myself (again, I'm open to PRs, and that's a much smaller project than adding the same capability to Krotov).
No, that completely breaks the derivation of Krotov's method. Remember that the method needs to know
Yes, that is correct, and is (up to the variations discussed above), a core component of Krotov's method
No, since that would give an entirely different update equation (or, in most cases, not provide an equation at all). In any case, the update has to be hand-coded for a particular choice of So the bottom line is that this implementation of Krotov's method does not support any kind of running costs. It is unlikely to gain such support in the near future (unless someone else really motivated wanted to implement it), since GRAPE is more effective at dealing with running costs, and there are simpler alternative approaches within Krotov's method to achieve the desired outcome. |
Beta Was this translation helpful? Give feedback.
Krotov's method does not support arbitrary running costs. Fundamentally, you should consider it a method suitable for unconstrained optimization. Some forms of
g_a
are possible, see, e.g., Eq. (3.63) in my thesis. This feature is not currently implemented, and would be very low priority (I have not ever found it to be useful).Also, penalties do not enforce constraints. To ensure amplitude constraints with Krotov's method, "pulse parameterization" should be used, see Pulse Parametrization for Krotov's Method. However, since this makes the control non-linear, it is important to ta…