git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@1482 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
parent
cb729a7668
commit
8fb5a075e9
78 changed files with 0 additions and 6276 deletions
|
|
@ -1,24 +0,0 @@
|
||||||
#
|
|
||||||
#####################################################################################
|
|
||||||
### 1) Definitions (required for tsp target)
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET(TSP_SRC_DIR ${ParadisEO-PEO_SOURCE_DIR}/tutorial/examples/tsp)
|
|
||||||
SET(TSP_BINARY_DIR ${ParadisEO-PEO_BINARY_DIR}/tutorial/examples/tsp)
|
|
||||||
SET(FLOWSHOP_SRC_DIR "${MOEO_SRC_DIR}/tutorial/examples/flowshop" CACHE PATH "Flowshop source directory" FORCE)
|
|
||||||
SET(FLOWSHOP_BIN_DIR "${MOEO_BIN_DIR}/tutorial/examples/flowshop" CACHE PATH "Flowshop binary directory" FORCE)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 2) Where must cmake go now ?
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
ADD_SUBDIRECTORY(examples)
|
|
||||||
ADD_SUBDIRECTORY(Lesson1)
|
|
||||||
ADD_SUBDIRECTORY(Lesson2)
|
|
||||||
ADD_SUBDIRECTORY(Lesson3)
|
|
||||||
ADD_SUBDIRECTORY(Lesson4)
|
|
||||||
ADD_SUBDIRECTORY(Lesson5)
|
|
||||||
ADD_SUBDIRECTORY(Lesson6)
|
|
||||||
######################################################################################
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 0) Set the compiler and define targets to easily run the lessons
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET (CMAKE_CXX_COMPILER mpicxx)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/schema.xml)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/param
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1)
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/schema.xml
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1)
|
|
||||||
|
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/param
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson1/schema.xml
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson1
|
|
||||||
)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 1) Include the sources
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src ${MOEO_SRC_DIR}/src ${MO_SRC_DIR}/src ${ParadisEO-PEO_SOURCE_DIR}/src)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 2) Specify where CMake can find the libraries
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${ParadisEO-PEO_BINARY_DIR}/lib)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 3) Define your target(s): just an executable here
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(pso mainPSO.cpp)
|
|
||||||
ADD_DEPENDENCIES(pso peo rmc_mpi)
|
|
||||||
ADD_EXECUTABLE(ea mainEA.cpp)
|
|
||||||
ADD_DEPENDENCIES(ea peo rmc_mpi)
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 4) Optionnal: define properties
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET(LESSON1_VERSION ${GLOBAL_VERSION})
|
|
||||||
SET_TARGET_PROPERTIES(pso PROPERTIES VERSION "${LESSON1_VERSION}")
|
|
||||||
SET_TARGET_PROPERTIES(ea PROPERTIES VERSION "${LESSON1_VERSION}")
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 5) Link the librairies
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(pso ${XML2_LIBS} peo rmc_mpi eo eoutils peo)
|
|
||||||
TARGET_LINK_LIBRARIES(ea ${XML2_LIBS} peo rmc_mpi eo eoutils peo)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
@ -1,116 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainEA.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
#include <es.h>
|
|
||||||
|
|
||||||
typedef eoReal<double> Indi;
|
|
||||||
|
|
||||||
//Evaluation function
|
|
||||||
double f (const Indi & _indi)
|
|
||||||
{
|
|
||||||
// Rosenbrock function f(x) = 100*(x[1]-x[0]^2)^2+(1-x[0])^2
|
|
||||||
// => optimal : f* = 0 , with x* =(1,1)
|
|
||||||
|
|
||||||
double sum;
|
|
||||||
sum=_indi[1]-pow(_indi[0],2);
|
|
||||||
sum=100*pow(sum,2);
|
|
||||||
sum+=pow((1-_indi[0]),2);
|
|
||||||
return (-sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int __argc, char *__argv[])
|
|
||||||
{
|
|
||||||
|
|
||||||
// Initialization of the parallel environment : thanks this instruction, ParadisEO-PEO can initialize himself
|
|
||||||
peo :: init( __argc, __argv );
|
|
||||||
|
|
||||||
//Parameters
|
|
||||||
eoParser parser(__argc, __argv);
|
|
||||||
unsigned int POP_SIZE = parser.createParam((unsigned int)(20), "popSize", "Population size",'P',"Param").value();
|
|
||||||
unsigned int MAX_GEN = parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations",'G',"Param").value();
|
|
||||||
double EPSILON = parser.createParam(0.01, "mutEpsilon", "epsilon for mutation",'e',"Param").value();
|
|
||||||
double CROSS_RATE = parser.createParam(0.25, "pCross", "Crossover probability",'C',"Param").value();
|
|
||||||
double MUT_RATE = parser.createParam(0.35, "pMut", "Mutation probability",'M',"Param").value();
|
|
||||||
unsigned int VEC_SIZE = parser.createParam((unsigned int)(2), "vecSize", "Vector size",'V',"Param").value();
|
|
||||||
double INIT_POSITION_MIN = parser.createParam(-2.0, "pMin", "Init position min",'N',"Param").value();
|
|
||||||
double INIT_POSITION_MAX = parser.createParam(2.0, "pMax", "Init position max",'X',"Param").value();
|
|
||||||
rng.reseed (time(0));
|
|
||||||
|
|
||||||
// Stopping
|
|
||||||
eoGenContinue < Indi > genContPara (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara (genContPara);
|
|
||||||
eoCheckPoint<Indi> checkpoint(continuatorPara);
|
|
||||||
|
|
||||||
// For a parallel evaluation
|
|
||||||
peoEvalFunc<Indi> plainEval(f);
|
|
||||||
peoPopEval <Indi> eval(plainEval);
|
|
||||||
|
|
||||||
// Initialization
|
|
||||||
eoUniformGenerator < double >uGen (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random (VEC_SIZE, uGen);
|
|
||||||
|
|
||||||
// Selection
|
|
||||||
eoRankingSelect<Indi> selectionStrategy;
|
|
||||||
eoSelectNumber<Indi> select(selectionStrategy,POP_SIZE);
|
|
||||||
|
|
||||||
// Transformation
|
|
||||||
eoSegmentCrossover<Indi> crossover;
|
|
||||||
eoUniformMutation<Indi> mutation(EPSILON);
|
|
||||||
eoSGATransform<Indi> transform(crossover,CROSS_RATE,mutation,MUT_RATE);
|
|
||||||
|
|
||||||
// Replacement
|
|
||||||
eoPlusReplacement<Indi> replace;
|
|
||||||
|
|
||||||
// Creation of the population
|
|
||||||
eoPop < Indi > pop;
|
|
||||||
pop.append (POP_SIZE, random);
|
|
||||||
|
|
||||||
// Algorithm
|
|
||||||
eoEasyEA< Indi > eaAlg( checkpoint, eval, select, transform, replace );
|
|
||||||
|
|
||||||
//Parallel algorithm
|
|
||||||
peoWrapper parallelEA( eaAlg, pop);
|
|
||||||
eval.setOwner(parallelEA);
|
|
||||||
|
|
||||||
peo :: run();
|
|
||||||
peo :: finalize();
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
std::cout << "Final population :\n" << pop << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,123 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainPSO.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
|
|
||||||
typedef eoRealParticle < double >Indi;
|
|
||||||
|
|
||||||
//Evaluation function
|
|
||||||
double f (const Indi & _indi)
|
|
||||||
{
|
|
||||||
// Rosenbrock function f(x) = 100*(x[1]-x[0]^2)^2+(1-x[0])^2
|
|
||||||
// => optimal : f* = 0 , with x* =(1,1)
|
|
||||||
|
|
||||||
double sum;
|
|
||||||
sum=_indi[1]-pow(_indi[0],2);
|
|
||||||
sum=100*pow(sum,2);
|
|
||||||
sum+=pow((1-_indi[0]),2);
|
|
||||||
return (-sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int __argc, char *__argv[])
|
|
||||||
{
|
|
||||||
|
|
||||||
// Initialization of the parallel environment : thanks this instruction, ParadisEO-PEO can initialize himself
|
|
||||||
peo :: init( __argc, __argv );
|
|
||||||
|
|
||||||
//Parameters
|
|
||||||
eoParser parser(__argc, __argv);
|
|
||||||
unsigned int POP_SIZE = parser.createParam((unsigned int)(20), "popSize", "Population size",'P',"Param").value();
|
|
||||||
unsigned int MAX_GEN = parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations",'G',"Param").value();
|
|
||||||
unsigned int VEC_SIZE = parser.createParam((unsigned int)(2), "vecSize", "Vector size",'V',"Param").value();
|
|
||||||
double INIT_POSITION_MIN = parser.createParam(-2.0, "pMin", "Init position min",'N',"Param").value();
|
|
||||||
double INIT_POSITION_MAX = parser.createParam(2.0, "pMax", "Init position max",'X',"Param").value();
|
|
||||||
double INIT_VELOCITY_MIN = parser.createParam(-1.0, "vMin", "Init velocity min",'n',"Param").value();
|
|
||||||
double INIT_VELOCITY_MAX = parser.createParam(1.0, "vMax", "Init velocity max",'x',"Param").value();
|
|
||||||
double weight = parser.createParam(1.0, "weight", "Weight",'w',"Param").value();
|
|
||||||
double C1 = parser.createParam(0.5, "c1", "C1",'1',"Param").value();
|
|
||||||
double C2 = parser.createParam(2.0, "c2t", "C2",'2',"Param").value();
|
|
||||||
unsigned int NEIGHBORHOOD_SIZE = parser.createParam((unsigned int)(6), "neighSize", "Neighborhood size",'H',"Param").value();
|
|
||||||
rng.reseed (time(0));
|
|
||||||
|
|
||||||
// Stopping
|
|
||||||
eoGenContinue < Indi > genContPara (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara (genContPara);
|
|
||||||
eoCheckPoint<Indi> checkpoint(continuatorPara);
|
|
||||||
|
|
||||||
// For a parallel evaluation
|
|
||||||
peoEvalFunc<Indi, double, const Indi& > plainEval(f);
|
|
||||||
peoPopEval< Indi > eval(plainEval);
|
|
||||||
|
|
||||||
// Initialization
|
|
||||||
eoUniformGenerator < double >uGen (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random (VEC_SIZE, uGen);
|
|
||||||
|
|
||||||
// Velocity
|
|
||||||
eoUniformGenerator < double >sGen (INIT_VELOCITY_MIN, INIT_VELOCITY_MAX);
|
|
||||||
eoVelocityInitFixedLength < Indi > veloRandom (VEC_SIZE, sGen);
|
|
||||||
|
|
||||||
// Initializing the best
|
|
||||||
eoFirstIsBestInit < Indi > localInit;
|
|
||||||
|
|
||||||
// Flight
|
|
||||||
eoRealVectorBounds bndsFlight(VEC_SIZE,INIT_POSITION_MIN,INIT_POSITION_MAX);
|
|
||||||
eoStandardFlight < Indi > flight(bndsFlight);
|
|
||||||
|
|
||||||
// Creation of the population
|
|
||||||
eoPop < Indi > pop;
|
|
||||||
pop.append (POP_SIZE, random);
|
|
||||||
|
|
||||||
// Topology
|
|
||||||
eoLinearTopology<Indi> topology(NEIGHBORHOOD_SIZE);
|
|
||||||
eoRealVectorBounds bnds(VEC_SIZE,INIT_VELOCITY_MIN,INIT_VELOCITY_MAX);
|
|
||||||
eoStandardVelocity < Indi > velocity (topology,weight,C1,C2,bnds);
|
|
||||||
|
|
||||||
// Initialization
|
|
||||||
eoInitializer <Indi> init(eval,veloRandom,localInit,topology,pop);
|
|
||||||
|
|
||||||
//Parallel algorithm
|
|
||||||
eoSyncEasyPSO <Indi> psa(init,checkpoint,eval, velocity, flight);
|
|
||||||
peoWrapper parallelPSO( psa, pop);
|
|
||||||
eval.setOwner(parallelPSO);
|
|
||||||
|
|
||||||
peo :: run();
|
|
||||||
peo :: finalize();
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
std::cout << "Final population :\n" << pop << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
# Doxyfile 1.4.7
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Project related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
PROJECT_NAME = "ParadisEO-PEO Lesson1"
|
|
||||||
PROJECT_NUMBER = 0.1
|
|
||||||
OUTPUT_DIRECTORY = ../../../doc/html/lesson1
|
|
||||||
CREATE_SUBDIRS = NO
|
|
||||||
OUTPUT_LANGUAGE = English
|
|
||||||
USE_WINDOWS_ENCODING = NO
|
|
||||||
BRIEF_MEMBER_DESC = YES
|
|
||||||
REPEAT_BRIEF = YES
|
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
|
||||||
"The $name widget" \
|
|
||||||
"The $name file" \
|
|
||||||
is \
|
|
||||||
provides \
|
|
||||||
specifies \
|
|
||||||
contains \
|
|
||||||
represents \
|
|
||||||
a \
|
|
||||||
an \
|
|
||||||
the
|
|
||||||
ALWAYS_DETAILED_SEC = NO
|
|
||||||
INLINE_INHERITED_MEMB = NO
|
|
||||||
FULL_PATH_NAMES = NO
|
|
||||||
STRIP_FROM_PATH =
|
|
||||||
STRIP_FROM_INC_PATH =
|
|
||||||
SHORT_NAMES = NO
|
|
||||||
JAVADOC_AUTOBRIEF = YES
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
|
||||||
DETAILS_AT_TOP = NO
|
|
||||||
INHERIT_DOCS = YES
|
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
|
||||||
TAB_SIZE = 8
|
|
||||||
ALIASES =
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
|
||||||
BUILTIN_STL_SUPPORT = NO
|
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
|
||||||
SUBGROUPING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Build related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
EXTRACT_ALL = NO
|
|
||||||
EXTRACT_PRIVATE = YES
|
|
||||||
EXTRACT_STATIC = YES
|
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
|
||||||
HIDE_UNDOC_MEMBERS = YES
|
|
||||||
HIDE_UNDOC_CLASSES = YES
|
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
|
||||||
HIDE_IN_BODY_DOCS = NO
|
|
||||||
INTERNAL_DOCS = NO
|
|
||||||
CASE_SENSE_NAMES = YES
|
|
||||||
HIDE_SCOPE_NAMES = NO
|
|
||||||
SHOW_INCLUDE_FILES = YES
|
|
||||||
INLINE_INFO = YES
|
|
||||||
SORT_MEMBER_DOCS = NO
|
|
||||||
SORT_BRIEF_DOCS = NO
|
|
||||||
SORT_BY_SCOPE_NAME = NO
|
|
||||||
GENERATE_TODOLIST = YES
|
|
||||||
GENERATE_TESTLIST = YES
|
|
||||||
GENERATE_BUGLIST = YES
|
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
|
||||||
ENABLED_SECTIONS =
|
|
||||||
MAX_INITIALIZER_LINES = 30
|
|
||||||
SHOW_USED_FILES = YES
|
|
||||||
SHOW_DIRECTORIES = NO
|
|
||||||
FILE_VERSION_FILTER =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to warning and progress messages
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
QUIET = YES
|
|
||||||
WARNINGS = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
|
||||||
WARN_IF_DOC_ERROR = YES
|
|
||||||
WARN_NO_PARAMDOC = NO
|
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
|
||||||
WARN_LOGFILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the input files
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
INPUT = .
|
|
||||||
FILE_PATTERNS = *.cpp \
|
|
||||||
*.h \
|
|
||||||
NEWS \
|
|
||||||
README
|
|
||||||
RECURSIVE = YES
|
|
||||||
EXCLUDE =
|
|
||||||
EXCLUDE_SYMLINKS = NO
|
|
||||||
EXCLUDE_PATTERNS =
|
|
||||||
EXAMPLE_PATH =
|
|
||||||
EXAMPLE_PATTERNS = *
|
|
||||||
EXAMPLE_RECURSIVE = NO
|
|
||||||
IMAGE_PATH = ../../docs/images
|
|
||||||
INPUT_FILTER =
|
|
||||||
FILTER_PATTERNS =
|
|
||||||
FILTER_SOURCE_FILES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to source browsing
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SOURCE_BROWSER = YES
|
|
||||||
INLINE_SOURCES = NO
|
|
||||||
STRIP_CODE_COMMENTS = YES
|
|
||||||
REFERENCED_BY_RELATION = YES
|
|
||||||
REFERENCES_RELATION = YES
|
|
||||||
REFERENCES_LINK_SOURCE = YES
|
|
||||||
USE_HTAGS = NO
|
|
||||||
VERBATIM_HEADERS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the alphabetical class index
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ALPHABETICAL_INDEX = YES
|
|
||||||
COLS_IN_ALPHA_INDEX = 3
|
|
||||||
IGNORE_PREFIX = peo
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the HTML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_HTML = YES
|
|
||||||
HTML_OUTPUT = html
|
|
||||||
HTML_FILE_EXTENSION = .html
|
|
||||||
HTML_HEADER =
|
|
||||||
HTML_FOOTER =
|
|
||||||
HTML_STYLESHEET =
|
|
||||||
HTML_ALIGN_MEMBERS = YES
|
|
||||||
GENERATE_HTMLHELP = NO
|
|
||||||
CHM_FILE =
|
|
||||||
HHC_LOCATION =
|
|
||||||
GENERATE_CHI = NO
|
|
||||||
BINARY_TOC = NO
|
|
||||||
TOC_EXPAND = NO
|
|
||||||
DISABLE_INDEX = NO
|
|
||||||
ENUM_VALUES_PER_LINE = 4
|
|
||||||
GENERATE_TREEVIEW = YES
|
|
||||||
TREEVIEW_WIDTH = 250
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the LaTeX output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_LATEX = YES
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = a4wide
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
PDF_HYPERLINKS = YES
|
|
||||||
USE_PDFLATEX = YES
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
LATEX_HIDE_INDICES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the RTF output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the man page output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_MAN = YES
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_LINKS = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the XML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_OUTPUT = xml
|
|
||||||
XML_SCHEMA =
|
|
||||||
XML_DTD =
|
|
||||||
XML_PROGRAMLISTING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options for the AutoGen Definitions output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the Perl module output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_PERLMOD = NO
|
|
||||||
PERLMOD_LATEX = NO
|
|
||||||
PERLMOD_PRETTY = YES
|
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the preprocessor
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ENABLE_PREPROCESSING = YES
|
|
||||||
MACRO_EXPANSION = NO
|
|
||||||
EXPAND_ONLY_PREDEF = NO
|
|
||||||
SEARCH_INCLUDES = YES
|
|
||||||
INCLUDE_PATH =
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
|
||||||
PREDEFINED =
|
|
||||||
EXPAND_AS_DEFINED =
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to external references
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../docs/paradiseo-peo.doxytag=../../ \
|
|
||||||
../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html
|
|
||||||
GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
PERL_PATH = /usr/bin/perl
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the dot tool
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
CLASS_DIAGRAMS = YES
|
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
|
||||||
HAVE_DOT = NO
|
|
||||||
CLASS_GRAPH = YES
|
|
||||||
COLLABORATION_GRAPH = YES
|
|
||||||
GROUP_GRAPHS = YES
|
|
||||||
UML_LOOK = NO
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = YES
|
|
||||||
INCLUDED_BY_GRAPH = YES
|
|
||||||
CALL_GRAPH = NO
|
|
||||||
CALLER_GRAPH = NO
|
|
||||||
GRAPHICAL_HIERARCHY = YES
|
|
||||||
DIRECTORY_GRAPH = YES
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
DOT_PATH =
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
|
||||||
DOT_TRANSPARENT = NO
|
|
||||||
DOT_MULTI_TARGETS = NO
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to the search engine
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SEARCHENGINE = YES
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
###### Param ######
|
|
||||||
--popSize=20 # -P : Population size
|
|
||||||
--maxGen=200 # -G : Maximum number of generations
|
|
||||||
--mutEpsilon=0.01 # -e : epsilon for mutation
|
|
||||||
--pCross=0.80 # -C : Crossover probability
|
|
||||||
--pMut=0.30 # -M : Mutation probability
|
|
||||||
--vecSize=2 # -V : Vector size
|
|
||||||
--pMin=-2.0 # -N : Init position min
|
|
||||||
--pMax=2.0 # -X : Init position max
|
|
||||||
--vMin=-1.0 # -n : Init velocity min
|
|
||||||
--vMax=1.0 # -x : Init velocity max
|
|
||||||
--neighSize=6 # -H : Neighborhood size
|
|
||||||
--weight=1.0 # -w : Weight
|
|
||||||
--c1=0.5 # -1 : C1
|
|
||||||
--c2=2.0 # -2 : C2
|
|
||||||
|
|
||||||
## miscallenous parameters
|
|
||||||
|
|
||||||
--debug=false
|
|
||||||
|
|
||||||
## deployment schema
|
|
||||||
|
|
||||||
--schema=schema.xml
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<group scheduler="0">
|
|
||||||
<node name="0" num_workers="0">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="1" num_workers="0">
|
|
||||||
<runner>1</runner>
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="2" num_workers="1">
|
|
||||||
</node>
|
|
||||||
<node name="3" num_workers="1">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 0) Set the compiler and define targets to easily run the lessons
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET (CMAKE_CXX_COMPILER mpicxx)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/schema.xml)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/param
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2)
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/schema.xml
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2)
|
|
||||||
|
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/param
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson2/schema.xml
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson2
|
|
||||||
)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 1) Include the sources
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src ${MOEO_SRC_DIR}/src ${MO_SRC_DIR}/src ${ParadisEO-PEO_SOURCE_DIR}/src)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 2) Specify where CMake can find the libraries
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${ParadisEO-PEO_BINARY_DIR}/lib)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 3) Define your target(s): just an executable here
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(ea2 mainEA.cpp)
|
|
||||||
ADD_DEPENDENCIES(ea2 peo rmc_mpi)
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 4) Optionnal: define properties
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET(LESSON2_VERSION ${GLOBAL_VERSION})
|
|
||||||
SET_TARGET_PROPERTIES(ea2 PROPERTIES VERSION "${LESSON2_VERSION}")
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 5) Link the librairies
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(ea2 ${XML2_LIBS} peo rmc_mpi eo eoutils peo)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
@ -1,97 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainEA.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
#include <es.h>
|
|
||||||
|
|
||||||
typedef eoReal<double> Indi;
|
|
||||||
|
|
||||||
double f (const Indi & _indi)
|
|
||||||
{
|
|
||||||
double sum;
|
|
||||||
sum=_indi[1]-pow(_indi[0],2);
|
|
||||||
sum=100*pow(sum,2);
|
|
||||||
sum+=pow((1-_indi[0]),2);
|
|
||||||
return (-sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int __argc, char *__argv[])
|
|
||||||
{
|
|
||||||
|
|
||||||
peo :: init( __argc, __argv );
|
|
||||||
eoParser parser(__argc, __argv);
|
|
||||||
unsigned int POP_SIZE = parser.createParam((unsigned int)(20), "popSize", "Population size",'P',"Param").value();
|
|
||||||
unsigned int MAX_GEN = parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations",'G',"Param").value();
|
|
||||||
double EPSILON = parser.createParam(0.01, "mutEpsilon", "epsilon for mutation",'e',"Param").value();
|
|
||||||
double CROSS_RATE = parser.createParam(0.25, "pCross", "Crossover probability",'C',"Param").value();
|
|
||||||
double MUT_RATE = parser.createParam(0.35, "pMut", "Mutation probability",'M',"Param").value();
|
|
||||||
unsigned int VEC_SIZE = parser.createParam((unsigned int)(2), "vecSize", "Vector size",'V',"Param").value();
|
|
||||||
double INIT_POSITION_MIN = parser.createParam(-2.0, "pMin", "Init position min",'N',"Param").value();
|
|
||||||
double INIT_POSITION_MAX = parser.createParam(2.0, "pMax", "Init position max",'X',"Param").value();
|
|
||||||
rng.reseed (time(0));
|
|
||||||
eoGenContinue < Indi > genContPara (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara (genContPara);
|
|
||||||
eoCheckPoint<Indi> checkpoint(continuatorPara);
|
|
||||||
peoEvalFunc<Indi> plainEval(f);
|
|
||||||
peoPopEval <Indi> eval(plainEval);
|
|
||||||
eoUniformGenerator < double >uGen (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random (VEC_SIZE, uGen);
|
|
||||||
eoRankingSelect<Indi> selectionStrategy;
|
|
||||||
eoSelectNumber<Indi> select(selectionStrategy,POP_SIZE);
|
|
||||||
eoSegmentCrossover<Indi> crossover;
|
|
||||||
eoUniformMutation<Indi> mutation(EPSILON);
|
|
||||||
|
|
||||||
// Parallel transformation
|
|
||||||
peoTransform<Indi> transform(crossover,CROSS_RATE,mutation,MUT_RATE);
|
|
||||||
|
|
||||||
eoPlusReplacement<Indi> replace;
|
|
||||||
eoPop < Indi > pop;
|
|
||||||
pop.append (POP_SIZE, random);
|
|
||||||
eoEasyEA< Indi > eaAlg( checkpoint, eval, select, transform, replace );
|
|
||||||
peoWrapper parallelEA( eaAlg, pop);
|
|
||||||
eval.setOwner(parallelEA);
|
|
||||||
|
|
||||||
// setOwner
|
|
||||||
transform.setOwner (parallelEA);
|
|
||||||
|
|
||||||
peo :: run();
|
|
||||||
peo :: finalize();
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
std::cout << "Final population :\n" << pop << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
# Doxyfile 1.4.7
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Project related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
PROJECT_NAME = "ParadisEO-PEO Lesson2"
|
|
||||||
PROJECT_NUMBER = 0.1
|
|
||||||
OUTPUT_DIRECTORY = ../../../doc/html/lesson2
|
|
||||||
CREATE_SUBDIRS = NO
|
|
||||||
OUTPUT_LANGUAGE = English
|
|
||||||
USE_WINDOWS_ENCODING = NO
|
|
||||||
BRIEF_MEMBER_DESC = YES
|
|
||||||
REPEAT_BRIEF = YES
|
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
|
||||||
"The $name widget" \
|
|
||||||
"The $name file" \
|
|
||||||
is \
|
|
||||||
provides \
|
|
||||||
specifies \
|
|
||||||
contains \
|
|
||||||
represents \
|
|
||||||
a \
|
|
||||||
an \
|
|
||||||
the
|
|
||||||
ALWAYS_DETAILED_SEC = NO
|
|
||||||
INLINE_INHERITED_MEMB = NO
|
|
||||||
FULL_PATH_NAMES = NO
|
|
||||||
STRIP_FROM_PATH =
|
|
||||||
STRIP_FROM_INC_PATH =
|
|
||||||
SHORT_NAMES = NO
|
|
||||||
JAVADOC_AUTOBRIEF = YES
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
|
||||||
DETAILS_AT_TOP = NO
|
|
||||||
INHERIT_DOCS = YES
|
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
|
||||||
TAB_SIZE = 8
|
|
||||||
ALIASES =
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
|
||||||
BUILTIN_STL_SUPPORT = NO
|
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
|
||||||
SUBGROUPING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Build related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
EXTRACT_ALL = NO
|
|
||||||
EXTRACT_PRIVATE = YES
|
|
||||||
EXTRACT_STATIC = YES
|
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
|
||||||
HIDE_UNDOC_MEMBERS = YES
|
|
||||||
HIDE_UNDOC_CLASSES = YES
|
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
|
||||||
HIDE_IN_BODY_DOCS = NO
|
|
||||||
INTERNAL_DOCS = NO
|
|
||||||
CASE_SENSE_NAMES = YES
|
|
||||||
HIDE_SCOPE_NAMES = NO
|
|
||||||
SHOW_INCLUDE_FILES = YES
|
|
||||||
INLINE_INFO = YES
|
|
||||||
SORT_MEMBER_DOCS = NO
|
|
||||||
SORT_BRIEF_DOCS = NO
|
|
||||||
SORT_BY_SCOPE_NAME = NO
|
|
||||||
GENERATE_TODOLIST = YES
|
|
||||||
GENERATE_TESTLIST = YES
|
|
||||||
GENERATE_BUGLIST = YES
|
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
|
||||||
ENABLED_SECTIONS =
|
|
||||||
MAX_INITIALIZER_LINES = 30
|
|
||||||
SHOW_USED_FILES = YES
|
|
||||||
SHOW_DIRECTORIES = NO
|
|
||||||
FILE_VERSION_FILTER =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to warning and progress messages
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
QUIET = YES
|
|
||||||
WARNINGS = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
|
||||||
WARN_IF_DOC_ERROR = YES
|
|
||||||
WARN_NO_PARAMDOC = NO
|
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
|
||||||
WARN_LOGFILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the input files
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
INPUT = .
|
|
||||||
FILE_PATTERNS = *.cpp \
|
|
||||||
*.h \
|
|
||||||
NEWS \
|
|
||||||
README
|
|
||||||
RECURSIVE = YES
|
|
||||||
EXCLUDE =
|
|
||||||
EXCLUDE_SYMLINKS = NO
|
|
||||||
EXCLUDE_PATTERNS =
|
|
||||||
EXAMPLE_PATH =
|
|
||||||
EXAMPLE_PATTERNS = *
|
|
||||||
EXAMPLE_RECURSIVE = NO
|
|
||||||
IMAGE_PATH = ../../docs/images
|
|
||||||
INPUT_FILTER =
|
|
||||||
FILTER_PATTERNS =
|
|
||||||
FILTER_SOURCE_FILES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to source browsing
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SOURCE_BROWSER = YES
|
|
||||||
INLINE_SOURCES = NO
|
|
||||||
STRIP_CODE_COMMENTS = YES
|
|
||||||
REFERENCED_BY_RELATION = YES
|
|
||||||
REFERENCES_RELATION = YES
|
|
||||||
REFERENCES_LINK_SOURCE = YES
|
|
||||||
USE_HTAGS = NO
|
|
||||||
VERBATIM_HEADERS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the alphabetical class index
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ALPHABETICAL_INDEX = YES
|
|
||||||
COLS_IN_ALPHA_INDEX = 3
|
|
||||||
IGNORE_PREFIX = peo
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the HTML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_HTML = YES
|
|
||||||
HTML_OUTPUT = html
|
|
||||||
HTML_FILE_EXTENSION = .html
|
|
||||||
HTML_HEADER =
|
|
||||||
HTML_FOOTER =
|
|
||||||
HTML_STYLESHEET =
|
|
||||||
HTML_ALIGN_MEMBERS = YES
|
|
||||||
GENERATE_HTMLHELP = NO
|
|
||||||
CHM_FILE =
|
|
||||||
HHC_LOCATION =
|
|
||||||
GENERATE_CHI = NO
|
|
||||||
BINARY_TOC = NO
|
|
||||||
TOC_EXPAND = NO
|
|
||||||
DISABLE_INDEX = NO
|
|
||||||
ENUM_VALUES_PER_LINE = 4
|
|
||||||
GENERATE_TREEVIEW = YES
|
|
||||||
TREEVIEW_WIDTH = 250
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the LaTeX output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_LATEX = YES
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = a4wide
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
PDF_HYPERLINKS = YES
|
|
||||||
USE_PDFLATEX = YES
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
LATEX_HIDE_INDICES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the RTF output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the man page output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_MAN = YES
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_LINKS = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the XML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_OUTPUT = xml
|
|
||||||
XML_SCHEMA =
|
|
||||||
XML_DTD =
|
|
||||||
XML_PROGRAMLISTING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options for the AutoGen Definitions output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the Perl module output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_PERLMOD = NO
|
|
||||||
PERLMOD_LATEX = NO
|
|
||||||
PERLMOD_PRETTY = YES
|
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the preprocessor
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ENABLE_PREPROCESSING = YES
|
|
||||||
MACRO_EXPANSION = NO
|
|
||||||
EXPAND_ONLY_PREDEF = NO
|
|
||||||
SEARCH_INCLUDES = YES
|
|
||||||
INCLUDE_PATH =
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
|
||||||
PREDEFINED =
|
|
||||||
EXPAND_AS_DEFINED =
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to external references
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../docs/paradiseo-peo.doxytag=../../ \
|
|
||||||
../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html
|
|
||||||
GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
PERL_PATH = /usr/bin/perl
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the dot tool
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
CLASS_DIAGRAMS = YES
|
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
|
||||||
HAVE_DOT = NO
|
|
||||||
CLASS_GRAPH = YES
|
|
||||||
COLLABORATION_GRAPH = YES
|
|
||||||
GROUP_GRAPHS = YES
|
|
||||||
UML_LOOK = NO
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = YES
|
|
||||||
INCLUDED_BY_GRAPH = YES
|
|
||||||
CALL_GRAPH = NO
|
|
||||||
CALLER_GRAPH = NO
|
|
||||||
GRAPHICAL_HIERARCHY = YES
|
|
||||||
DIRECTORY_GRAPH = YES
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
DOT_PATH =
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
|
||||||
DOT_TRANSPARENT = NO
|
|
||||||
DOT_MULTI_TARGETS = NO
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to the search engine
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SEARCHENGINE = YES
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
###### Param ######
|
|
||||||
--popSize=20 # -P : Population size
|
|
||||||
--maxGen=300 # -G : Maximum number of generations
|
|
||||||
--mutEpsilon=0.01 # -e : epsilon for mutation
|
|
||||||
--pCross=0.80 # -C : Crossover probability
|
|
||||||
--pMut=0.30 # -M : Mutation probability
|
|
||||||
--vecSize=2 # -V : Vector size
|
|
||||||
--pMin=-2.0 # -N : Init position min
|
|
||||||
--pMax=2.0 # -X : Init position max
|
|
||||||
|
|
||||||
## miscallenous parameters
|
|
||||||
|
|
||||||
--debug=false
|
|
||||||
|
|
||||||
## deployment schema
|
|
||||||
|
|
||||||
--schema=schema.xml
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<group scheduler="0">
|
|
||||||
<node name="0" num_workers="0">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="1" num_workers="0">
|
|
||||||
<runner>1</runner>
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="2" num_workers="1">
|
|
||||||
</node>
|
|
||||||
<node name="3" num_workers="1">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 0) Set the compiler and define targets to easily run the lessons
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET (CMAKE_CXX_COMPILER mpicxx)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/schema.xml)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/param
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3)
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/schema.xml
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3)
|
|
||||||
|
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/param
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson3/schema.xml
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson3
|
|
||||||
)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 1) Include the sources
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src ${MOEO_SRC_DIR}/src ${MO_SRC_DIR}/src ${ParadisEO-PEO_SOURCE_DIR}/src)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 2) Specify where CMake can find the libraries
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${ParadisEO-PEO_BINARY_DIR}/lib)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 3) Define your target(s): just an executable here
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(pso3 mainPSO.cpp)
|
|
||||||
ADD_DEPENDENCIES(pso3 peo rmc_mpi)
|
|
||||||
ADD_EXECUTABLE(ea3 mainEA.cpp)
|
|
||||||
ADD_DEPENDENCIES(ea3 peo rmc_mpi)
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 4) Optionnal: define properties
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET(LESSON3_VERSION ${GLOBAL_VERSION})
|
|
||||||
SET_TARGET_PROPERTIES(pso3 PROPERTIES VERSION "${LESSON3_VERSION}")
|
|
||||||
SET_TARGET_PROPERTIES(ea3 PROPERTIES VERSION "${LESSON3_VERSION}")
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 5) Link the librairies
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(pso3 ${XML2_LIBS} peo rmc_mpi eo eoutils peo)
|
|
||||||
TARGET_LINK_LIBRARIES(ea3 ${XML2_LIBS} peo rmc_mpi eo eoutils peo)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
@ -1,150 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainEA.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* In this respect, the user's attention is drawn to the risks associated
|
|
||||||
* with loading, using, modifying and/syncor 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
#include <es.h>
|
|
||||||
|
|
||||||
typedef eoReal<double> Indi;
|
|
||||||
|
|
||||||
double f (const Indi & _indi)
|
|
||||||
{
|
|
||||||
double sum;
|
|
||||||
sum=_indi[1]-pow(_indi[0],2);
|
|
||||||
sum=100*pow(sum,2);
|
|
||||||
sum+=pow((1-_indi[0]),2);
|
|
||||||
return (-sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int __argc, char *__argv[])
|
|
||||||
{
|
|
||||||
|
|
||||||
peo :: init( __argc, __argv );
|
|
||||||
eoParser parser(__argc, __argv);
|
|
||||||
unsigned int POP_SIZE = parser.createParam((unsigned int)(20), "popSize", "Population size",'P',"Param").value();
|
|
||||||
unsigned int MAX_GEN = parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations",'G',"Param").value();
|
|
||||||
double EPSILON = parser.createParam(0.01, "mutEpsilon", "epsilon for mutation",'e',"Param").value();
|
|
||||||
double CROSS_RATE = parser.createParam(0.25, "pCross", "Crossover probability",'C',"Param").value();
|
|
||||||
double MUT_RATE = parser.createParam(0.35, "pMut", "Mutation probability",'M',"Param").value();
|
|
||||||
unsigned int VEC_SIZE = parser.createParam((unsigned int)(2), "vecSize", "Vector size",'V',"Param").value();
|
|
||||||
double INIT_POSITION_MIN = parser.createParam(-2.0, "pMin", "Init position min",'N',"Param").value();
|
|
||||||
double INIT_POSITION_MAX = parser.createParam(2.0, "pMax", "Init position max",'X',"Param").value();
|
|
||||||
unsigned int MIG_FREQ = parser.createParam((unsigned int)(10), "migFreq", "Migration frequency",'F',"Param").value();
|
|
||||||
unsigned int MIG_SIZE = parser.createParam((unsigned int)(5), "migSize", "Migration size",'S',"Param").value();
|
|
||||||
rng.reseed (time(0));
|
|
||||||
|
|
||||||
// Define the topology of your island model
|
|
||||||
RingTopology topology;
|
|
||||||
|
|
||||||
// First algorithm
|
|
||||||
/*****************************************************************************************/
|
|
||||||
|
|
||||||
eoGenContinue < Indi > genContPara (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara (genContPara);
|
|
||||||
eoCheckPoint<Indi> checkpoint(continuatorPara);
|
|
||||||
peoEvalFunc<Indi> mainEval( f );
|
|
||||||
peoPopEval <Indi> eval(mainEval);
|
|
||||||
eoUniformGenerator < double >uGen (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random (VEC_SIZE, uGen);
|
|
||||||
eoRankingSelect<Indi> selectionStrategy;
|
|
||||||
eoSelectNumber<Indi> select(selectionStrategy,POP_SIZE);
|
|
||||||
eoSegmentCrossover<Indi> crossover;
|
|
||||||
eoUniformMutation<Indi> mutation(EPSILON);
|
|
||||||
peoTransform<Indi> transform(crossover,CROSS_RATE,mutation,MUT_RATE);
|
|
||||||
eoPop < Indi > pop;
|
|
||||||
pop.append (POP_SIZE, random);
|
|
||||||
|
|
||||||
// Define a synchronous island
|
|
||||||
|
|
||||||
// Seclection
|
|
||||||
eoRandomSelect<Indi> mig_select_one;
|
|
||||||
eoSelector <Indi, eoPop<Indi> > mig_select (mig_select_one,MIG_SIZE,pop);
|
|
||||||
// Replacement
|
|
||||||
eoPlusReplacement<Indi> replace;
|
|
||||||
eoReplace <Indi, eoPop<Indi> > mig_replace (replace,pop);
|
|
||||||
// Island
|
|
||||||
peoSyncIslandMig<eoPop<Indi>, eoPop<Indi> > mig(MIG_FREQ,mig_select,mig_replace,topology);
|
|
||||||
checkpoint.add(mig);
|
|
||||||
|
|
||||||
eoEasyEA< Indi > eaAlg( checkpoint, eval, select, transform, replace );
|
|
||||||
peoWrapper parallelEA( eaAlg, pop);
|
|
||||||
eval.setOwner(parallelEA);
|
|
||||||
transform.setOwner(parallelEA);
|
|
||||||
// setOwner
|
|
||||||
mig.setOwner(parallelEA);
|
|
||||||
|
|
||||||
/*****************************************************************************************/
|
|
||||||
|
|
||||||
// Second algorithm (on the same model but with others names)
|
|
||||||
/*****************************************************************************************/
|
|
||||||
|
|
||||||
eoGenContinue < Indi > genContPara2 (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara2 (genContPara2);
|
|
||||||
eoCheckPoint<Indi> checkpoint2(continuatorPara2);
|
|
||||||
peoEvalFunc<Indi> mainEval2( f );
|
|
||||||
peoPopEval <Indi> eval2(mainEval2);
|
|
||||||
eoUniformGenerator < double >uGen2 (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random2 (VEC_SIZE, uGen2);
|
|
||||||
eoRankingSelect<Indi> selectionStrategy2;
|
|
||||||
eoSelectNumber<Indi> select2(selectionStrategy2,POP_SIZE);
|
|
||||||
eoSegmentCrossover<Indi> crossover2;
|
|
||||||
eoUniformMutation<Indi> mutation2(EPSILON);
|
|
||||||
peoTransform<Indi> transform2(crossover2,CROSS_RATE,mutation2,MUT_RATE);
|
|
||||||
eoPop < Indi > pop2;
|
|
||||||
pop2.append (POP_SIZE, random2);
|
|
||||||
eoPlusReplacement<Indi> replace2;
|
|
||||||
eoRandomSelect<Indi> mig_select_one2;
|
|
||||||
eoSelector <Indi, eoPop<Indi> > mig_select2 (mig_select_one2,MIG_SIZE,pop2);
|
|
||||||
eoReplace <Indi, eoPop<Indi> > mig_replace2 (replace2,pop2);
|
|
||||||
peoSyncIslandMig<eoPop<Indi>, eoPop<Indi> > mig2(MIG_FREQ,mig_select2,mig_replace2,topology);
|
|
||||||
checkpoint2.add(mig2);
|
|
||||||
eoEasyEA< Indi > eaAlg2( checkpoint2, eval2, select2, transform2, replace2 );
|
|
||||||
peoWrapper parallelEA2( eaAlg2, pop2);
|
|
||||||
eval2.setOwner(parallelEA2);
|
|
||||||
transform2.setOwner(parallelEA2);
|
|
||||||
mig2.setOwner(parallelEA2);
|
|
||||||
|
|
||||||
/*****************************************************************************************/
|
|
||||||
|
|
||||||
peo :: run();
|
|
||||||
peo :: finalize();
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
pop2.sort();
|
|
||||||
std::cout << "Final population 1 :\n" << pop << std::endl;
|
|
||||||
std::cout << "Final population 2 :\n" << pop2 << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,166 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainPSO.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
|
|
||||||
typedef eoRealParticle < double >Indi;
|
|
||||||
|
|
||||||
double f (const Indi & _indi)
|
|
||||||
{
|
|
||||||
double sum;
|
|
||||||
sum=_indi[1]-pow(_indi[0],2);
|
|
||||||
sum=100*pow(sum,2);
|
|
||||||
sum+=pow((1-_indi[0]),2);
|
|
||||||
return (-sum);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main (int __argc, char *__argv[])
|
|
||||||
{
|
|
||||||
peo :: init( __argc, __argv );
|
|
||||||
eoParser parser(__argc, __argv);
|
|
||||||
unsigned int POP_SIZE = parser.createParam((unsigned int)(20), "popSize", "Population size",'P',"Param").value();
|
|
||||||
unsigned int MAX_GEN = parser.createParam((unsigned int)(100), "maxGen", "Maximum number of generations",'G',"Param").value();
|
|
||||||
unsigned int VEC_SIZE = parser.createParam((unsigned int)(2), "vecSize", "Vector size",'V',"Param").value();
|
|
||||||
double INIT_POSITION_MIN = parser.createParam(-2.0, "pMin", "Init position min",'N',"Param").value();
|
|
||||||
double INIT_POSITION_MAX = parser.createParam(2.0, "pMax", "Init position max",'X',"Param").value();
|
|
||||||
double INIT_VELOCITY_MIN = parser.createParam(-1.0, "vMin", "Init velocity min",'n',"Param").value();
|
|
||||||
double INIT_VELOCITY_MAX = parser.createParam(1.0, "vMax", "Init velocity max",'x',"Param").value();
|
|
||||||
double omega = parser.createParam(1.0, "weight", "Weight",'w',"Param").value();
|
|
||||||
double C1 = parser.createParam(0.5, "c1", "C1",'1',"Param").value();
|
|
||||||
double C2 = parser.createParam(2.0, "c2t", "C2",'2',"Param").value();
|
|
||||||
unsigned int NEIGHBORHOOD_SIZE = parser.createParam((unsigned int)(6), "neighSize", "Neighborhood size",'H',"Param").value();
|
|
||||||
unsigned int MIG_FREQ = parser.createParam((unsigned int)(10), "migFreq", "Migration frequency",'F',"Param").value();
|
|
||||||
rng.reseed (time(0));
|
|
||||||
|
|
||||||
// Island model
|
|
||||||
|
|
||||||
RingTopology topologyMig;
|
|
||||||
|
|
||||||
// First
|
|
||||||
eoGenContinue < Indi > genContPara (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara (genContPara);
|
|
||||||
eoCheckPoint<Indi> checkpoint(continuatorPara);
|
|
||||||
peoEvalFunc<Indi, double, const Indi& > plainEval(f);
|
|
||||||
peoPopEval< Indi > eval(plainEval);
|
|
||||||
eoUniformGenerator < double >uGen (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random (VEC_SIZE, uGen);
|
|
||||||
eoUniformGenerator < double >sGen (INIT_VELOCITY_MIN, INIT_VELOCITY_MAX);
|
|
||||||
eoVelocityInitFixedLength < Indi > veloRandom (VEC_SIZE, sGen);
|
|
||||||
eoFirstIsBestInit < Indi > localInit;
|
|
||||||
eoRealVectorBounds bndsFlight(VEC_SIZE,INIT_POSITION_MIN,INIT_POSITION_MAX);
|
|
||||||
eoStandardFlight < Indi > flight(bndsFlight);
|
|
||||||
eoPop < Indi > pop;
|
|
||||||
pop.append (POP_SIZE, random);
|
|
||||||
eoLinearTopology<Indi> topology(NEIGHBORHOOD_SIZE);
|
|
||||||
eoRealVectorBounds bnds(VEC_SIZE,INIT_VELOCITY_MIN,INIT_VELOCITY_MAX);
|
|
||||||
eoStandardVelocity < Indi > velocity (topology,omega,C1,C2,bnds);
|
|
||||||
eoInitializer <Indi> init(eval,veloRandom,localInit,topology,pop);
|
|
||||||
|
|
||||||
// Island model
|
|
||||||
|
|
||||||
eoPeriodicContinue< Indi > mig_cont( MIG_FREQ );
|
|
||||||
peoPSOSelect<Indi> mig_selec(topology);
|
|
||||||
peoWorstPositionReplacement<Indi> mig_replac;
|
|
||||||
|
|
||||||
// Specific implementation (peoData.h)
|
|
||||||
|
|
||||||
eoContinuator<Indi> cont(mig_cont, pop);
|
|
||||||
eoSelector <Indi, eoPop<Indi> > mig_select (mig_selec,1,pop);
|
|
||||||
eoReplace <Indi, eoPop<Indi> > mig_replace (mig_replac,pop);
|
|
||||||
|
|
||||||
|
|
||||||
// Second
|
|
||||||
|
|
||||||
eoGenContinue < Indi > genContPara2 (MAX_GEN);
|
|
||||||
eoCombinedContinue <Indi> continuatorPara2 (genContPara2);
|
|
||||||
eoCheckPoint<Indi> checkpoint2(continuatorPara2);
|
|
||||||
peoEvalFunc<Indi, double, const Indi& > plainEval2(f);
|
|
||||||
peoPopEval< Indi > eval2(plainEval2);
|
|
||||||
eoUniformGenerator < double >uGen2 (INIT_POSITION_MIN, INIT_POSITION_MAX);
|
|
||||||
eoInitFixedLength < Indi > random2 (VEC_SIZE, uGen2);
|
|
||||||
eoUniformGenerator < double >sGen2 (INIT_VELOCITY_MIN, INIT_VELOCITY_MAX);
|
|
||||||
eoVelocityInitFixedLength < Indi > veloRandom2 (VEC_SIZE, sGen2);
|
|
||||||
eoFirstIsBestInit < Indi > localInit2;
|
|
||||||
eoRealVectorBounds bndsFlight2(VEC_SIZE,INIT_POSITION_MIN,INIT_POSITION_MAX);
|
|
||||||
eoStandardFlight < Indi > flight2(bndsFlight2);
|
|
||||||
eoPop < Indi > pop2;
|
|
||||||
pop2.append (POP_SIZE, random2);
|
|
||||||
eoLinearTopology<Indi> topology2(NEIGHBORHOOD_SIZE);
|
|
||||||
eoRealVectorBounds bnds2(VEC_SIZE,INIT_VELOCITY_MIN,INIT_VELOCITY_MAX);
|
|
||||||
eoStandardVelocity < Indi > velocity2 (topology2,omega,C1,C2,bnds2);
|
|
||||||
eoInitializer <Indi> init2(eval2,veloRandom2,localInit2,topology2,pop2);
|
|
||||||
|
|
||||||
// Island model
|
|
||||||
|
|
||||||
eoPeriodicContinue< Indi > mig_cont2( MIG_FREQ );
|
|
||||||
peoPSOSelect<Indi> mig_selec2(topology2);
|
|
||||||
peoWorstPositionReplacement<Indi> mig_replac2;
|
|
||||||
|
|
||||||
// Specific implementation (peoData.h)
|
|
||||||
|
|
||||||
eoContinuator<Indi> cont2(mig_cont2,pop2);
|
|
||||||
eoSelector <Indi, eoPop<Indi> > mig_select2 (mig_selec2,1,pop2);
|
|
||||||
eoReplace <Indi, eoPop<Indi> > mig_replace2 (mig_replac2,pop2);
|
|
||||||
|
|
||||||
|
|
||||||
// Asynchronous island
|
|
||||||
|
|
||||||
peoAsyncIslandMig< eoPop<Indi>, eoPop<Indi> > mig(cont,mig_select, mig_replace, topologyMig);
|
|
||||||
checkpoint.add( mig );
|
|
||||||
peoAsyncIslandMig< eoPop<Indi>, eoPop<Indi> > mig2(cont2,mig_select2, mig_replace2, topologyMig);
|
|
||||||
checkpoint2.add( mig2 );
|
|
||||||
|
|
||||||
|
|
||||||
// Parallel algorithm
|
|
||||||
|
|
||||||
eoSyncEasyPSO <Indi> psa(init,checkpoint,eval, velocity, flight);
|
|
||||||
peoWrapper parallelPSO( psa, pop);
|
|
||||||
eval.setOwner(parallelPSO);
|
|
||||||
mig.setOwner(parallelPSO);
|
|
||||||
eoSyncEasyPSO <Indi> psa2(init2,checkpoint2,eval2, velocity2, flight2);
|
|
||||||
peoWrapper parallelPSO2( psa2, pop2);
|
|
||||||
eval2.setOwner(parallelPSO2);
|
|
||||||
mig2.setOwner(parallelPSO2);
|
|
||||||
peo :: run();
|
|
||||||
peo :: finalize();
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
pop2.sort();
|
|
||||||
std::cout << "Final population :\n" << pop << std::endl;
|
|
||||||
std::cout << "Final population :\n" << pop2 << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -1,242 +0,0 @@
|
||||||
# Doxyfile 1.4.7
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Project related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
PROJECT_NAME = "ParadisEO-PEO Lesson3"
|
|
||||||
PROJECT_NUMBER = 0.1
|
|
||||||
OUTPUT_DIRECTORY = ../../../doc/html/lesson3
|
|
||||||
CREATE_SUBDIRS = NO
|
|
||||||
OUTPUT_LANGUAGE = English
|
|
||||||
USE_WINDOWS_ENCODING = NO
|
|
||||||
BRIEF_MEMBER_DESC = YES
|
|
||||||
REPEAT_BRIEF = YES
|
|
||||||
ABBREVIATE_BRIEF = "The $name class" \
|
|
||||||
"The $name widget" \
|
|
||||||
"The $name file" \
|
|
||||||
is \
|
|
||||||
provides \
|
|
||||||
specifies \
|
|
||||||
contains \
|
|
||||||
represents \
|
|
||||||
a \
|
|
||||||
an \
|
|
||||||
the
|
|
||||||
ALWAYS_DETAILED_SEC = NO
|
|
||||||
INLINE_INHERITED_MEMB = NO
|
|
||||||
FULL_PATH_NAMES = NO
|
|
||||||
STRIP_FROM_PATH =
|
|
||||||
STRIP_FROM_INC_PATH =
|
|
||||||
SHORT_NAMES = NO
|
|
||||||
JAVADOC_AUTOBRIEF = YES
|
|
||||||
MULTILINE_CPP_IS_BRIEF = NO
|
|
||||||
DETAILS_AT_TOP = NO
|
|
||||||
INHERIT_DOCS = YES
|
|
||||||
SEPARATE_MEMBER_PAGES = NO
|
|
||||||
TAB_SIZE = 8
|
|
||||||
ALIASES =
|
|
||||||
OPTIMIZE_OUTPUT_FOR_C = NO
|
|
||||||
OPTIMIZE_OUTPUT_JAVA = NO
|
|
||||||
BUILTIN_STL_SUPPORT = NO
|
|
||||||
DISTRIBUTE_GROUP_DOC = NO
|
|
||||||
SUBGROUPING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Build related configuration options
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
EXTRACT_ALL = NO
|
|
||||||
EXTRACT_PRIVATE = YES
|
|
||||||
EXTRACT_STATIC = YES
|
|
||||||
EXTRACT_LOCAL_CLASSES = YES
|
|
||||||
EXTRACT_LOCAL_METHODS = NO
|
|
||||||
HIDE_UNDOC_MEMBERS = YES
|
|
||||||
HIDE_UNDOC_CLASSES = YES
|
|
||||||
HIDE_FRIEND_COMPOUNDS = NO
|
|
||||||
HIDE_IN_BODY_DOCS = NO
|
|
||||||
INTERNAL_DOCS = NO
|
|
||||||
CASE_SENSE_NAMES = YES
|
|
||||||
HIDE_SCOPE_NAMES = NO
|
|
||||||
SHOW_INCLUDE_FILES = YES
|
|
||||||
INLINE_INFO = YES
|
|
||||||
SORT_MEMBER_DOCS = NO
|
|
||||||
SORT_BRIEF_DOCS = NO
|
|
||||||
SORT_BY_SCOPE_NAME = NO
|
|
||||||
GENERATE_TODOLIST = YES
|
|
||||||
GENERATE_TESTLIST = YES
|
|
||||||
GENERATE_BUGLIST = YES
|
|
||||||
GENERATE_DEPRECATEDLIST= YES
|
|
||||||
ENABLED_SECTIONS =
|
|
||||||
MAX_INITIALIZER_LINES = 30
|
|
||||||
SHOW_USED_FILES = YES
|
|
||||||
SHOW_DIRECTORIES = NO
|
|
||||||
FILE_VERSION_FILTER =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to warning and progress messages
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
QUIET = YES
|
|
||||||
WARNINGS = YES
|
|
||||||
WARN_IF_UNDOCUMENTED = YES
|
|
||||||
WARN_IF_DOC_ERROR = YES
|
|
||||||
WARN_NO_PARAMDOC = NO
|
|
||||||
WARN_FORMAT = "$file:$line: $text"
|
|
||||||
WARN_LOGFILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the input files
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
INPUT = .
|
|
||||||
FILE_PATTERNS = *.cpp \
|
|
||||||
*.h \
|
|
||||||
NEWS \
|
|
||||||
README
|
|
||||||
RECURSIVE = YES
|
|
||||||
EXCLUDE =
|
|
||||||
EXCLUDE_SYMLINKS = NO
|
|
||||||
EXCLUDE_PATTERNS =
|
|
||||||
EXAMPLE_PATH =
|
|
||||||
EXAMPLE_PATTERNS = *
|
|
||||||
EXAMPLE_RECURSIVE = NO
|
|
||||||
IMAGE_PATH = ../../docs/images
|
|
||||||
INPUT_FILTER =
|
|
||||||
FILTER_PATTERNS =
|
|
||||||
FILTER_SOURCE_FILES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to source browsing
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SOURCE_BROWSER = YES
|
|
||||||
INLINE_SOURCES = NO
|
|
||||||
STRIP_CODE_COMMENTS = YES
|
|
||||||
REFERENCED_BY_RELATION = YES
|
|
||||||
REFERENCES_RELATION = YES
|
|
||||||
REFERENCES_LINK_SOURCE = YES
|
|
||||||
USE_HTAGS = NO
|
|
||||||
VERBATIM_HEADERS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the alphabetical class index
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ALPHABETICAL_INDEX = YES
|
|
||||||
COLS_IN_ALPHA_INDEX = 3
|
|
||||||
IGNORE_PREFIX = peo
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the HTML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_HTML = YES
|
|
||||||
HTML_OUTPUT = html
|
|
||||||
HTML_FILE_EXTENSION = .html
|
|
||||||
HTML_HEADER =
|
|
||||||
HTML_FOOTER =
|
|
||||||
HTML_STYLESHEET =
|
|
||||||
HTML_ALIGN_MEMBERS = YES
|
|
||||||
GENERATE_HTMLHELP = NO
|
|
||||||
CHM_FILE =
|
|
||||||
HHC_LOCATION =
|
|
||||||
GENERATE_CHI = NO
|
|
||||||
BINARY_TOC = NO
|
|
||||||
TOC_EXPAND = NO
|
|
||||||
DISABLE_INDEX = NO
|
|
||||||
ENUM_VALUES_PER_LINE = 4
|
|
||||||
GENERATE_TREEVIEW = YES
|
|
||||||
TREEVIEW_WIDTH = 250
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the LaTeX output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_LATEX = YES
|
|
||||||
LATEX_OUTPUT = latex
|
|
||||||
LATEX_CMD_NAME = latex
|
|
||||||
MAKEINDEX_CMD_NAME = makeindex
|
|
||||||
COMPACT_LATEX = NO
|
|
||||||
PAPER_TYPE = a4wide
|
|
||||||
EXTRA_PACKAGES =
|
|
||||||
LATEX_HEADER =
|
|
||||||
PDF_HYPERLINKS = YES
|
|
||||||
USE_PDFLATEX = YES
|
|
||||||
LATEX_BATCHMODE = NO
|
|
||||||
LATEX_HIDE_INDICES = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the RTF output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_RTF = NO
|
|
||||||
RTF_OUTPUT = rtf
|
|
||||||
COMPACT_RTF = NO
|
|
||||||
RTF_HYPERLINKS = NO
|
|
||||||
RTF_STYLESHEET_FILE =
|
|
||||||
RTF_EXTENSIONS_FILE =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the man page output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_MAN = YES
|
|
||||||
MAN_OUTPUT = man
|
|
||||||
MAN_EXTENSION = .3
|
|
||||||
MAN_LINKS = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the XML output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_XML = NO
|
|
||||||
XML_OUTPUT = xml
|
|
||||||
XML_SCHEMA =
|
|
||||||
XML_DTD =
|
|
||||||
XML_PROGRAMLISTING = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options for the AutoGen Definitions output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_AUTOGEN_DEF = NO
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# configuration options related to the Perl module output
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
GENERATE_PERLMOD = NO
|
|
||||||
PERLMOD_LATEX = NO
|
|
||||||
PERLMOD_PRETTY = YES
|
|
||||||
PERLMOD_MAKEVAR_PREFIX =
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the preprocessor
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
ENABLE_PREPROCESSING = YES
|
|
||||||
MACRO_EXPANSION = NO
|
|
||||||
EXPAND_ONLY_PREDEF = NO
|
|
||||||
SEARCH_INCLUDES = YES
|
|
||||||
INCLUDE_PATH =
|
|
||||||
INCLUDE_FILE_PATTERNS =
|
|
||||||
PREDEFINED =
|
|
||||||
EXPAND_AS_DEFINED =
|
|
||||||
SKIP_FUNCTION_MACROS = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to external references
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
TAGFILES = ../../../paradiseo-mo/docs/eo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../../paradiseo-mo/docs/mo.doxytag=../../../../../paradiseo-mo/docs/html \
|
|
||||||
../../docs/paradiseo-peo.doxytag=../../ \
|
|
||||||
../shared/paradiseo-peo-lsn-shared.doxytag=../../lsnshared/html
|
|
||||||
GENERATE_TAGFILE = ../../docs/paradiseo-peo-lsn.doxytag
|
|
||||||
ALLEXTERNALS = NO
|
|
||||||
EXTERNAL_GROUPS = YES
|
|
||||||
PERL_PATH = /usr/bin/perl
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration options related to the dot tool
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
CLASS_DIAGRAMS = YES
|
|
||||||
HIDE_UNDOC_RELATIONS = YES
|
|
||||||
HAVE_DOT = NO
|
|
||||||
CLASS_GRAPH = YES
|
|
||||||
COLLABORATION_GRAPH = YES
|
|
||||||
GROUP_GRAPHS = YES
|
|
||||||
UML_LOOK = NO
|
|
||||||
TEMPLATE_RELATIONS = NO
|
|
||||||
INCLUDE_GRAPH = YES
|
|
||||||
INCLUDED_BY_GRAPH = YES
|
|
||||||
CALL_GRAPH = NO
|
|
||||||
CALLER_GRAPH = NO
|
|
||||||
GRAPHICAL_HIERARCHY = YES
|
|
||||||
DIRECTORY_GRAPH = YES
|
|
||||||
DOT_IMAGE_FORMAT = png
|
|
||||||
DOT_PATH =
|
|
||||||
DOTFILE_DIRS =
|
|
||||||
MAX_DOT_GRAPH_WIDTH = 1024
|
|
||||||
MAX_DOT_GRAPH_HEIGHT = 1024
|
|
||||||
MAX_DOT_GRAPH_DEPTH = 0
|
|
||||||
DOT_TRANSPARENT = NO
|
|
||||||
DOT_MULTI_TARGETS = NO
|
|
||||||
GENERATE_LEGEND = YES
|
|
||||||
DOT_CLEANUP = YES
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
# Configuration::additions related to the search engine
|
|
||||||
#---------------------------------------------------------------------------
|
|
||||||
SEARCHENGINE = YES
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
###### Param ######
|
|
||||||
--popSize=20 # -P : Population size
|
|
||||||
--maxGen=200 # -G : Maximum number of generations
|
|
||||||
--mutEpsilon=0.01 # -e : epsilon for mutation
|
|
||||||
--pCross=0.80 # -C : Crossover probability
|
|
||||||
--pMut=0.30 # -M : Mutation probability
|
|
||||||
--vecSize=2 # -V : Vector size
|
|
||||||
--pMin=-2.0 # -N : Init position min
|
|
||||||
--pMax=2.0 # -X : Init position max
|
|
||||||
--vMin=-1.0 # -n : Init velocity min
|
|
||||||
--vMax=1.0 # -x : Init velocity max
|
|
||||||
--neighSize=6 # -H : Neighborhood size
|
|
||||||
--weight=1.0 # -w : Weight
|
|
||||||
--c1=0.5 # -1 : C1
|
|
||||||
--c2=2.0 # -2 : C2
|
|
||||||
--migFreq=10 # -F : Migration frequency
|
|
||||||
--migSize=5 # -S : Migration size
|
|
||||||
|
|
||||||
## miscallenous parameters
|
|
||||||
|
|
||||||
--debug=false
|
|
||||||
|
|
||||||
## deployment schema
|
|
||||||
|
|
||||||
--schema=schema.xml
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
|
|
||||||
<schema>
|
|
||||||
<group scheduler="0">
|
|
||||||
<node name="0" num_workers="0">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="1" num_workers="0">
|
|
||||||
<runner>1</runner>
|
|
||||||
<runner>2</runner>
|
|
||||||
</node>
|
|
||||||
|
|
||||||
<node name="2" num_workers="1">
|
|
||||||
</node>
|
|
||||||
<node name="3" num_workers="1">
|
|
||||||
</node>
|
|
||||||
|
|
||||||
</group>
|
|
||||||
</schema>
|
|
||||||
|
|
||||||
|
|
@ -1,81 +0,0 @@
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 0) Set the compiler and define targets to easily run the lessons
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET (CMAKE_CXX_COMPILER mpicxx)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_TARGET(install DEPENDS ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/param ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/schema.xml)
|
|
||||||
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/param
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson4)
|
|
||||||
#ADD_CUSTOM_COMMAND(
|
|
||||||
# TARGET install
|
|
||||||
# POST_BUILD
|
|
||||||
# COMMAND ${CMAKE_COMMAND}
|
|
||||||
# ARGS -E copy_if_different
|
|
||||||
# ${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/schema.xml
|
|
||||||
# ${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson4)
|
|
||||||
|
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/param
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson4
|
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
|
||||||
${ParadisEO-PEO_SOURCE_DIR}/tutorial/Lesson4/schema.xml
|
|
||||||
${ParadisEO-PEO_BINARY_DIR}/tutorial/Lesson4
|
|
||||||
)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 1) Include the sources
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(${EO_SRC_DIR}/src ${MOEO_SRC_DIR}/src ${MO_SRC_DIR}/src ${ParadisEO-PEO_SOURCE_DIR}/src ${TSP_SRC_DIR})
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 2) Specify where CMake can find the libraries
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
LINK_DIRECTORIES(${EO_BIN_DIR}/lib ${MOEO_BIN_DIR}/lib ${ParadisEO-PEO_BINARY_DIR}/lib ${TSP_BINARY_DIR}/lib)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 3) Define your target(s): just an executable here
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
ADD_EXECUTABLE(eals mainEALS.cpp)
|
|
||||||
ADD_DEPENDENCIES(eals tsp peo rmc_mpi)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 4) Optionnal: define properties
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
SET(LESSON4_VERSION ${GLOBAL_VERSION})
|
|
||||||
SET_TARGET_PROPERTIES(eals PROPERTIES VERSION "${LESSON4_VERSION}")
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
### 5) Link the librairies
|
|
||||||
######################################################################################
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(eals ${XML2_LIBS} tsp peo rmc_mpi eo eoutils peo)
|
|
||||||
|
|
||||||
######################################################################################
|
|
||||||
|
|
@ -1,114 +0,0 @@
|
||||||
/*
|
|
||||||
* <mainEALS.cpp>
|
|
||||||
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
|
|
||||||
* (C) OPAC Team, INRIA, 2008
|
|
||||||
*
|
|
||||||
* Clive Canape
|
|
||||||
*
|
|
||||||
* This software is governed by the CeCILL license under French law and
|
|
||||||
* abiding by the rules of distribution of free software. You can use,
|
|
||||||
* 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".
|
|
||||||
*
|
|
||||||
* As a counterpart to the access to the source code and rights to copy,
|
|
||||||
* modify and redistribute granted by the license, users are provided only
|
|
||||||
* with a limited warranty and the software's author, the holder of the
|
|
||||||
* economic rights, and the successive licensors have only limited liability.
|
|
||||||
*
|
|
||||||
* 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
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "param.h"
|
|
||||||
#include "route_init.h"
|
|
||||||
#include "route_eval.h"
|
|
||||||
#include "order_xover.h"
|
|
||||||
#include "edge_xover.h"
|
|
||||||
#include "partial_mapped_xover.h"
|
|
||||||
#include "city_swap.h"
|
|
||||||
#include "part_route_eval.h"
|
|
||||||
#include "merge_route_eval.h"
|
|
||||||
#include "two_opt_init.h"
|
|
||||||
#include "two_opt_next.h"
|
|
||||||
#include "two_opt_incr_eval.h"
|
|
||||||
|
|
||||||
#include <peo>
|
|
||||||
|
|
||||||
#define POP_SIZE 10
|
|
||||||
#define NUM_GEN 100
|
|
||||||
#define CROSS_RATE 1.0
|
|
||||||
#define MUT_RATE 0.01
|
|
||||||
|
|
||||||
|
|
||||||
int main (int __argc, char * * __argv)
|
|
||||||
{
|
|
||||||
|
|
||||||
peo :: init (__argc, __argv);
|
|
||||||
loadParameters (__argc, __argv);
|
|
||||||
RouteInit route_init;
|
|
||||||
RouteEval full_eval;
|
|
||||||
OrderXover order_cross;
|
|
||||||
PartialMappedXover pm_cross;
|
|
||||||
EdgeXover edge_cross;
|
|
||||||
CitySwap city_swap_mut;
|
|
||||||
|
|
||||||
// Initialization of the local search
|
|
||||||
TwoOptInit pmx_two_opt_init;
|
|
||||||
TwoOptNext pmx_two_opt_next;
|
|
||||||
TwoOptIncrEval pmx_two_opt_incr_eval;
|
|
||||||
moBestImprSelect <TwoOpt> pmx_two_opt_move_select;
|
|
||||||
moHC <TwoOpt> hc (pmx_two_opt_init, pmx_two_opt_next, pmx_two_opt_incr_eval, pmx_two_opt_move_select, full_eval);
|
|
||||||
|
|
||||||
// EA
|
|
||||||
eoPop <Route> pop (POP_SIZE, route_init);
|
|
||||||
eoGenContinue <Route> cont (NUM_GEN);
|
|
||||||
eoCheckPoint <Route> checkpoint (cont);
|
|
||||||
eoEvalFuncCounter< Route > eval(full_eval);
|
|
||||||
eoStochTournamentSelect <Route> select_one;
|
|
||||||
eoSelectNumber <Route> select (select_one, POP_SIZE);
|
|
||||||
eoSGATransform <Route> transform (order_cross, CROSS_RATE, city_swap_mut, MUT_RATE);
|
|
||||||
eoEPReplacement <Route> replace (2);
|
|
||||||
eoEasyEA< Route > eaAlg( checkpoint, eval, select, transform, replace );
|
|
||||||
peoWrapper parallelEA( eaAlg, pop);
|
|
||||||
peo :: run ();
|
|
||||||
peo :: finalize ();
|
|
||||||
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
pop.sort();
|
|
||||||
std :: cout << "\nResult before the local search\n";
|
|
||||||
for (unsigned i=0;i<pop.size();i++)
|
|
||||||
std::cout<<"\n"<<pop[i].fitness();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Local search
|
|
||||||
peo :: init (__argc, __argv);
|
|
||||||
peoMultiStart <Route> initParallelHC (hc);
|
|
||||||
peoWrapper parallelHC (initParallelHC, pop);
|
|
||||||
initParallelHC.setOwner(parallelHC);
|
|
||||||
peo :: run( );
|
|
||||||
peo :: finalize( );
|
|
||||||
|
|
||||||
if (getNodeRank()==1)
|
|
||||||
{
|
|
||||||
std :: cout << "\nResult after the local search\n";
|
|
||||||
pop.sort();
|
|
||||||
for (unsigned i=0;i<pop.size();i++)
|
|
||||||
std::cout<<"\n"<<pop[i].fitness();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue