toulbar2
Public Member Functions | Public Attributes | List of all members
TabuSearch Class Reference

#include <incop.h>

Inheritance diagram for TabuSearch:
Inheritance graph
[legend]
Collaboration diagram for TabuSearch:
Collaboration graph
[legend]

Public Member Functions

int acceptance (Move *move, Configuration *config)
 
int nontabumove (Move *move)
 
void executebeforemove (Move *move, Configuration *configuration, OpProblem *problem)
 
void reinit (OpProblem *problem)
 

Public Attributes

int tabulength
 
list< Move * > move_list
 

Detailed Description

Walk with using a tabu list : this list of moves is implemented by a list<Move*> structure , the actual class of the moves depend on the problems

Member Function Documentation

◆ acceptance()

int TabuSearch::acceptance ( Move move,
Configuration config 
)
virtual

acceptance of a move : not in the tabulist (the aspiration criterion of a best is in the configurationmove algorithm)

Reimplemented from Metaheuristic.

References nontabumove().

◆ executebeforemove()

void TabuSearch::executebeforemove ( Move move,
Configuration configuration,
OpProblem problem 
)
virtual

updating of the tabulist which is managed as a FIFO of maximum length tabulength

Reimplemented from Metaheuristic.

References Move::computetabumove(), move_list, and tabulength.

◆ nontabumove()

int TabuSearch::nontabumove ( Move move)

test of non presence in the tabulist (use of eqmove method)

References move_list.

Referenced by acceptance(), and TabuAcceptingrate::acceptance().

◆ reinit()

void TabuSearch::reinit ( OpProblem problem)
virtual

the tabu list is cleared

Reimplemented from Metaheuristic.

References move_list.

Member Data Documentation

◆ move_list

list<Move*> TabuSearch::move_list

tabu list : implemented FIFO

Referenced by executebeforemove(), nontabumove(), and reinit().

◆ tabulength

int TabuSearch::tabulength

maximum length of the tabulist

Referenced by executebeforemove().