Search by Simulated Annealing. More...
#include <simulated-annealing.hh>
Public Types | |
typedef simulated_annealing < move_manager_type > | search_type |
Public Member Functions | |
const abstract_cooling_schedule & | cooling_schedule () const |
The annealing schedule instance. | |
double | current_temp () const |
The current annealing temperature. | |
simulated_annealing & | operator= (const simulated_annealing &) |
virtual void | search () throw (no_moves_error) |
This method starts the simulated annealing search process. | |
void | setApplyAndEvaluate (bool b) |
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++) | |
Protected Attributes | |
bool | apply_and_evaluate |
abstract_cooling_schedule & | cooling_schedule_m |
double | current_temp_m |
std::tr1::variate_generator < std::tr1::mt19937, std::tr1::uniform_real< double > > | gen |
double | K_m |
std::tr1::mt19937 | rng |
double | starting_temp_m |
double | stop_temp_m |
termination_criteria_chain & | termination_criteria_m |
std::tr1::uniform_real< double > | ureal |
Search by Simulated Annealing.
Definition at line 72 of file simulated-annealing.hh.
typedef simulated_annealing<move_manager_type> mets::simulated_annealing< move_manager_type >::search_type |
Definition at line 75 of file simulated-annealing.hh.
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). |
mets::simulated_annealing< move_manager_type >::simulated_annealing | ( | const simulated_annealing< move_manager_type > & | ) |
purposely not implemented (see Effective C++)
const abstract_cooling_schedule& mets::simulated_annealing< move_manager_type >::cooling_schedule | ( | ) | const [inline] |
The annealing schedule instance.
Definition at line 142 of file simulated-annealing.hh.
double mets::simulated_annealing< move_manager_type >::current_temp | ( | ) | const [inline] |
The current annealing temperature.
Definition at line 135 of file simulated-annealing.hh.
simulated_annealing& mets::simulated_annealing< move_manager_type >::operator= | ( | const simulated_annealing< move_manager_type > & | ) |
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 >.
Definition at line 223 of file simulated-annealing.hh.
void mets::simulated_annealing< move_manager_type >::setApplyAndEvaluate | ( | bool | b | ) | [inline] |
Definition at line 127 of file simulated-annealing.hh.
bool mets::simulated_annealing< move_manager_type >::apply_and_evaluate [protected] |
Definition at line 167 of file simulated-annealing.hh.
abstract_cooling_schedule& mets::simulated_annealing< move_manager_type >::cooling_schedule_m [protected] |
Definition at line 147 of file simulated-annealing.hh.
double mets::simulated_annealing< move_manager_type >::current_temp_m [protected] |
Definition at line 150 of file simulated-annealing.hh.
std::tr1::variate_generator< std::tr1::mt19937, std::tr1::uniform_real<double> > mets::simulated_annealing< move_manager_type >::gen [protected] |
Definition at line 164 of file simulated-annealing.hh.
double mets::simulated_annealing< move_manager_type >::K_m [protected] |
Definition at line 151 of file simulated-annealing.hh.
std::tr1::mt19937 mets::simulated_annealing< move_manager_type >::rng [protected] |
Definition at line 163 of file simulated-annealing.hh.
double mets::simulated_annealing< move_manager_type >::starting_temp_m [protected] |
Definition at line 148 of file simulated-annealing.hh.
double mets::simulated_annealing< move_manager_type >::stop_temp_m [protected] |
Definition at line 149 of file simulated-annealing.hh.
termination_criteria_chain& mets::simulated_annealing< move_manager_type >::termination_criteria_m [protected] |
Definition at line 146 of file simulated-annealing.hh.
std::tr1::uniform_real<double> mets::simulated_annealing< move_manager_type >::ureal [protected] |
Definition at line 162 of file simulated-annealing.hh.