Boulder Opal uses computational graphs to represent quantum systems for efficient optimization. It provides both gradient-based and gradient-free optimizers for designing optimal controls for your quantum system using a model-based approach.

See the Understanding graphs in Boulder Opal topic and How to represent quantum systems using graphs user guide to learn more about computational graphs. The Choosing a control-design (optimization) strategy in Boulder Opal topic provides some general suggestions on different optimization routines. You can also refer to our user guides for demonstrations of using the optimizer in various different physical systems.

The Improving calculation performance in graphs topic can teach you how to best perform graph calculations. If your optimization involves quantum dynamics, you might also be interested in the Choosing the approach to simulate a quantum system topic, providing an overview of the different graph-based simulation options in Boulder Opal.

To optimize quantum systems with a model-free approach, use the Closed-loop optimization module.


HistoryScopeConfiguration for the history data returned from a graph-based optimizer.
AdamAdaptive moment estimation (Adam) optimizer for stochastic optimization.


run_gradient_free_optimizationPerform model-based optimization without using gradient values.
run_optimizationPerform gradient-based deterministic optimization of generic real-valued functions.
run_stochastic_optimizationPerform gradient-based stochastic optimization of generic real-valued functions.

Was this useful?