diff --git a/trunk/paradiseo-mo/src/algo/moILS.h b/trunk/paradiseo-mo/src/algo/moILS.h index 5c7c48f5c..934335b2d 100644 --- a/trunk/paradiseo-mo/src/algo/moILS.h +++ b/trunk/paradiseo-mo/src/algo/moILS.h @@ -36,6 +36,7 @@ Contact: paradiseo-help@lists.gforge.inria.fr #include #include #include +#include #include #include #include @@ -44,14 +45,15 @@ Contact: paradiseo-help@lists.gforge.inria.fr /** * Iterated Local Search */ -template -class moILS: public moLocalSearch > +template > +class moILS: public moLocalSearch< NeighborLO > { public: typedef typename Neighbor::EOT EOT; typedef moNeighborhood Neighborhood ; + /** * Basic constructor for Iterated Local Search * @param _ls the local search to iterates @@ -60,7 +62,7 @@ public: * @param _nbIteration the time limit for search */ moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, eoMonOp& _op, unsigned int _nbIteration): - moLocalSearch >(explorer, iterCont, _fullEval), + moLocalSearch< moDummyNeighbor >(explorer, iterCont, _fullEval), iterCont(_nbIteration), defaultPerturb(_op, _fullEval), explorer(_ls, defaultPerturb, defaultAccept) @@ -73,8 +75,8 @@ public: * @param _op the operator used to perturb solution * @param _cont a continuator */ - moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, eoMonOp& _op, moContinuator >& _cont): - moLocalSearch >(explorer, _cont, _fullEval), + moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, eoMonOp& _op, moContinuator& _cont): + moLocalSearch< NeighborLO >(explorer, _cont, _fullEval), iterCont(0), defaultPerturb(_op, _fullEval), explorer(_ls, defaultPerturb, defaultAccept) @@ -88,13 +90,15 @@ public: * @param _perturb a perturbation operator * @param _accept a acceptance criteria */ - moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, moContinuator >& _cont, moMonOpPerturb& _perturb, moAcceptanceCriterion& _accept): - moLocalSearch >(explorer, _cont, _fullEval), + // moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, moContinuator >& _cont, moMonOpPerturb& _perturb, moAcceptanceCriterion& _accept): + // moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, moContinuator& _cont, moPerturbation& _perturb): + moILS(moLocalSearch& _ls, eoEvalFunc& _fullEval, moContinuator& _cont, moPerturbation& _perturb, moAcceptanceCriterion& _accept): + moLocalSearch(explorer, _cont, _fullEval), iterCont(0), defaultPerturb(dummyOp, _fullEval), explorer(_ls, _perturb, _accept) {} - + private: class dummmyMonOp: public eoMonOp { @@ -102,11 +106,12 @@ private: bool operator()(EOT&) { return false; } - }dummyOp; - moIterContinuator > iterCont; - moMonOpPerturb defaultPerturb; - moAlwaysAcceptCrit defaultAccept; - moILSexplorer explorer; + } dummyOp; + + moIterContinuator > iterCont; + moMonOpPerturb defaultPerturb; + moAlwaysAcceptCrit defaultAccept; + moILSexplorer< Neighbor , NeighborLO > explorer; // inherits from moNeighborhoodExplorer< NeighborLO > }; diff --git a/trunk/paradiseo-mo/src/algo/moTS.h b/trunk/paradiseo-mo/src/algo/moTS.h index fa64a0812..1108c370b 100644 --- a/trunk/paradiseo-mo/src/algo/moTS.h +++ b/trunk/paradiseo-mo/src/algo/moTS.h @@ -93,6 +93,31 @@ public: explorer(_neighborhood, _eval, defaultNeighborComp, defaultSolNeighborComp, _tabuList, dummyIntensification, dummyDiversification, defaultAspiration) {} + /** + * General constructor for a tabu search + * @param _neighborhood the neighborhood + * @param _fullEval the full evaluation function + * @param _eval neighbor's evaluation function + * @param _neighborComp a comparator between 2 neighbors + * @param _solNeighborComp a solution vs neighbor comparator + * @param _cont an external continuator + * @param _tabuList the tabu list + * @param _intensification the intensification strategy + * @param _diversification the diversification strategy + * @param _aspiration the aspiration Criteria + */ + moTS(Neighborhood& _neighborhood, + eoEvalFunc& _fullEval, + moEval& _eval, + moContinuator& _cont, + moTabuList& _tabuList, + moAspiration& _aspiration): + moLocalSearch(explorer, _cont, _fullEval), + timeCont(0), + tabuList(0,0), + explorer(_neighborhood, _eval, defaultNeighborComp, defaultSolNeighborComp, _tabuList, dummyIntensification, dummyDiversification, _aspiration) + {} + /** * General constructor for a tabu search * @param _neighborhood the neighborhood