Module metasolver::simulated_annealing [] [src]

Provides the traits required for the simulated annealing algorithm as well as some cooling schedules.

Modules

acceptance

Provides some acceptance functions that can be used with simulated annealing. These functions will accept a move if they return a number over a uniform value between 0 and 1.

cooling_schedules

Pre made simple monotonic cooling schedules to use with your simulated annealing algorithms.

Traits

Fitness

Returns a fitness. The lower the number the better.

Neighbours

Type T is your iterator of neigbours. Fitness of the neighbour is checked with another fitness function allowing optimization.

Temperature

An object with the Temperature trait has a temperature which can be updated.

Functions

simulated_annealing

Traditional simulated annealing algorithm. Algorithm 2.1, from text "Metaheuristics, from design to implementation". The neighbour is exhaustively checked in order, choosing the first neighbour to be accepted by the acceptance function.