Public Types | Public Member Functions | Protected Attributes

mets::tabu_search< move_manager_type > Class Template Reference
[Tabu Search]

Tabu Search algorithm. More...

#include <tabu-search.hh>

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

List of all members.

Public Types

enum  { ASPIRATION_CRITERIA_MET = abstract_search<move_manager_type>::LAST, LAST }
typedef tabu_search
< move_manager_type > 
search_type

Public Member Functions

 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 &)
search_typeoperator= (const search_type &)
void search () throw (no_moves_error)
 This method starts the tabu search process.
const tabu_list_chainget_tabu_list () const
 The tabu list used by this tabu search.
const aspiration_criteria_chainget_aspiration_criteria () const
 The aspiration criteria used by this tabu search.
const termination_criteria_chainget_termination_criteria () const
 The termination criteria used by this tabu search.

Protected Attributes

tabu_list_chaintabu_list_m
aspiration_criteria_chainaspiration_criteria_m
termination_criteria_chaintermination_criteria_m

Detailed Description

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

Tabu Search algorithm.

This implements decorator pattern. You can build many different solvers decorating tabu_search class in different ways.


Constructor & Destructor Documentation

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

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

Member Function Documentation

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


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

Return to METSlib home page