Public Types | Public Member Functions | Protected Attributes

mets::simulated_annealing< move_manager_type > Class Template Reference
[Simulated Annealing]

Search by Simulated Annealing. More...

#include <simulated-annealing.hh>

Inheritance diagram for mets::simulated_annealing< move_manager_type >:
Inheritance graph
[legend]
Collaboration diagram for mets::simulated_annealing< move_manager_type >:
Collaboration graph
[legend]

List of all members.

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_annealingoperator= (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_schedulecooling_schedule () const
 The annealing schedule instance.

Protected Attributes

termination_criteria_chaintermination_criteria_m
abstract_cooling_schedulecooling_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

Detailed Description

template<typename move_manager_type>
class mets::simulated_annealing< move_manager_type >

Search by Simulated Annealing.


Constructor & Destructor Documentation

template<typename move_manager_type >
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.

Parameters:
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).

Member Function Documentation

template<typename move_manager_type >
const abstract_cooling_schedule& mets::simulated_annealing< move_manager_type >::cooling_schedule (  )  const [inline]

The annealing schedule instance.

Returns:
The cooling schedule used by this search process.
template<typename move_manager_type >
double mets::simulated_annealing< move_manager_type >::current_temp (  )  const [inline]

The current annealing temperature.

Returns:
The current temperature of the algorithm.
template<typename move_manager_t >
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 >.


The documentation for this class was generated from the following file:

Return to METSlib home page