Tabu Search algorithm. More...
#include <tabu-search.hh>
Public Types | |
enum | { ASPIRATION_CRITERIA_MET = abstract_search<move_manager_type>::LAST, LAST } |
typedef tabu_search < move_manager_type > | search_type |
Public Member Functions | |
const aspiration_criteria_chain & | get_aspiration_criteria () const |
The aspiration criteria used by this tabu search. | |
const tabu_list_chain & | get_tabu_list () const |
The tabu list used by this tabu search. | |
const termination_criteria_chain & | get_termination_criteria () const |
The termination criteria used by this tabu search. | |
search_type & | operator= (const search_type &) |
void | search () throw (no_moves_error) |
This method starts the tabu search process. | |
tabu_search (feasible_solution &starting_solution, solution_recorder &best_recorder, move_manager_type &move_manager_inst, tabu_list_chain &tabus, aspiration_criteria_chain &aspiration, termination_criteria_chain &termination) | |
Creates a tabu Search instance. | |
tabu_search (const search_type &) | |
virtual | ~tabu_search () |
Protected Attributes | |
aspiration_criteria_chain & | aspiration_criteria_m |
tabu_list_chain & | tabu_list_m |
termination_criteria_chain & | termination_criteria_m |
Tabu Search algorithm.
This implements decorator pattern. You can build many different solvers decorating tabu_search class in different ways.
Definition at line 198 of file tabu-search.hh.
typedef tabu_search<move_manager_type> mets::tabu_search< move_manager_type >::search_type |
Definition at line 201 of file tabu-search.hh.
anonymous enum |
Definition at line 247 of file tabu-search.hh.
mets::tabu_search< move_manager_type >::tabu_search | ( | feasible_solution & | starting_solution, |
solution_recorder & | best_recorder, | ||
move_manager_type & | move_manager_inst, | ||
tabu_list_chain & | tabus, | ||
aspiration_criteria_chain & | aspiration, | ||
termination_criteria_chain & | termination | ||
) |
Creates a tabu Search instance.
starting_solution | The working solution (this will be modified during search). |
best_recorder | A solution recorder used to record the best solution found during the search. |
move_manager_inst | A problem specific implementation of the move_manager_type used to generate the neighborhood. |
tabus | The tabu list used to decorate this search instance. |
aspiration | The aspiration criteria to use in this tabu search. |
termination | The termination criteria used to terminate the search process, this is an extension to the standard Simulated Annealing: you can give a termination criteria that termiantes when temperature reaches 0. |
mets::tabu_search< move_manager_type >::tabu_search | ( | const search_type & | ) |
virtual mets::tabu_search< move_manager_type >::~tabu_search | ( | ) | [inline, virtual] |
Definition at line 235 of file tabu-search.hh.
const aspiration_criteria_chain& mets::tabu_search< move_manager_type >::get_aspiration_criteria | ( | ) | const [inline] |
The aspiration criteria used by this tabu search.
Definition at line 258 of file tabu-search.hh.
const tabu_list_chain& mets::tabu_search< move_manager_type >::get_tabu_list | ( | ) | const [inline] |
The tabu list used by this tabu search.
Definition at line 254 of file tabu-search.hh.
const termination_criteria_chain& mets::tabu_search< move_manager_type >::get_termination_criteria | ( | ) | const [inline] |
The termination criteria used by this tabu search.
Definition at line 262 of file tabu-search.hh.
search_type& mets::tabu_search< move_manager_type >::operator= | ( | const search_type & | ) |
void mets::tabu_search< move_manager_t >::search | ( | ) | throw (no_moves_error) [virtual] |
This method starts the tabu search process.
Remember that this is a minimization process.
An exception mets::no_moves_error is risen when no move is possible.
Implements mets::abstract_search< move_manager_type >.
Definition at line 403 of file tabu-search.hh.
aspiration_criteria_chain& mets::tabu_search< move_manager_type >::aspiration_criteria_m [protected] |
Definition at line 265 of file tabu-search.hh.
tabu_list_chain& mets::tabu_search< move_manager_type >::tabu_list_m [protected] |
Definition at line 264 of file tabu-search.hh.
termination_criteria_chain& mets::tabu_search< move_manager_type >::termination_criteria_m [protected] |
Definition at line 266 of file tabu-search.hh.