Search by Simulated Annealing. More...
#include <simulated-annealing.hh>
Public Types | |
typedef simulated_annealing < move_manager_type > | search_type |
Public Member Functions | |
simulated_annealing (evaluable_solution &starting_point, solution_recorder &recorder, move_manager_type &moveman, termination_criteria_chain &tc, abstract_cooling_schedule &cs, double starting_temp, double stop_temp=1e-7, double K=1.0) | |
Creates a search by simulated annealing instance. | |
simulated_annealing (const simulated_annealing &) | |
purposely not implemented (see Effective C++) | |
simulated_annealing & | operator= (const simulated_annealing &) |
virtual void | search () throw (no_moves_error) |
This method starts the simulated annealing search process. | |
double | current_temp () const |
The current annealing temperature. | |
const abstract_cooling_schedule & | cooling_schedule () const |
The annealing schedule instance. | |
Protected Attributes | |
termination_criteria_chain & | termination_criteria_m |
abstract_cooling_schedule & | cooling_schedule_m |
double | starting_temp_m |
double | stop_temp_m |
double | current_temp_m |
double | K_m |
std::tr1::uniform_real< double > | ureal |
std::tr1::mt19937 | rng |
std::tr1::variate_generator < std::tr1::mt19937, std::tr1::uniform_real< double > > | gen |
Search by Simulated Annealing.
mets::simulated_annealing< move_manager_type >::simulated_annealing | ( | evaluable_solution & | starting_point, | |
solution_recorder & | recorder, | |||
move_manager_type & | moveman, | |||
termination_criteria_chain & | tc, | |||
abstract_cooling_schedule & | cs, | |||
double | starting_temp, | |||
double | stop_temp = 1e-7 , |
|||
double | K = 1.0 | |||
) |
Creates a search by simulated annealing instance.
working | The working solution (this will be modified during search). | |
recorder | A solution recorder (possibly holding a different solution instance) used to record the best solution found. | |
moveman | A problem specific implementation of the move_manager_type used to generate the neighborhood (the choice of the neighbourhood and its exploration greatly influences the algorithm quality and speed). | |
tc | The termination criteria used to terminate the search process, this is an extension to the standard Simulated Annealing: the algorithm terminates either when the termination criterion is met or when the temperature is <= 0. | |
cs | The annealing schedule that will be used by the algorithm to regulate the temperature at each iteration (many have been proposed in literature and influence the quality and speed of the algorithm). | |
starting_temp | The starting SA temperature (this is an important parameter that depends on the problem and will influence the search quality and duration). | |
K | The "Boltzmann" constant that we want ot use (default is 1). |
const abstract_cooling_schedule& mets::simulated_annealing< move_manager_type >::cooling_schedule | ( | ) | const [inline] |
The annealing schedule instance.
double mets::simulated_annealing< move_manager_type >::current_temp | ( | ) | const [inline] |
The current annealing temperature.
void mets::simulated_annealing< move_manager_t >::search | ( | ) | throw (no_moves_error) [virtual] |
This method starts the simulated annealing search process.
Remember that this is a minimization process.
Implements mets::abstract_search< move_manager_type >.
Return to METSlib home page