Annealing Implementation and Controls

This section describes how quantum annealing (QA) is implemented and features that allow you to control the annealing process[1]: per-qubit anneal offsets and global anneal schedule changes. The latter supports mid-anneal quench and pause as well as reverse annealing.

[1]Another feature that enables control of the annealing process, the time-dependent gain applied to linear coefficients (biases), \(h_i\), described in the Solver Properties and Parameters Reference guide, is currently used only experimentally and not described here.

QA Implementation

The superconducting QPU at the heart of the D-Wave system, which operates at a temperature of approximately 12 mK, is a controllable, physical realization of the quantum Ising spin system in a transverse field. Each qubit and coupler on the QPU has several controls that are manipulated by individual on-QPU digital-to-analog converters (DACs); see [Bun2014] and [Joh2010]. Along with the DACs, a small number of analog control lines provide the time-dependent control required by the quantum Hamiltonian:

(2)\[ {\cal H}_{ising} = - \frac{A({s})}{2} \left(\sum_i {\hat\sigma_{x}^{(i)}}\right) + \frac{B({s})}{2} \left(\sum_{i} h_i {\hat\sigma_{z}^{(i)}} + \sum_{i>j} J_{i,j} {\hat\sigma_{z}^{(i)}} {\hat\sigma_{z}^{(j)}}\right)\]

where \({\hat\sigma_{x,z}^{(i)}}\) are Pauli matrices operating on a qubit \(q_i\) (the quantum one-dimensional Ising spin), and nonzero values of \(h_i\) and \(J_{i,j}\) are limited to those available in the QPU graph; see the QPU Architecture section of the Getting Started with D-Wave Solvers guide.

The quantum annealing process occurs between time \(t=0\) and time \(t_f\), which users specify via the annealing_time parameter or according to a schedule set with the anneal_schedule parameter. For simplicity, this is parameterized as \(s\), the normalized anneal fraction, which ranges from 0 to 1.

At time \(t=0\) (\(s=0\)), \(A(0) \gg B(0)\), which leads to a trivial and easily initialized quantum ground state of the system where each spin, \(s_i\), is in a delocalized combination of its classical states \(s_i = \pm 1\). The system is then slowly annealed by decreasing \(A\) and increasing \(B\) until time \(t_f\) (\(s=1\)), when \(A(1) \ll B(1)\), and the qubits have dephased to classical systems and the \({\hat\sigma_{z}^{(i)}}\) can be replaced by classical spin variables \(s_i = \pm 1\). At this point, the system is described by the classical Ising spin system

\begin{equation} \text{E}_{ising}(\vc{s}) = \sum_{i} h_i s_i + \sum_{i>j} J_{i,j} s_i s_j \end{equation}

such that the classical spin states represent a low-energy solution.

Figure 74 shows how \(A\) and \(B\) change over time.

Graph showing how A(s) and B(s) energies change over time during a typical anneal schedule while physical temperature remains constant. Along its horizontal axis is s (normalized annealing time) from 0 to 1, marked in increments of 0.2. Along its vertical axis is energy in Joules, from 0 to 7 x 10^-24, marked in increments of 1. Two lines are plotted in the graph. The concave curve labeled A(s) decreases from 6.5 x 10 to the -24 joules to to 0 joules between 0 and approximately 0.5 s. The concave curve labeled B(s) increases from approximately 0.2 to 6.3 x 10 to the -24 joules between 0 and 1 s. QCP (quantum critical point) is the point in the anneal where the amplitudes of A and B are equal and occurs at 1.391 gigahertz.

Fig. 74 Annealing functions \(A(s)\), \(B(s)\). Annealing begins at \(s=0\) with \(A(s) \gg B(s)\) and ends at \(s=1\) with \(A(s) \ll B(s)\). The quantum critical point (QCP) is the point in the anneal where the amplitudes of \(A(s)\) and \(B(s)\) are equal. Data shown are representative of Advantage systems.

Hardware: Coupled rf-SQUID Qubits

The D-Wave QPU is built with a network of tunably coupled rf superconducting quantum–interference device (rf-SQUID) qubits; see [Har2010_2]. The physical Hamiltonian of this set of coupled rf-SQUIDs in the qubit approximation is

(3)\[ H = -\frac{1}{2}\sum_i\left[\Delta_q(\Phi_{\rm CCJJ}(s)) {\hat\sigma_{x}^{(i)}} - 2 h_i |I_p(\Phi_{\rm CCJJ}(s))| \Phi^x_i(s) {\hat\sigma_{z}^{(i)}} \right] + \sum_{i>j} J_{i,j} M_{\rm AFM} I_p(\Phi_{\rm CCJJ}(s))^2 {\hat\sigma_{z}^{(i)}} {\hat\sigma_{z}^{(j)}}\]

where \(\Delta_q\) is the energy difference between the two eigenstates of the rf-SQUID qubit with no external applied flux (the degeneracy point) where the eigenstates are \((\ket{0} \pm \ket{1})/\sqrt{2}\). This energy difference captures the contribution of coherent tunneling between the two wells. \(I_p\) represents the magnitude of the current flowing in the body of the rf-SQUID loop; see Figure 75. \(M_{\rm AFM}\) is the maximum mutual inductance generated by the couplers between the qubits (typically 2 pH), \(\Phi_i^x(s)\) is an external flux applied to the qubits, and \(\Phi_{\rm CCJJ}(s)\) is an external flux applied to all qubit compound Josephson-junction structures to change the potential energy shape of the rf-SQUID qubit.

Graph showing I p plotted against delta q in gigahertz. Along its horizontal axis is delta gigahertz ranging from 0.01 to 10, marked in multiples of 10. Along its vertical axis is I p in micro Amperes ranging from 0 to 1.4. One line is plotted in the graph. It is a decreasing convex curve, starting at approximately 1.2 micro Amperes on the vertical axis at 0.01 gigahertz and sloping to approximately 0.1 micro Amperes at 10 GHz.

Fig. 75 Typical \(I_p\) vs \(\Delta_q\). This relationship is fixed by the physical parameters of the rf-SQUID qubit. Data shown are representative of D-Wave 2X systems.

To map this system to equation (2), set \(\Phi^x_i(s) = M_{\rm AFM} |I_p(s)|\). Thus, as \(\Phi_{\rm CCJJ}(s)\) changes during the anneal, \(\Phi^x_i(s)\) changes as required to keep the relative energy ratio between the \(h\) and \(J\) terms constant. In particular, the physical flux applied to the qubit to implement a fixed \(h\) value increases as the anneal progresses. Then, the mapping to the Ising Hamiltonian becomes:

\begin{align} A(s) &= \Delta_q(\Phi_{\rm CCJJ}(s)) \nonumber \\ B(s) & = 2M_{\rm AFM} |I_p(\Phi_{\rm CCJJ}(s))|^2 \end{align}

The relationship between \(\Delta_q(\Phi_{\rm CCJJ})\) and \(I_p(\Phi_{\rm CCJJ})\) is fixed by the physical parameters of the rf-SQUID qubit. Changing the applied \(\Phi_{\rm CCJJ}\) moves the rf-SQUID qubit along the curve shown in Figure 75.

For simplicity, introduce a normalized annealing bias,

\begin{equation} c(s) = \frac{\Phi_{\rm CCJJ}(s) - \Phi_{\rm CCJJ}^{\rm initial}}{\Phi_{\rm CCJJ}^{\rm final} - \Phi_{\rm CCJJ}^{\rm initial}}, \end{equation}

where \(\Phi_{\rm CCJJ}^{\rm initial}\) and \(\Phi_{\rm CCJJ}^{\rm final}\) are the values of \(\Phi_{\rm CCJJ}\) at \(s = 0\) and \(s = 1\), respectively (\(c(0) = 0\) and \(c(1)\) = 1).

The signal \(c(s)\) is provided by an external room temperature current source. The time-dependence of this bias signal is chosen to produce a linear growth in time of the persistent current flowing in the rf-SQUID flux qubits, \(I_p(s)\). Because \(B(s) = 2 M_{\rm AFM} I_p(s)^2\), the problem energy scale grows quadratically in time (as seen in Figure 74).

Energy Scales

Energy scales \(A(s)\) and \(B(s)\) can be described, based on the parameters defined in the Hardware: Coupled rf-SQUID Qubits section above, as follows:

  • \(A(s)\) represents the transverse, or tunneling, energy. It equals \(\Delta_q\), the energy difference between the two eigenstates of the rf-SQUID qubit with no external applied flux.
  • \(B(s)\) is the energy applied to the problem Hamiltonian. It equals \(2M_{\rm AFM}I_p(s)^2\), where \(M_{\rm AFM}\) represents the maximum available mutual inductance achievable between pairs of flux qubit bodies and \(I_p\) is the magnitude of the current flowing in the body of the rf-SQUID loop.

A single, global, time-dependent bias controls the changes of energy scales \(A(s)\) and \(B(s)\) during the quantum annealing process. At any intermediate value of \(s\), the ratio \(A(s)/B(s)\) is fixed. You can choose the trajectory of one of \(A\) or \(B\) with time. The standard annealing schedule, \(s = t / t_f\), results in \(I_p(s)\) growing linearly with time, producing a quadratic growth in \(B(s)\). Typical values of \(A(s)\) and \(B(s)\) are shown in Figure 74.

Note

If you are using the Leap™ quantum cloud service from D-Wave, you can find the \(A(s)\) and \(B(s)\) values for the QPUs in the cloud here: QPU-Specific Characteristics. If you have an on-premises system, contact D-Wave to obtain the values for your system.

Freezeout Points

\(A(s)\) sets the time scale for qubit dynamics. As annealing progresses, \(A(s)\), and therefore this time scale, decreases. When the dynamics of the complex Ising spin system become slow compared to \(t_f\), the network is frozen—that is, the spin state does not change appreciably as the Ising spin Hamiltonian evolves. While in general each Ising spin problem has different dynamics, it is instructive to analyze a simple system consisting of clusters of uniformly coupled qubits. These clusters of coupled qubits are called logical qubits.[2]

[2]For a logical qubit made of 3 qubits, for example, the relevant multiqubit states might be \(\ket{\uparrow \uparrow \uparrow}\) and \(\ket{\downarrow \downarrow \downarrow}\).

Networks of logical qubits freeze out at different points in the annealing process, depending on several factors, including:

  • Number of qubits in the network
  • Coupling strengths between the qubits
  • Overall time scale of the anneal, \(t_f\)

In general, freezeout points move earlier in \(s\) for larger logical qubit sizes, for more strongly coupled logical qubits, and for smaller annealing time \(t_f\). Figure 76 and Figure 77 show representative freezeout points for several qubit network sizes. A network of logical qubits is created by coupling multiple qubits to a single central qubit using \(J = +1\); see the Using Two-Spin Systems to Measure ICE section for more details.

Graph showing representative annealing schedules with freezeout points for several logical qubit sizes, for an annealing time of 5 microseconds. Along its horizontal axis is s (normalized annealing time) from 0 to 1, marked in increments of 0.2. Along its vertical axis is energy in gigahertz, from 0 to 14, marked in increments of 2. Three lines are plotted in the graph. The concave curve labeled A(s) decreases from 6 to 0 gigahertz between 0 and approximately 0.7 s. The concave curve labeled B(s) increases from approximately 0.5 to 12 gigahertz between 0 and 1 s. A third line representing physical temperature is a straight horizontal line close to 0 on the vertical axis. The graph is annotated with 5 vertical dashed lines that mark the freezeout points for logical qubit sizes (n) 1 through 5. Larger logical qubit sizes freeze out earlier in the anneal than the smaller ones do. For instance, n=5 freezes out at approximately s=0.25, while n=1 freezes out at approximately s=0.7.

Fig. 76 Representative annealing schedules with freezeout points for several logical qubit sizes and \(t_f = 5\ \mu s\). The dashed lines show localization points for a \(N = 1\) through \(N = 5\) logical qubit clusters from right to left, respectively. Data shown are representative of D-Wave 2X systems.

Graph showing representative annealing schedules with freezeout points for several logical qubit sizes, for an annealing time of 100 microseconds. Along its horizontal axis is s (normalized annealing time) from 0 to 1, marked in increments of 0.2. Along its vertical axis is energy in gigahertz, from 0 to 14, marked in increments of 2. Three lines are plotted in the graph. The concave curve labeled A(s) decreases from 6 to 0 gigahertz between 0 and approximately 0.7 s. The concave curve labeled B(s) increases from approximately 0.5 to 12 gigahertz between 0 and 1 s. A third line representing physical temperature is a straight horizontal line close to 0 on the vertical axis. The graph is annotated with 5 vertical dashed lines that mark the freezeout points for logical qubit sizes (n) 1 through 5. Larger logical qubit sizes freeze out earlier in the anneal than the smaller ones do. For instance, n=5 freezes out close to s=0.3, while n=1 freezes out close to s=0.8. When compared with the previous graph, this graph shows that longer anneal times result in later freezeout points.

Fig. 77 Representative annealing schedules with freezeout points for several logical qubit sizes and \(t_f = 100\ \mu s\). The dashed lines show localization points for a \(N = 1\) through \(N = 5\) logical qubit clusters from right to left, respectively. Data shown are representative of D-Wave 2X systems.

Measuring[3] \(I_p\) at the freezeout point of various-sized logical qubits results in Figure 78. The figure shows that less annealing time and larger clusters move the freezeout point earlier in the anneal, where \(I_p\) is lower.

[3]While absolute calibration is difficult through the SAPI interfaces, if temperature is used as an absolute calibration factor, the population statistics of a simple logical qubit transition can approximately determine the relative value of \(I_p\) at freezeout.
Graph showing I p as a function of logical qubit cluster size and annealing time. Along its horizontal axis is logical qubit cluster size, from 1 to 5, in increments of 0.5. Along its vertical axis is persistent current in micro Amperes. Five lines are plotted in the graph representing different annealing times of 5, 10, 20, 100, and 1000 microseconds. Each line has points marked for logical qubit sizes 1, 2, 3, 4, and 5. These points are joined by straight line segments. The graph shows that freezeout occurs earlier when anneal times are shorter and when cluster sizes are larger.

Fig. 78 \(I_p\) (persistent current) at the freezeout point as a function of logical qubit size and annealing time. The change in \(I_p\) at freezeout, as the annealing time varies from 5 to 1000 \(\mu s\) and the logical spin cluster size varies from 1 to 5. Shorter annealing time and larger clusters move the freezeout point earlier in the anneal, where \(I_p\) is lower. Data shown are representative of D-Wave 2X systems.

The signal corresponding to fixed \(h\) values scales as \(I_p\). Larger logical qubits freeze out earlier in the annealing process: at lower \(I_p\). Thus, if an erroneous fixed flux offset exists in the physical body (a static addition to the term \(\Phi^x_i\)), then the corresponding \(\delta h\) at freezeout grows with the logical qubit size because of the lower persistent current at the freezeout point. This error should roughly double going from a logical qubit of size 1 to a logical qubit of size 5. The standard deviation of \(\delta h\) versus logical qubit size plot in Figure 88 indicates that this is approximately true.

Anneal Offsets

The standard annealing trajectory lowers \(A(s)\) and raises \(B(s)\) identically for all qubits in the QPU. This single annealing path, however, may not be ideal for some applications of quantum annealing. This section describes anneal offsets, which allow you to adjust the standard annealing path per qubit.

As discussed above, the annealing process is controlled via a global, time-dependent bias signal \(c(s)\) that simultaneously modifies both \(A(s)\) and \(B(s)\). Figure 74 shows typical \(A(s)\) and \(B(s)\) across the annealing algorithm. Figure 79 plots the annealing bias \(c(s)\) versus \(s\). Because of the shape of the rf-SQUID flux qubit energy potential, \(c(s)\) is not linear in \(s\) but is chosen to ensure that \(I_p(s)\) grows linearly with \(s\).

Two graphs. The top graph shows c (anneal control bias) plotted against shows s (normalized annealing time). Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is c (anneal control bias) from 0 to 1, in increments of 0.5. One curved line is plotted in the graph, starting from 0,0 and ending at 1,1, with a slight convex curve near the start and a slight concave curve near the end. The bottom graph shows I_p plotted against s (normalized annealing time). Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is I p in micro Amperes from 0 to 1.5, in increments of 0.5. One straight line is plotted in the graph, starting from 0,0 and ending at 1,1.

Fig. 79 Annealing control bias \(c\) versus anneal fraction \(s\). At \(c=0, s=0,\) \(A(s) \gg B(s)\), and at \(c=1, s=1, A(s) \ll B(s).\) Data shown are representative of D-Wave 2000Q systems.

On-QPU DACs allow adjustments of static annealing offsets \(\delta c_i\) per qubit, thereby advancing or delaying the annealing signal locally for each. Figure 80 shows an example of the annealing control bias with \(\delta c_i = 0.05\) and \(\delta c_i = -0.05\). Note that the anneal offset is a vertical shift up or down in annealing control bias, not a shift in \(s\).

Graph showing c (anneal control bias) plotted against s (normalized annealing time). It compares the baseline anneal trajectory with an advance of 0.05 and a delay of 0.05 of normalized anneal offset values. Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is c (anneal control bias) from -0.2 to 1.2, in increments of 0.2. Three curved lines are plotted in the graph, one showing the baseline, the others showing an advance of 0.5 and a delay of 0.5 of the anneal trajectory. The baseline curve is between the advance (top) and delay (bottom). All curves start at 0 on the horizontal axis and near 0 on the vertical axis and progress to 1 on the horizontal axis and near 1 on the vertical axis. The vertical distance between the curves increases slightly by the time they reach 1 on the horizontal axis.

