#include <mets.h>
Public Member Functions | |
tabu_list_chain (const tabu_list_chain &) | |
purposely not implemented (see Effective C++) | |
tabu_list_chain & | operator= (const tabu_list_chain &) |
purposely not implemented (see Effective C++) | |
tabu_list_chain (unsigned int tenure) | |
Create an abstract tabu list with a certain tenure. | |
tabu_list_chain (tabu_list_chain *next, unsigned int tenure) | |
Create an abstract tabu list with a certain tenure and a chained tabu list that decorates this one. | |
virtual | ~tabu_list_chain () |
Virtual destructor. | |
virtual void | tabu (feasible_solution &sol, move &mov)=0 |
Make a move tabu when starting from a certain solution. | |
virtual bool | is_tabu (feasible_solution &sol, move &mov)=0 |
True if the move is tabu for the given solution. | |
virtual unsigned int | tenure () |
Tenure of this tabu list. | |
virtual unsigned int | tenure (unsigned int tenure)=0 |
Tenure of this tabu list. | |
Protected Attributes | |
tabu_list_chain * | next_m |
unsigned int | tenure_m |
This is chainable so that tabu lists can be decorated with other tabu lists.
virtual bool mets::tabu_list_chain::is_tabu | ( | feasible_solution & | sol, | |
move & | mov | |||
) | [pure virtual] |
True if the move is tabu for the given solution.
Different implementation can remember "tenure" moves, "tenure" solutions or some other peculiar fact that will avoid cycling. So it's not defined at this stage if a move will be tabu or not at a certain state of the search: this depends on the implementation.
sol | The current working solution | |
mov | The move to make tabu |
Implemented in mets::simple_tabu_list.
virtual void mets::tabu_list_chain::tabu | ( | feasible_solution & | sol, | |
move & | mov | |||
) | [pure virtual] |
Make a move tabu when starting from a certain solution.
Different implementation can remember "tenure" moves, "tenure" solutions or some other peculiar fact that will avoid cycling.
sol | The current working solution | |
mov | The move to make tabu |
Implemented in mets::simple_tabu_list.
virtual unsigned int mets::tabu_list_chain::tenure | ( | unsigned int | tenure | ) | [pure virtual] |
Tenure of this tabu list.
tenure,: | the new tenure of the list. |
Implemented in mets::simple_tabu_list.
virtual unsigned int mets::tabu_list_chain::tenure | ( | ) | [inline, virtual] |
Tenure of this tabu list.
The tenure is the length of the tabu-list (the order of the tabu memory)
Reimplemented in mets::simple_tabu_list.
Return to METSlib home page