Closed-loop optimization
The closed-loop optimization module provides optimization tools that communicate directly with a given experimental apparatus. This is useful for optimization problems where a complete understanding of the quantum system is not available. Instead of building a detailed model of the system, the optimizer uses feedback from the system to converge to low values of a specified cost function.
To run a closed-loop optimization, begin by creating an optimizer using one of the boulderopal.closed_loop.ClosedLoopOptimizer classes. Then if the interface with your experimental apparatus can straightforwardly be defined through a function, you can use boulderopal.closed_loop.optimize to easily set up and run the whole optimization. If you need more flexibility, you can create the iteration loop yourself and use boulderopal.closed_loop.step to take an optimization step at each iteration.
For a quick introduction, see the Find optimal pulses with automated optimization tutorial and the How to automate closed-loop hardware optimization user guide.
Classes
BoundType | Boundary type for parameter bounds. |
Bounds | A box constraint with which you can define the (inclusive) bounds and their type for each optimizable parameter in your optimization. |
ClosedLoopOptimizer | Abstract class for optimizers used in closed-loop optimization. |
Cmaes | The covariance matrix adaptation evolution strategy (CMA-ES) optimizer. |
GaussianProcess | The Gaussian process optimizer. |
NeuralNetwork | The neural network optimizer. |
Results | Results from evaluating the closed-loop optimization cost function. |
SimulatedAnnealing | The simulated annealing optimizer. |
Functions
optimize | Run a closed-loop optimization to find a minimum of the given cost function. |
step | Perform a single step in a closed-loop optimization. |