git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1548 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
270d8ebf8c
commit
8cccba1442
7 changed files with 16 additions and 8 deletions
|
|
@ -63,7 +63,7 @@ public:
|
||||||
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
|
moMoveIncrEval < Move, ObjectiveVector > & _incrEval)
|
||||||
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
|
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval){}
|
||||||
|
|
||||||
void operator()(eoPop < MOEOT > & _src, std::vector<unsigned int> & _select, eoPop < MOEOT > & _dest)
|
void operator()(eoPop < MOEOT > & _src, std::vector < unsigned int> _select, eoPop < MOEOT > & _dest)
|
||||||
{
|
{
|
||||||
for(unsigned int i=0; i<_select.size(); i++)
|
for(unsigned int i=0; i<_select.size(); i++)
|
||||||
explore(_src, _select[i], _dest);
|
explore(_src, _select[i], _dest);
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public:
|
||||||
if (_src[i].flag() == 0)
|
if (_src[i].flag() == 0)
|
||||||
res.push_back(i);
|
res.push_back(i);
|
||||||
}
|
}
|
||||||
if(_number < res.size()){
|
if(number < res.size()){
|
||||||
UF_random_generator<unsigned int> rndGen;
|
UF_random_generator<unsigned int> rndGen;
|
||||||
std::random_shuffle(res.begin(), res.end(), rndGen);
|
std::random_shuffle(res.begin(), res.end(), rndGen);
|
||||||
res.resize(number);
|
res.resize(number);
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,11 @@
|
||||||
* TODO
|
* TODO
|
||||||
*/
|
*/
|
||||||
template < class Move >
|
template < class Move >
|
||||||
class moeoPopNeighborhoodExplorer{};
|
class moeoPopNeighborhoodExplorer{
|
||||||
|
|
||||||
|
public:
|
||||||
|
virtual void operator()(eoPop < typename Move::EOType > &, std::vector <unsigned int>, eoPop < typename Move::EOType > &) = 0;
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
#endif /*MOEONEIGHBORHOODEXPLORER_H_*/
|
#endif /*MOEONEIGHBORHOODEXPLORER_H_*/
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@
|
||||||
#include <moeoUnifiedDominanceBasedLS.h>
|
#include <moeoUnifiedDominanceBasedLS.h>
|
||||||
#include <moeoNewArchive.h>
|
#include <moeoNewArchive.h>
|
||||||
#include <moeoPopNeighborhoodExplorer.h>
|
#include <moeoPopNeighborhoodExplorer.h>
|
||||||
|
#include <moeoUnvisitedSelect.h>
|
||||||
|
|
||||||
template < class Move >
|
template < class Move >
|
||||||
class moeoRestartLS : public moeoPopLS < Move >
|
class moeoRestartLS : public moeoPopLS < Move >
|
||||||
|
|
@ -58,7 +59,7 @@ public:
|
||||||
eoEvalFunc < MOEOT > & _eval,
|
eoEvalFunc < MOEOT > & _eval,
|
||||||
eoContinue < MOEOT > & _continuator,
|
eoContinue < MOEOT > & _continuator,
|
||||||
moeoPopNeighborhoodExplorer < Move > & _explorer,
|
moeoPopNeighborhoodExplorer < Move > & _explorer,
|
||||||
moeoUnivisitedSelection < Move > & _select,
|
moeoUnvisitedSelect < Move > & _select,
|
||||||
moeoArchive < MOEOT > & _globalArchive,
|
moeoArchive < MOEOT > & _globalArchive,
|
||||||
std::string _fileName) :
|
std::string _fileName) :
|
||||||
init(_init), eval(_eval), continuator(_continuator), ls(continuator, _eval, internalArchive, _explorer, _select), globalArchive(_globalArchive), fileName(_fileName), count(0) {}
|
init(_init), eval(_eval), continuator(_continuator), ls(continuator, _eval, internalArchive, _explorer, _select), globalArchive(_globalArchive), fileName(_fileName), count(0) {}
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ public:
|
||||||
unsigned int _number)
|
unsigned int _number)
|
||||||
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval), number(_number){}
|
: moveInit(_moveInit), nextMove(_nextMove), incrEval(_incrEval), number(_number){}
|
||||||
|
|
||||||
void operator()(eoPop < MOEOT > & _src, std::vector<unsigned int> & _select, eoPop < MOEOT > & _dest)
|
void operator()(eoPop < MOEOT > & _src, std::vector <unsigned int> _select, eoPop < MOEOT > & _dest)
|
||||||
{
|
{
|
||||||
if(number > 0){
|
if(number > 0){
|
||||||
for(unsigned int i=0; i<_select.size(); i++)
|
for(unsigned int i=0; i<_select.size(); i++)
|
||||||
|
|
@ -74,7 +74,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void explore(eoPop < MOEOT > & _src, unsigned int _i, eoPop < MOEOT > & _dest, unsigned int _number)
|
void explore(eoPop < MOEOT > & _src, unsigned int _i, eoPop < MOEOT > & _dest)
|
||||||
{
|
{
|
||||||
unsigned int tmp = number;
|
unsigned int tmp = number;
|
||||||
moveInit(move, _src[_i]);
|
moveInit(move, _src[_i]);
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@
|
||||||
#include <moeo>
|
#include <moeo>
|
||||||
#include <moeoPopLS.h>
|
#include <moeoPopLS.h>
|
||||||
#include <moeoPopNeighborhoodExplorer.h>
|
#include <moeoPopNeighborhoodExplorer.h>
|
||||||
|
#include <moeoUnvisitedSelect.h>
|
||||||
|
|
||||||
template < class Move >
|
template < class Move >
|
||||||
class moeoUnifiedDominanceBasedLS : public moeoPopLS < Move >
|
class moeoUnifiedDominanceBasedLS : public moeoPopLS < Move >
|
||||||
|
|
@ -56,7 +57,7 @@ public:
|
||||||
eoContinue < MOEOT > & _continuator,
|
eoContinue < MOEOT > & _continuator,
|
||||||
eoEvalFunc < MOEOT > & _eval,
|
eoEvalFunc < MOEOT > & _eval,
|
||||||
moeoArchive < MOEOT > & _archive,
|
moeoArchive < MOEOT > & _archive,
|
||||||
moeoPopNeighborhoodExplorer < Move > & _explorer
|
moeoPopNeighborhoodExplorer < Move > & _explorer,
|
||||||
moeoUnvisitedSelect < Move > & _select) :
|
moeoUnvisitedSelect < Move > & _select) :
|
||||||
continuator(_continuator), loopEval(_eval), popEval(loopEval), archive(_archive), explorer(_explorer), select(_select) {}
|
continuator(_continuator), loopEval(_eval), popEval(loopEval), archive(_archive), explorer(_explorer), select(_select) {}
|
||||||
|
|
||||||
|
|
@ -76,6 +77,7 @@ public:
|
||||||
//selection des individus non visités à explorer
|
//selection des individus non visités à explorer
|
||||||
selectionVector = select(archive);
|
selectionVector = select(archive);
|
||||||
//exploration
|
//exploration
|
||||||
|
//explorer(archive, selectionVector, tmp_pop);
|
||||||
explorer(archive, selectionVector, tmp_pop);
|
explorer(archive, selectionVector, tmp_pop);
|
||||||
//mise à jour de la pop ou archive
|
//mise à jour de la pop ou archive
|
||||||
archive(tmp_pop);
|
archive(tmp_pop);
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,6 @@
|
||||||
* TODO
|
* TODO
|
||||||
*/
|
*/
|
||||||
template < class Move >
|
template < class Move >
|
||||||
class moeoUnvisitedSelect{};
|
class moeoUnvisitedSelect: public eoUF < eoPop < typename Move::EOType> &, std::vector< unsigned int > >{};
|
||||||
|
|
||||||
#endif /*MOEOUNVISITEDSELECT_H_*/
|
#endif /*MOEOUNVISITEDSELECT_H_*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue