This notebook explains and demonstrates the global anneal scheduling features. These features can improve solutions to a problem and provide insight into the behaviour and dynamics of problems undergoing quantum annealing.
anneal schedule refers to the global annealing trajectory. It specifies the
normalized anneal fraction, s
, an abstract parameter ranging from 0 to 1.
s(t)
is a continuous function starting at s=0
for time t=0
and ending with s=1
at t=t_f
, the total time of the anneal.
There are two ways to specify the anneal schedule, using two mutually exclusive parameters:
annealing_time
: Set to a number in microseconds to specify linear growth froms=0
tos=1
over that time.annealing_schedule
: Specify a list of(t, s)
pairs specifying points, which are then linearly interpolated. This feature supports two modes—mid-anneal pause and mid-anneal quench—which this tutorial explores.
The notebook has the following sections:
- Understanding the Anneal Schedule explains the feature.
- Using Anneal Schedule Features shows how to use the feature with an interactive example problem.
- Mapping Various Anneal Schedules provides code that sweeps through various anneal schedules to explore the effect on results.
You can run this example without installation in cloud-based IDEs that support the Development Containers specification (aka "devcontainers").
For development environments that do not support devcontainers
, install
requirements:
pip install -r requirements.txt
If you are cloning the repo to your local system, working in a virtual environment is recommended.
Your development environment should be configured to access Leap’s Solvers. You can see information about supported IDEs and authorizing access to your Leap account here.
The notebook can be opened by clicking on the
01-anneal-schedule.ipynb
file in VS Code-based IDEs.
To run a locally installed notebook:
jupyter notebook
See LICENSE file.