|
METSlib
0.6
|
Simplistic implementation of a tabu-list. More...
#include <tabu-search.hh>


Public Member Functions | |
| simple_tabu_list (unsigned int tenure) | |
| Ctor. Makes a tabu list of the specified tenure. More... | |
| simple_tabu_list (tabu_list_chain *next, unsigned int tenure) | |
| Ctor. Makes a tabu list of the specified tenure. More... | |
| ~simple_tabu_list () | |
| Destructor. | |
| void | tabu (const feasible_solution &sol, const move &mov) |
| Make move a tabu. More... | |
| bool | is_tabu (const feasible_solution &sol, const move &mov) const |
| True if the move is tabu for the given solution. More... | |
Public Member Functions inherited from mets::tabu_list_chain | |
| 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 unsigned int | tenure () const |
| Tenure of this tabu list. More... | |
| virtual void | tenure (unsigned int tenure) |
| Tenure of this tabu list. More... | |
Protected Types | |
| typedef std::deque< const move * > | move_list_type |
|
typedef std::tr1::unordered_map< const mana_move *, int, mana_move_hash, dereferenced_equal_to< const mana_move * > > | move_map_type |
Protected Attributes | |
| move_list_type | tabu_moves_m |
| move_map_type | tabu_hash_m |
Protected Attributes inherited from mets::tabu_list_chain | |
| tabu_list_chain * | next_m |
| unsigned int | tenure_m |
Simplistic implementation of a tabu-list.
This class implements one of the simplest and less memory hungry tabu lists. This tabu list memorizes only the moves (not the solutions).
Moves must be of mets::mana_move type.
The comparison between moves is demanded to the move implementation.
A mets::mana_move is tabu if it's in the tabu list by means of its operator== and hash function.
|
inline |
Ctor. Makes a tabu list of the specified tenure.
| tenure | Tenure (length) of the tabu list |
|
inline |
Ctor. Makes a tabu list of the specified tenure.
| tenure | Tenure (length) of the tabu list |
| next | Next list to invoke when this returns false |
|
inlinevirtual |
True if the move is tabu for the given solution.
This implementation considers tabu each move already made less then tenure() moves ago.
| sol | The current working solution |
| mov | The move to make tabu |
Implements mets::tabu_list_chain.
|
inlinevirtual |
Make move a tabu.
This implementation simply remembers "tenure" moves.
| sol | The current working solution |
| mov | The move to make tabu |
Implements mets::tabu_list_chain.
Return to METSlib home page