Parallel MOEO

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@849 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
canape 2007-12-20 09:29:22 +00:00
commit 53abc21464
15 changed files with 934 additions and 4 deletions

View file

@ -38,6 +38,7 @@
#define __eoVector_mesg_h
#include <eoVector.h>
#include <core/moeoVector.h>
#include "messaging.h"
@ -125,4 +126,79 @@ unsigned valid; unpack(valid);
unpack (__v.velocities[i]);
}
template <class F, class T, class V, class W> void unpack (moeoVector <F,T,V,W> &_v)
{
unsigned valid;
unpack(valid);
if (! valid)
_v.invalidate();
else
{
T fit;
unpack (fit);
_v.fitness (fit);
}
unpack(valid);
if (! valid)
_v.invalidateDiversity();
else
{
V diver;
unpack(diver);
_v.diversity(diver);
}
unsigned len;
unpack (len);
_v.resize (len);
for (unsigned i = 0 ; i < len; i ++)
unpack (_v [i]);
unpack(valid);
if (! valid)
_v.invalidateObjectiveVector();
else
{
F object;
unpack (len);
object.resize(len);
for (unsigned i = 0 ; i < len; i ++)
unpack (object[i]);
_v.objectiveVector(object);
}
}
template <class F, class T, class V, class W> void pack (moeoVector <F,T,V,W> &_v)
{
if (_v.invalid())
pack((unsigned)0);
else
{
pack((unsigned)1);
pack (_v.fitness ());
}
if (_v.invalidDiversity())
pack((unsigned)0);
else
{
pack((unsigned)1);
pack(_v.diversity());
}
unsigned len = _v.size ();
pack (len);
for (unsigned i = 0 ; i < len; i ++)
pack (_v[i]);
if (_v.invalidObjectiveVector())
pack((unsigned)0);
else
{
pack((unsigned)1);
F object;
object=_v.objectiveVector();
len=object.nObjectives();
pack (len);
for (unsigned i = 0 ; i < len; i ++)
pack (object[i]);
}
}
#endif

View file

@ -39,6 +39,7 @@
#include <eo>
#include <mo>
#include <moeo>
//! \mainpage The ParadisEO-PEO Framework
@ -330,6 +331,8 @@
#include "peoTransform.h"
#include "peoEvalFunc.h"
#include "peoPopEval.h"
#include "peoMoeoPopEval.h"
/* Cooperative island model */
#include "core/ring_topo.h"