The traditional simulated annealing is to maintain a current state, and repeatedly perturb it, keeping or discarding the perturbed state depending on the difference in an energy function and a temperature, which changes as a function of time. This concurrent SA implementation maintains a population of current states which are perturbed, and lower-ranked states are deleted according to a temperature function. It is intended as a lightweight approach to parallelizing optimization problems.
initializes an annealer.
initAnnealer initPop energyFunc popSize perturb
Offer a state to the annealer. Depending on the current population, the state may or may not be kept.