paradiseo/trunk/paradiseo-mo/src/moTabuList.h
jboisson a40fc756aa moSimple(Move/Solution)TabuList are added
git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@281 331e1502-861f-0410-8da2-ba01fb791d7f
2007-04-19 13:23:06 +00:00

56 lines
1.3 KiB
C++
Executable file

// -*- mode: c++; c-indent-level: 4; c++-member-init-indent: 8; comment-column: 35; -*-
// "moTabuList.h"
// (c) OPAC Team, LIFL, 2003-2006
/* LICENCE TEXT
Contact: paradiseo-help@lists.gforge.inria.fr
*/
#ifndef __moTabuList_h
#define __moTabuList_h
#include <eoFunctor.h>
//! Class describing a tabu list that a moTS uses.
/*!
It is only a description, does nothing... A new object that herits from this class has to be defined in order
to be used in a moTS.
*/
template < class M > class moTabuList:public eoBF < const M &, const typename
M::EOType &,
bool >
{
public:
//! Alias for the type
typedef typename M::EOType EOT;
//! Procedure to add a move in the tabu list
/*!
The two parameters have not to be modified so they are constant parameters.
\param __move a new tabu move.
\param __sol the origianl solution associated to this move.
*/
virtual void
add (const M & __move, const EOT & __sol) = 0;
//! Procedure that updates the tabu list content.
/*!
Generally, a counter associated to each saved move is decreased by one.
*/
virtual void
update () = 0;
//! Procedure which initialises the tabu list.
/*!
Can be useful if the data structure needs to be allocated before being used.
*/
virtual void
init () = 0;
};
#endif