METSlib
0.6
|
Search by Simulated Annealing. More...
#include <simulated-annealing.hh>
Public Types | |
typedef simulated_annealing < move_manager_type > | search_type |
![]() | |
enum | { MOVE_MADE = 0, IMPROVEMENT_MADE, ITERATION_BEGIN, ITERATION_END, LAST } |
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. More... | |
simulated_annealing (const simulated_annealing &) | |
purposely not implemented (see Effective C++) | |
simulated_annealing & | operator= (const simulated_annealing &) |
virtual void | throw (no_moves_error) |
This method starts the simulated annealing search process. More... | |
double | current_temp () const |
The current annealing temperature. More... | |
const abstract_cooling_schedule & | cooling_schedule () const |
The annealing schedule instance. More... | |
![]() | |
abstract_search (feasible_solution &working, solution_recorder &recorder, move_manager_type &moveman) | |
Set some common values needed for neighborhood based metaheuristics. More... | |
abstract_search (const abstract_search< move_manager_type > &) | |
purposely not implemented (see Effective C++) | |
abstract_search & | operator== (const abstract_search< move_manager_type > &) |
purposely not implemented (see Effective C++) | |
virtual | ~abstract_search () |
Virtual destructor. | |
const solution_recorder & | recorder () const |
The solution recorder instance. | |
const feasible_solution & | working () const |
The current working solution. | |
feasible_solution & | working () |
const move & | current_move () const |
The last move made. | |
move & | current_move () |
The last move made. | |
const move_manager_type & | move_manager () const |
The move manager used by this search. | |
move_manager_type & | move_manager () |
The move manager used by this search. | |
int | step () const |
The current step of the algorithm (to be used by the observers). More... | |
![]() | |
virtual void | attach (observer< abstract_search< move_manager_type > > &o) |
Attach a new observer to this subject. More... | |
virtual void | detach (observer< abstract_search< move_manager_type > > &o) |
Detach a new observer to this subject. More... | |
virtual void | notify () |
Notify all attached observers. More... | |
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 |
![]() | |
solution_recorder & | solution_recorder_m |
feasible_solution & | working_solution_m |
move_manager_type & | moves_m |
move_manager_type::iterator | current_move_m |
int | step_m |
![]() | |
std::set< observer < abstract_search < move_manager_type > > * > | observers_m |
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). |
|
inline |
The annealing schedule instance.
|
inline |
The current annealing temperature.
|
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