diff --git a/trunk/paradiseo-mo/src/algo/moTS.h b/trunk/paradiseo-mo/src/algo/moTS.h index 4d86ecb35..1ab69e1e8 100644 --- a/trunk/paradiseo-mo/src/algo/moTS.h +++ b/trunk/paradiseo-mo/src/algo/moTS.h @@ -1,30 +1,30 @@ /* - -Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 + + Copyright (C) DOLPHIN Project-Team, INRIA Lille - Nord Europe, 2006-2010 -Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau + Sébastien Verel, Arnaud Liefooghe, Jérémie Humeau -This software is governed by the CeCILL license under French law and -abiding by the rules of distribution of free software. You can ue, -modify and/ or redistribute the software under the terms of the CeCILL -license as circulated by CEA, CNRS and INRIA at the following URL -"http://www.cecill.info". + This software is governed by the CeCILL license under French law and + abiding by the rules of distribution of free software. You can ue, + modify and/ or redistribute the software under the terms of the CeCILL + license as circulated by CEA, CNRS and INRIA at the following URL + "http://www.cecill.info". -In this respect, the user's attention is drawn to the risks associated -with loading, using, modifying and/or developing or reproducing the -software by the user in light of its specific status of free software, -that may mean that it is complicated to manipulate, and that also -therefore means that it is reserved for developers and experienced -professionals having in-depth computer knowledge. Users are therefore -encouraged to load and test the software's suitability as regards their -requirements in conditions enabling the security of their systems and/or -data to be ensured and, more generally, to use and operate it in the -same conditions as regards security. -The fact that you are presently reading this means that you have had -knowledge of the CeCILL license and that you accept its terms. + In this respect, the user's attention is drawn to the risks associated + with loading, using, modifying and/or developing or reproducing the + software by the user in light of its specific status of free software, + that may mean that it is complicated to manipulate, and that also + therefore means that it is reserved for developers and experienced + professionals having in-depth computer knowledge. Users are therefore + encouraged to load and test the software's suitability as regards their + requirements in conditions enabling the security of their systems and/or + data to be ensured and, more generally, to use and operate it in the + same conditions as regards security. + The fact that you are presently reading this means that you have had + knowledge of the CeCILL license and that you accept its terms. -ParadisEO WebSite : http://paradiseo.gforge.inria.fr -Contact: paradiseo-help@lists.gforge.inria.fr + ParadisEO WebSite : http://paradiseo.gforge.inria.fr + Contact: paradiseo-help@lists.gforge.inria.fr */ #ifndef _moTS_h @@ -51,107 +51,110 @@ class moTS: public moLocalSearch { public: - typedef typename Neighbor::EOT EOT; - typedef moNeighborhood Neighborhood ; + typedef typename Neighbor::EOT EOT; + typedef moNeighborhood Neighborhood ; - /** - * Basic constructor for a tabu search - * @param _neighborhood the neighborhood - * @param _fullEval the full evaluation function - * @param _eval neighbor's evaluation function - * @param _time the time limit for stopping criteria - * @param _tabuListSize the size of the tabu list - */ - moTS(Neighborhood& _neighborhood, - eoEvalFunc& _fullEval, - moEval& _eval, - unsigned int _time, - unsigned int _tabuListSize - ): - moLocalSearch(explorer, timeCont, _fullEval), - timeCont(_time), - tabuList(_tabuListSize,0), - explorer(_neighborhood, _eval, defaultNeighborComp, defaultSolNeighborComp, tabuList, dummyIntensification, dummyDiversification, defaultAspiration) - {} + /** + * Basic constructor for a tabu search + * @param _neighborhood the neighborhood + * @param _fullEval the full evaluation function + * @param _eval neighbor's evaluation function + * @param _time the time limit for stopping criteria + * @param _tabuListSize the size of the tabu list + */ + moTS(Neighborhood& _neighborhood, + eoEvalFunc& _fullEval, + moEval& _eval, + unsigned int _time, + unsigned int _tabuListSize + ): + moLocalSearch(explorer, timeCont, _fullEval), + timeCont(_time), + tabuList(_tabuListSize,0), + explorer(_neighborhood, _eval, defaultNeighborComp, defaultSolNeighborComp, tabuList, dummyIntensification, dummyDiversification, defaultAspiration) + {} - /** - * Simple constructor for a tabu search - * @param _neighborhood the neighborhood - * @param _fullEval the full evaluation function - * @param _eval neighbor's evaluation function - * @param _time the time limit for stopping criteria - * @param _tabuList the tabu list - */ - moTS(Neighborhood& _neighborhood, - eoEvalFunc& _fullEval, - moEval& _eval, - unsigned int _time, - moTabuList& _tabuList): - moLocalSearch(explorer, timeCont, _fullEval), - timeCont(_time), - tabuList(0,0), - explorer(_neighborhood, _eval, defaultNeighborComp, defaultSolNeighborComp, _tabuList, dummyIntensification, dummyDiversification, defaultAspiration) - {} + /** + * Simple constructor for a tabu search + * @param _neighborhood the neighborhood + * @param _fullEval the full evaluation function + * @param _eval neighbor's evaluation function + * @param _time the time limit for stopping criteria + * @param _tabuList the tabu list + */ + moTS(Neighborhood& _neighborhood, + eoEvalFunc& _fullEval, + moEval& _eval, + unsigned int _time, + moTabuList& _tabuList): + moLocalSearch(explorer, timeCont, _fullEval), + timeCont(_time), + tabuList(0,0), + 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 _cont an external continuator - * @param _tabuList the tabu list - * @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 - * @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, - moNeighborComparator& _neighborComp, - moSolNeighborComparator& _solNeighborComp, - moContinuator& _cont, - moTabuList& _tabuList, - moIntensification& _intensification, - moDiversification& _diversification, - moAspiration& _aspiration): - moLocalSearch(explorer, _cont, _fullEval), - timeCont(0), - tabuList(0,0), - explorer(_neighborhood, _eval, _neighborComp, _solNeighborComp, _tabuList, _intensification, _diversification, _aspiration) - {} + /** + * General constructor for a tabu search + * @param _neighborhood the neighborhood + * @param _fullEval the full evaluation function + * @param _eval neighbor's evaluation function + * @param _cont an external continuator + * @param _tabuList the tabu list + * @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 + * @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, + moNeighborComparator& _neighborComp, + moSolNeighborComparator& _solNeighborComp, + moContinuator& _cont, + moTabuList& _tabuList, + moIntensification& _intensification, + moDiversification& _diversification, + moAspiration& _aspiration): + moLocalSearch(explorer, _cont, _fullEval), + timeCont(0), + tabuList(0,0), + explorer(_neighborhood, _eval, _neighborComp, _solNeighborComp, _tabuList, _intensification, _diversification, _aspiration) + {} + moTSexplorer& getExplorer() { + return explorer; + } + private: - moTimeContinuator timeCont; - moNeighborComparator defaultNeighborComp; - moSolNeighborComparator defaultSolNeighborComp; - moNeighborVectorTabuList tabuList; - moDummyIntensification dummyIntensification; - moDummyDiversification dummyDiversification; - moBestImprAspiration defaultAspiration; - moTSexplorer explorer; + moTimeContinuator timeCont; + moNeighborComparator defaultNeighborComp; + moSolNeighborComparator defaultSolNeighborComp; + moNeighborVectorTabuList tabuList; + moDummyIntensification dummyIntensification; + moDummyDiversification dummyDiversification; + moBestImprAspiration defaultAspiration; + moTSexplorer explorer; }; #endif diff --git a/trunk/paradiseo-mo/src/explorer/moTSexplorer.h b/trunk/paradiseo-mo/src/explorer/moTSexplorer.h index 9c6615d7e..77beafc6b 100644 --- a/trunk/paradiseo-mo/src/explorer/moTSexplorer.h +++ b/trunk/paradiseo-mo/src/explorer/moTSexplorer.h @@ -223,6 +223,13 @@ public: }; + /** + * Give the current best found so far + * @return the best solution so far + */ + const EOT& getBest() { + return bestSoFar; + }; protected: