Reverse Annealing


Reverse annealing, a technique that makes it possible to refine known good local solutions thereby increasing performance for certain applications.[1] Reverse annealing involves (1) annealing backward from a known classical state to a mid-anneal state of quantum superposition, (2) searching for optimum solutions at this mid-anneal point while in the presence of an increased transverse field (quantum state), and then (3) proceeding forward to a new classical state at the end of the anneal.

[1]For more information, see Reverse Annealing for Local Refinement of Solutions, D-Wave White Paper Series, no. 14-1018A-A, 2017.

Fig. 103 Reverse annealing process. The anneal starts at a specified classical state (left), then performs a local quantum annealing search stimulated by an increased transverse field (middle), then settles in a new classical state as the transverse field is removed (right).

This feature leverages the Anneal Schedule Variations feature that allows users to define a waveform that specifies points at which to change the standard schedule. With reverse annealing, users can define a schedule that begins its evolution at \(s = 1\), a classical state.


For reverse annealing, the maximum number of points allowed for an anneal schedule waveform is one more than the number given by the max_anneal_schedule_points solver property.

Release Introduced

Release 3.0

Properties and Parameters

User parameter:

  • anneal_schedule—Parameter that enables variations on the standard global anneal schedule.

  • initial_state—Classical state of all qubits at the start of the reverse anneal.

  • reinitialize_state—Boolean flag controlling whether the initial state is to be reinitialized for every anneal-readout cycle.

    An anneal schedule variation is defined by a series of pairs of floating-point numbers identifying points in the schedule at which to change slope. The first element in the pair is time \(t\) in microseconds; the second, normalized persistent current \(s\) in the range [0,1]. The resulting schedule is the piecewise-linear curve that connects the provided points.

Solver properties (may vary by QPU):

  • max_anneal_schedule_points—Property that shows the maximum number of points at which the anneal schedule (waveform) can be changed for the solver.

See Also