Fig. 80 Annealing control bias \(c\) versus anneal fraction \(s\) for several anneal offset values. Data shown are representative of D-Wave 2000Q systems.

Advancing or delaying the annealing bias by setting \(\delta c_i \ne 0\) changes the transverse field \(A_i(s)\) with respect to the original global \(A(s)\). This allows you to increase or decrease \(A_i(s)\). Note that \(\delta c_i > 0\) advances the annealing process (\(A_i(s) < A(s)\)) and \(\delta c_i < 0\) delays the annealing process (\(A_i(s) > A(s)\)). Figure 81 shows typical \(A_i(s)\) versus \(s\) for two values of \(\delta c_i\). Both \(A(s)\) and \(B(s)\) simultaneously change with control bias \(c\). Thus, a consequence of advancing or delaying the annealing process with anneal offset \(\delta c_i\) is that \(B(s)\rightarrow B_i(s)\). Figure 81 also shows typical \(B_i(s)\) versus \(s\) for the same set of \(\delta c_i\).

Graph showing the energy of A(s) and B(s) with and without positive and negative anneal offsets. Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is energy in gigahertz from -2 to 12, in increments of 2.Six concave curved lines are plotted in the graph: 3 for A(s), starting on the upper left and ending on the lower right, and 3 for B(s), starting on the lower left and ending on the upper right. Each set includes a baseline curve in the center, a curve with a 0.05 positive offset, and a curve with a 0.05 negative offset.

Fig. 81 \(A(s)\) and \(B(s)\) versus anneal fraction \(s\). At \(c(s=0)=0\), \(A(s) \gg B(s)\), and at \(c(s=1) = 1, A(s) \ll B(s)\). The baseline curve (\(\delta c_i = 0\)) is shown along with \(A_i(s), B_i(s)\) for anneal offset \(\delta c_i=0.05\) (advances the annealing process for the qubit) and \(A_i(s),B_i(s)\) for anneal offset \(\delta c_i = -0.05\) (delays the annealing process for the qubit). Data shown are representative of D-Wave 2000Q systems.

The change of \(B(s)\rightarrow B_i(s)\) has consequences for the target Ising spin Hamiltonian parameters \(h_i\) and \(J_{i,j}\). The anneal offset for the \(i{\rm th}\) qubit deflects \(h_i\rightarrow h_i(\delta c_i,s)\), and the anneal offsets for the \(i{\rm th}\) and \(j{\rm th}\) qubit deflect \(J_{i,j} \rightarrow J_{i,j}(\delta c_i,\delta c_j,s)\). Figure 82 shows plots of the bias \(h_i(\delta c_i,s)/h\) and coupling strength \(J_{i,j}(\delta c_i,0,s)/J\), both normalized by the values that would have been set without an applied offset, for several values of an offset \(\delta c_i\) applied to a single qubit. Figure 83 shows plots of \(J_{i,j}(\delta c_i,\delta c_j,s)/J\) for several values of offsets \(\delta c_i, \delta c_j\) applied to a pair of coupled qubits.

Graph showing showing the distortion of the Hamiltonian for three different anneal offset values. Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is the Hamiltonian energy from 1 to 1.25 in increments of 0.05. Three convex curves are plotted across the graph for offset values of 0.05 (top), 0.025 (middle), and 0.0125 (bottom). All lines start at s=0 and progress to s=1. The top line, for offset 0.05 has quite a steep peak at around s=0.5. The bottom line, for offset 0.0125 is a flatter curve. The middle line, for offset 0.025, is closer to the bottom line than it is to the top. All come close to re-converging at s=1.

Fig. 82 \(h_i(\delta c_i, s)/h\) and \(J_{i,j}(\delta c_i,0, s)/J\) versus \(s\) for several values of \(\delta c_i\). The deviation of these quantities is \(s\)-dependent. You can choose a particular value of \(s\) at which to exactly compensate the change in target parameter by adjusting \(h_i(\delta c_i, s)\rightarrow h_i', J_{i,j}(\delta c_i,0, s) \rightarrow J_{i,j}'\). For values of \(s\) before or after this point, a residual change in target parameter remains. Data shown are representative of D-Wave 2000Q systems.

