Simulated Annealing Sampler¶
Attention
dwave-neal
is deprecated since dwave-ocean-sdk
6.1.0 in favor of
dwave-samplers and will be removed in dwave-ocean-sdk
8.0.0.
To migrate, use
from dwave.samplers import SimulatedAnnealingSampler
rather than
from neal import SimulatedAnnealingSampler
Class¶
- class SimulatedAnnealingSampler[source]¶
Simulated annealing sampler for binary quadratic models.
Simulated annealing can be used for heuristic optimization or approximate Boltzmann sampling. This implementation approaches the equilibrium distribution by performing updates at a sequence of decreasing temperatures, terminating at the target \(\beta\).1 Each spin is updated once in a fixed order per point per \(\beta\) according to a Metropolis-Hastings update. When \(\beta\) is large the target distribution concentrates, at equilibrium, over ground states of the model. Samples are guaranteed to match the equilibrium for long, smooth \(\beta\) schedules.
- 1
\(\beta\) represents the inverse temperature, \(1/(k_B T)\), of a Boltzmann distribution where \(T\) is the thermodynamic temperature in kelvin and \(k_B\) is Boltzmann’s constant.
For more information, see Kirkpatrick, S.; Gelatt Jr, C. D.; Vecchi, M. P. (1983). “Optimization by Simulated Annealing”. Science. 220 (4598): 671–680
Also aliased as
Neal
.Examples
This example solves a simple Ising problem.
>>> from dwave.samplers import SimulatedAnnealingSampler >>> sampler = SimulatedAnnealingSampler() >>> h = {'a': 0.0, 'b': 0.0, 'c': 0.0} >>> J = {('a', 'b'): 1.0, ('b', 'c'): 1.0, ('a', 'c'): 1.0} >>> sampleset = sampler.sample_ising(h, J, num_reads=10) >>> print(sampleset.first.energy) -1.0
Sampler Properties¶
A dict containing any additional information about the sampler. |
|
Keyword arguments accepted by the sampling methods. |
Methods¶
|
Sample from a binary quadratic model. |
|
Sample from an Ising model using the implemented sample method. |
|
Sample from a QUBO using the implemented sample method. |