# 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¶

 properties A dict containing any additional information about the sampler. parameters Keyword arguments accepted by the sampling methods.

## Methods¶

 sample(bqm[, beta_range, num_reads, ...]) Sample from a binary quadratic model. sample_ising(h, J, **parameters) Sample from an Ising model using the implemented sample method. sample_qubo(Q, **parameters) Sample from a QUBO using the implemented sample method.

Neal[source]