Graph showing showing the distortion of the Hamiltonian for three different anneal offset values. Along its horizontal axis is s (normalized annealing time) from 0 to 1, in increments of 0.2. Along its vertical axis is the Hamiltonian energy from 0.94 to 1.08 in increments of 0.02. Three curves are plotted across the graph for offset values of 0.05, 0.025, and 0.0125. All lines start at s=0 and progress to s=1. The curve for offset 0.05 has quite a steep dip at around s=0.5. The curve for offset 0.0125 is a flatter curve. The curve for offset 0.025, remains closer to the 0.0125 curve than to the other. All come close to re-converging at s=1.

Fig. 83 \(J_{ij}(\delta c_i,\delta c_j, s)/J\) versus \(s\) for several values of \(\delta c_i\) and \(\delta c_j\). The deviation of these quantities away from 1 is \(s\)-dependent. You can choose a particular value of \(s\) at which to exactly compensate the change in target parameter by adjusting \(J_{i,j}(\delta c_i,\delta c_j, s)\rightarrow J_{i,j}'\). For values of \(s\) before or after this point, a residual change in target parameter remains. Data shown are representative of D-Wave 2000Q systems.

The changes shown in Figure 82 and Figure 83 are \(s\)-dependent. The largest changes are earlier in the annealing process. You can choose a particular value of \(s^*\) at which to exactly compensate these changes in target parameters by rescaling the requested target parameters. However, for values of \(s\) before or after \(s^*\), a residual change in target parameter remains.

Anneal offsets may improve results for problems in which the qubits have irregular dynamics for some easily determined reason. For example, if a qubit’s final value does not affect the energy of the classical state, you can advance it (with a positive offset) to reduce quantum bias in the system; see [Kin2016]. Anneal offsets can also be useful in embedded problems with varying chain length: longer chains may freeze out earlier than shorter ones—at an intermediate point in the anneal, some variables act as fixed constants while others remain undecided. If, however, you advance the anneal of the qubits in the shorter chains, they freeze out earlier than they otherwise would. The correct offset will synchronize the annealing trajectory of shorter chains with that of the longer ones. As a general rule, if a qubit is expected to be subject to a strong effective field relative to others, delay its anneal with a negative offset.

Determining the optimum offsets for different problem types is an area of research at D-Wave. Expect that the appropriate offsets for two different qubits in the same problem to be within 0.2 normalized offset units of each other.

Varying the Global Anneal Schedule

You can make changes to the global anneal schedule by submitting a set of points that define the piece-wise linear (PWL) waveform of the annealing pattern you want. You can change the standard (forward) schedule by introducing a pause or a quench, or you can initialize the qubits into a specific classical state and anneal in reverse from there. This section describes these features.

Pause and Quench

Advantage and D-Wave 2000Q systems provide user control over the global annealing trajectories:

  • You can scale the quadratic growth in persistent current—that is, quadratic growth in \(B(t)\)—using the annealing_time parameter.
  • You can also set the anneal_schedule parameter, which allows for a pause or quench partway through the annealing process.[4] A pause dwells for some time at a particular anneal fraction; a quench abruptly terminates the anneal within a few hundred nanoseconds of the point specified.
[4]The annealing_time and anneal_schedule parameters are mutually exclusive.

Unlike the anneal offsets feature—which allows you to control the annealing path of individual qubits separately—anneal schedule changes apply to all qubits in the working graph.

Changes to the schedule are controlled by a PWL waveform comprising \(n\) pairs of points. The first element is time \(t\) in microseconds; the second, the anneal fraction, \(s\), as a value between 0 and 1. This input causes the system to produce linear changes in \(s\) between \(s_i\) and \(s_{i+1}\).

The following rules apply to the set of anneal schedule points provided:

  • Time \(t\) must increase for all points in the schedule.
  • For forward annealing, the first point must be \((0, 0)\).
  • For reverse annealing, the anneal fraction \(s\) must start and end at \(s = 1\).
  • In the final point, anneal fraction \(s\) must equal 1 and time \(t\) must not exceed the maximum value in the annealing_time_range property.
  • The number of points must be \(\geq 2\).
  • The upper bound on the number of points is system-dependent; check the max_anneal_schedule_points property. For reverse annealing, the maximum number of points allowed is one more than the number given by this property.
  • The steepest slope of any curve segment, \(\frac{s_i - s_{i-1}}{t_i - t_{i-1}}\) must not be greater than the inverse of the minimum anneal time. For example, for a QPU with a annealing_time_range value of [ 0.5, 2000 ], the minimum anneal time is 0.5 \(\mu s\), so the steepest supported slope is 2 \(\mu s^{-1}\). If you want a section of the piecewise-linear curve that starts at time point \(t_4 = 30 \mu s\) to increase from \(s_4=0.7\) to \(s_5=0.8\), this example QPU supports a schedule that contains \(t_5 = 30.06 \mu s\) ([... [30.0, 0.7], [30.06, 0.8], ...]), which has a maximum slope of \(1 \frac{2}{3}\), but not one that contains \(t_5 = 30.04 \mu s\) ([... [30.0, 0.7], [30.04, 0.8], ...]), which has a maximum slope of \(2 \frac{1}{2}\).

The table below gives three valid examples of anneal schedule points, producing the varying patterns of \(B(t)\) that appear in Figure 84.

Table 29 Anneal Schedule Tuples: Examples
Points Result
\({(0.0, 0.0) (20.0, 1.0)}\) Standard trajectory of 20-\(\mu s\) anneal. Here, \(B(t)\) grows quadratically with time.
\({(0.0, 0.0) (10.0, 0.5) (110.0, 0.5) (120.0, 1.0)}\) Mid-anneal pause at \(s = 0.5\). The quadratic growth of \(B(t)\) is interrupted by a 100-\(\mu s\) pause halfway through.
\({(0.0, 0.0) (10.0, 0.5) (12.0, 1.0)}\) Mid-anneal quench at \(s = 0.5\). The quadratic growth of \(B(t)\) is interrupted by a rapid 2-\(\mu s\) quench halfway through.
Annealing trajectories

Fig. 84 Annealing schedule variations. Top: Standard quadratic growth of \(B\) for \(t_f = 20\ \mu s\). Middle: Mid-anneal pause of \(100\ \mu s\) at \(s = 0.5\) for a background \(t_f = 20\ \mu s\). Bottom: Mid-anneal quench of \(2\ \mu s\) at \(s = 0.5\) for a background \(t_f = 20\ \mu s\).

This degree of control over the global annealing schedule allows you to study the quantum annealing algorithm in more detail. For example, a pause can be a useful diagnostic tool for instances with a small perturbative anticrossing. Figure 85 shows typical measurements of the 16-qubit instance reported in [Dic2013] with a pause inserted. While pauses early or late in the anneal have no effect, a pause near the expected perturbative anticrossing produces a large increase in the ground-state success rate.

Graph plotting ground-state success rate against pause start time. The horizontal axis shows the anneal fraction from 0.1 to 0.6, marked in increments of 0.05. The vertical axis shows success rate marked from 0.001 to 1, marked in exponents of 10. Nine lines are plotted in the graph representing each of the following: 1000, 100, and 10 microsecond pauses in 1000 microsecond anneals; 1000, 100, and 10 pauses in 100 microsecond anneals; and 1000, 100, and 10 pauses in 10 microsecond anneals. The plotted data shows that, in general, longer anneal times have higher success rates. It shows that in all cases, when the pause occurs near the perturbative anticrossing, the success rate increases for all anneal schedules shown.

Fig. 85 Typical measurements from a 16-qubit reference instance showing pauses of different lengths inserted at different points in the annealing schedule. Pauses inserted near the expected anticrossing increase the likelihood of obtaining results from the ground state. Data shown are representative of D-Wave 2000Q systems.

Another example is a quench inserted at \(s < 1\). If the quench is fast compared to problem dynamics, then the distribution of states returned by the quench can differ significantly from that returned by the standard annealing schedule. Figure 86 shows typical measurements of the same 16-qubit instance with a quench added. The probability of obtaining ground state samples depends on when in the anneal the quench occurs, with later quenches more likely to obtain samples from the ground state.

Graph plotting ground-state success rate against quench time. The horizontal axis shows   the anneal fraction from 0.2 to 0.65, marked in increments of 0.05. The vertical axis shows success rate marked from 0.0001 to 0.1, marked in exponents of 10. Eight lines are plotted in the graph representing each of the following: 2, 1, 0.5, and 0.1 microsecond quenches in 1000 microsecond anneals; and 2, 1, 0.5, and 0.1 quenches in 100 microsecond anneals. The plotted data shows that, in general, longer anneal times have higher success rates. It shows that later quenches are more likely to obtain samples from the ground state.

Fig. 86 Typical measurements from a 16-qubit reference instance showing quenches of different speeds compared to problem dynamics at different points in the anneal schedule. Later quenches increase the likelihood of obtaining results from the ground state. Data shown are representative of D-Wave 2000Q systems.

Reverse Annealing

As described above, the annealing functions \(A(s)\) and \(B(s)\) are defined such that \(A(s) \gg B(s)\) at \(s=0\) and \(A(s) \ll B(s)\) at \(s = 1\), where \(s\) is the normalized annealing fraction. In the standard quantum annealing protocol, \(s\) increases linearly with time, with \(s(0)=0\) and \(s(t_f)=1\), where \(t_f\) is the total annealing time. The network of qubits starts in a global superposition over all possible classical states and, as \(s \rightarrow 1\), the system localizes into a single classical state; see Figure 74.

Reverse annealing allows you to initialize the qubits into a specific classical state, begin the evolution at \(s = 1\), anneal along a path toward \(s=0\), and then return back up to \(s=1\). Figure 87 shows a typical reverse annealing process where the system reverses to \(s = 0.5\), pauses for \(25 \ \mu s\) at \(s = 0.5\), and ends at \(s=1\).

Graph plotting a reverse anneal. The horizontal axis shows time in microseconds. The vertical axis shows normalized anneal fraction from 0 to 1. The plot starts at 1,0 then dips to 0.5 where it remains until   25 microseconds at which point it returns back up to 1.

Fig. 87 Typical reverse annealing protocol with a \(5 \ \mu s\) equivalent ramp rate from \(s = 1\) to \(s = 0.5\), followed by a pause at \(s = 0.5\) for \(25 \ \mu s\), and then a ramp back to \(s = 1\).

The reverse annealing feature gives you additional control over and insight into the quantum annealing process in the D-Wave QPU.[5] Examples of how you might use reverse annealing include:

  • Quantum Boltzmann sampling—Prepare a classical state and then draw a set of samples from a probability distribution that may be changing with \(s\).
  • Hybrid algorithms—Prepare a classical state provided by a classical heuristic and then turn on a finite \(A(s)\) and allow the system to evolve.
  • Tunneling rate measurements—Prepare a particular classical state and measure the rate at which the system tunnels from this state to another for a range of \(s\).
  • Relaxation rate measurements—Prepare a classical state that is an excited state of the problem Hamiltonian and measure the rate at which the system relaxes to lower energy states for a range of \(s\).
[5]For more information, see Reverse Annealing for Local Refinement of Solutions, D-Wave White Paper Series, no. 14-1018A-A, 2017.

The reverse annealing interface uses three parameters: anneal_schedule defines the waveform, \(s(t)\), and initial_state and reinitialize_state control the system state at the start of an anneal.

As for pause and quench, the reverse annealing schedule is controlled by a PWL waveform comprising \(n\) pairs of points. The first element of the pair is time \(t\) in microseconds; the second, the anneal fraction, \(s\), as a value between 0 and 1. Just as in forward annealing, time \(t\) must increase for all points in the schedule. For a reverse anneal, however, the anneal fraction must start and end at \(s = 1\).

The following table shows the tuples that you submit to get the pattern in Figure 87.

Table 30 Reverse Annealing Schedule Tuples: Example
Points Result
\({(0.0, 1) (2.5, 0.5) (27.5, 0.5) (30.0, 1.0)}\) Reverse anneal, therefore begins at \(s = 1\). A \(30.0 \ \mu s\) anneal with a mid-anneal pause at \(s = 0.5\) that lasts for \(25 \ \mu s\).

When supplying a reverse annealing waveform through anneal_schedule, you must also supply the initial state to which the system is set. When multiple reads are requested in a single call to SAPI, you have two options for the starting state of the system. These are controlled by the reinitialize_state Boolean parameter:

  • reinitialize_state=true (default)—Reinitialize the initial state for every anneal-readout cycle. Each anneal begins from the state given in the initial_state parameter. Initialization time is required before every anneal-readout cycle. The amount of time required to reinitialize varies by system.
  • reinitialize_state=false—Initialize only at the beginning, before the first anneal cycle. Each anneal (after the first) is initialized from the final state of the qubits after the preceding cycle. Initialization time is required only once.

The reinitialize_state parameter affects timing. See the Operation and Timing section for more information.

Note

Spin-reversal transforms are incompatible with reverse annealing.