Skip to content

Hermite Optimal Control v0.1.0 - Multiple Controls

Pre-release
Pre-release
Compare
Choose a tag to compare
@leespen1 leespen1 released this 30 Nov 04:14
· 540 commits to main since this release

Can now handle multiple controls, and do the gradient calculation using discrete adjoint, finite difference, and forced methods. This is a big milestone, as now we work with multiple qubit gates.

Needs to be tested more thoroughly, but for now the gradients all seem to agree with those of past stable versions of the package (which only had single controls). And when using two controls with the same parameters and control hamiltonians, the two halves of the gradient are the same, which is a good sign (though nowhere near an exhaustive test of correctness).

Next release will focus on continuous integration tests:

  • Convergence and gradient agreement tests need to be updated to work with new structures
  • Want to have a test which compares history, lambda history, and gradients for a fixed problem, with the solutions hard-coded and stored based on results from a previous stable version of the code. That way we can easily see if anything has changed. Could also compare to qutp results
  • Long functions should be split up more to make testing easier (would have saved me a headache if I could have done the adjoint evolution more readily and independently).

Documentation should also be improved, now that I have most of the desired functionality implemented. And some variables and functions (utvt, uttvtt, etc) need to be renamed for clarity.