mets::tabu_search Class Reference
[Tabu Search]

#include <mets.h>

Inheritance diagram for mets::tabu_search:

Inheritance graph
[legend]
Collaboration diagram for mets::tabu_search:

Collaboration graph
[legend]

List of all members.


Detailed Description

Tabu Search algorithm.

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

Public Member Functions

 tabu_search (feasible_solution &starting_solution, feasible_solution &best_sol, move_manager &move_manager_inst, tabu_list_chain &tabus, aspiration_criteria_chain &aspiration, termination_criteria_chain &termination)
 Creates a tabu Search instance.
 tabu_search (const tabu_search &)
tabu_searchoperator= (const tabu_search &)
void search () throw (no_moves_error)
 This method starts the tabu search process.
int step () const
 The current step of the algorithm for use of the observers.
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.

Static Public Attributes

static const int ASPIRATION_CRITERIA_MET = 2
 We just followed an aspiration criteria.

Protected Attributes

tabu_list_chaintabu_list_m
aspiration_criteria_chainaspiration_criteria_m
termination_criteria_chaintermination_criteria_m


Constructor & Destructor Documentation

mets::tabu_search::tabu_search ( feasible_solution starting_solution,
feasible_solution best_sol,
move_manager 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_so_far A different solution instance used to store the best solution found.
move_manager_inst A problem specific implementation of the mets::move_manager 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

void mets::tabu_search::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.

int mets::tabu_search::step (  )  const [inline, virtual]

The current step of the algorithm for use of the observers.

One of

Reimplemented from mets::abstract_search.


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

Return to METSlib home page