git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@130 331e1502-861f-0410-8da2-ba01fb791d7f

This commit is contained in:
atantar 2006-12-30 14:10:44 +00:00
commit a6fe42664b
743 changed files with 67629 additions and 0 deletions

View file

@ -0,0 +1,62 @@
.TH "Communicable" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Communicable \-
.SH SYNOPSIS
.br
.PP
Inherited by \fBCooperative\fP, \fBRunner\fP, \fBService\fP, and \fBWorker\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBCommunicable\fP ()"
.br
.ti -1c
.RI "virtual \fB~Communicable\fP ()"
.br
.ti -1c
.RI "COMM_ID \fBgetKey\fP ()"
.br
.ti -1c
.RI "void \fBlock\fP ()"
.br
.ti -1c
.RI "void \fBunlock\fP ()"
.br
.ti -1c
.RI "void \fBstop\fP ()"
.br
.ti -1c
.RI "void \fBresume\fP ()"
.br
.in -1c
.SS "Protected Attributes"
.in +1c
.ti -1c
.RI "COMM_ID \fBkey\fP"
.br
.ti -1c
.RI "sem_t \fBsem_lock\fP"
.br
.ti -1c
.RI "sem_t \fBsem_stop\fP"
.br
.in -1c
.SS "Static Protected Attributes"
.in +1c
.ti -1c
.RI "static unsigned \fBnum_comm\fP = 0"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 31 of file communicable.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,27 @@
.TH "Communicator" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Communicator \-
.SH SYNOPSIS
.br
.PP
Inherits \fBReactiveThread\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBCommunicator\fP (int *__argc, char ***__argv)"
.br
.ti -1c
.RI "void \fBstart\fP ()"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 30 of file comm.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,42 @@
.TH "Cooperative" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Cooperative \-
.SH SYNOPSIS
.br
.PP
Inherits \fBCommunicable\fP.
.PP
Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBRunner\fP * \fBgetOwner\fP ()"
.br
.ti -1c
.RI "void \fBsetOwner\fP (\fBRunner\fP &__runner)"
.br
.ti -1c
.RI "void \fBsend\fP (\fBCooperative\fP *__coop)"
.br
.ti -1c
.RI "virtual void \fBnotifySending\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "\fBRunner\fP * \fBowner\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 32 of file cooperative.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,34 @@
.TH "Node" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Node \-
.SH SYNOPSIS
.br
.PP
.SS "Public Attributes"
.in +1c
.ti -1c
.RI "RANK_ID \fBrk\fP"
.br
.ti -1c
.RI "std::string \fBname\fP"
.br
.ti -1c
.RI "unsigned \fBnum_workers\fP"
.br
.ti -1c
.RI "int \fBrk_sched\fP"
.br
.ti -1c
.RI "std::vector< RUNNER_ID > \fBid_run\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 35 of file schema.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,39 @@
.TH "ReactiveThread" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
ReactiveThread \-
.SH SYNOPSIS
.br
.PP
Inherits \fBThread\fP.
.PP
Inherited by \fBCommunicator\fP, and \fBWorker\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBReactiveThread\fP ()"
.br
.ti -1c
.RI "void \fBsleep\fP ()"
.br
.ti -1c
.RI "void \fBwakeUp\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "sem_t \fBsem\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 31 of file reac_thread.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,24 @@
.TH "RingTopology" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
RingTopology \-
.SH SYNOPSIS
.br
.PP
Inherits \fBTopology\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "void \fBsetNeighbors\fP (\fBCooperative\fP *__mig, std::vector< \fBCooperative\fP * > &__from, std::vector< \fBCooperative\fP * > &__to)"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 29 of file ring_topo.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,57 @@
.TH "Runner" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Runner \-
.SH SYNOPSIS
.br
.PP
Inherits \fBCommunicable\fP, and \fBThread\fP.
.PP
Inherited by \fBpeoEA< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBRunner\fP ()"
.br
.ti -1c
.RI "void \fBstart\fP ()"
.br
.ti -1c
.RI "void \fBwaitStarting\fP ()"
.br
.ti -1c
.RI "bool \fBisLocal\fP ()"
.br
.ti -1c
.RI "void \fBterminate\fP ()"
.br
.ti -1c
.RI "RUNNER_ID \fBgetID\fP ()"
.br
.ti -1c
.RI "void \fBpackTermination\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingTermination\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "sem_t \fBsem_start\fP"
.br
.ti -1c
.RI "unsigned \fBid\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 34 of file runner.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,28 @@
.TH "SEND_REQUEST" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
SEND_REQUEST \-
.SH SYNOPSIS
.br
.PP
.SS "Public Attributes"
.in +1c
.ti -1c
.RI "\fBCommunicable\fP * \fBcomm\fP"
.br
.ti -1c
.RI "int \fBto\fP"
.br
.ti -1c
.RI "int \fBtag\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 39 of file send.cpp.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,69 @@
.TH "Service" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Service \-
.SH SYNOPSIS
.br
.PP
Inherits \fBCommunicable\fP.
.PP
Inherited by \fBpeoPopEval< EOT >\fP, \fBpeoSyncMultiStart< EOT >\fP, and \fBpeoTransform< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "void \fBsetOwner\fP (\fBThread\fP &__owner)"
.br
.ti -1c
.RI "\fBThread\fP * \fBgetOwner\fP ()"
.br
.ti -1c
.RI "void \fBrequestResourceRequest\fP (unsigned __how_many=1)"
.br
.ti -1c
.RI "void \fBpackResourceRequest\fP ()"
.br
.ti -1c
.RI "virtual void \fBpackData\fP ()"
.br
.ti -1c
.RI "virtual void \fBunpackData\fP ()"
.br
.ti -1c
.RI "virtual void \fBexecute\fP ()"
.br
.ti -1c
.RI "virtual void \fBpackResult\fP ()"
.br
.ti -1c
.RI "virtual void \fBunpackResult\fP ()"
.br
.ti -1c
.RI "virtual void \fBnotifySendingData\fP ()"
.br
.ti -1c
.RI "virtual void \fBnotifySendingResourceRequest\fP ()"
.br
.ti -1c
.RI "virtual void \fBnotifySendingAllResourceRequests\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "\fBThread\fP * \fBowner\fP"
.br
.ti -1c
.RI "unsigned \fBnum_sent_rr\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 32 of file service.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,40 @@
.TH "Thread" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Thread \-
.SH SYNOPSIS
.br
.PP
Inherited by \fBReactiveThread\fP, and \fBRunner\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBThread\fP ()"
.br
.ti -1c
.RI "virtual \fB~Thread\fP ()"
.br
.ti -1c
.RI "void \fBsetActive\fP ()"
.br
.ti -1c
.RI "void \fBsetPassive\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "bool \fBact\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 31 of file thread.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,34 @@
.TH "Topology" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Topology \-
.SH SYNOPSIS
.br
.PP
Inherited by \fBRingTopology\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "virtual \fB~Topology\fP ()"
.br
.ti -1c
.RI "void \fBadd\fP (\fBCooperative\fP &__mig)"
.br
.in -1c
.SS "Protected Attributes"
.in +1c
.ti -1c
.RI "std::vector< \fBCooperative\fP * > \fBmig\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 31 of file topology.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,64 @@
.TH "Worker" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
Worker \-
.SH SYNOPSIS
.br
.PP
Inherits \fBCommunicable\fP, and \fBReactiveThread\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBWorker\fP ()"
.br
.ti -1c
.RI "void \fBstart\fP ()"
.br
.ti -1c
.RI "void \fBpackResult\fP ()"
.br
.ti -1c
.RI "void \fBunpackData\fP ()"
.br
.ti -1c
.RI "void \fBpackTaskDone\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingResult\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingTaskDone\fP ()"
.br
.ti -1c
.RI "void \fBsetSource\fP (int __rank)"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "WORKER_ID \fBid\fP"
.br
.ti -1c
.RI "SERVICE_ID \fBserv_id\fP"
.br
.ti -1c
.RI "\fBService\fP * \fBserv\fP"
.br
.ti -1c
.RI "int \fBsrc\fP"
.br
.ti -1c
.RI "bool \fBtoto\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
Definition at line 33 of file worker.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,43 @@
.TH "peo" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peo \-
.SH SYNOPSIS
.br
.PP
.SS "Functions"
.in +1c
.ti -1c
.RI "void \fBfinalize\fP ()"
.br
.ti -1c
.RI "void \fBinit\fP (int &__argc, char **&__argv)"
.br
.ti -1c
.RI "void \fBloadParameters\fP (int &__argc, char **&__argv)"
.br
.ti -1c
.RI "void \fBrun\fP ()"
.br
.in -1c
.SS "Variables"
.in +1c
.ti -1c
.RI "int * \fBargc\fP"
.br
.ti -1c
.RI "char *** \fBargv\fP"
.br
.ti -1c
.RI "int * \fBargc\fP"
.br
.ti -1c
.RI "char *** \fBargv\fP"
.br
.in -1c
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,31 @@
.TH "peoAggEvalFunc" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoAggEvalFunc \- The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoAggEvalFunc.h>\fP
.PP
Inherited by \fBpeoNoAggEvalFunc< EOT >\fP.
.PP
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoAggEvalFunc< EOT >"
The \fBpeoAggEvalFunc\fP class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided.
The class inherits \fBpublic eoBF< EOT&, const typename EOT :: Fitness&, void >\fP thus requiring, for the derived classes, the creation of a function having the following signature:
.PP
void operator()( EOT& __eot, const typename EOT :: Fitness& __partial_fittness );
.PP
The aggregation object is called in an iterative manner for each of the results obtained by applying partial evaluation functions.
.PP
Definition at line 40 of file peoAggEvalFunc.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,174 @@
.TH "peoAsyncIslandMig" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoAsyncIslandMig \- The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoAsyncIslandMig.h>\fP
.PP
Inherits \fBCooperative\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoAsyncIslandMig\fP (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, \fBTopology\fP &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)"
.br
.RI "\fIConstructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \fP"
.ti -1c
.RI "void \fBoperator()\fP ()"
.br
.RI "\fIFunction operator to be called as checkpoint for performing the migration step. \fP"
.ti -1c
.RI "void \fBpack\fP ()"
.br
.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP"
.ti -1c
.RI "void \fBunpack\fP ()"
.br
.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP"
.in -1c
.SS "Private Member Functions"
.in +1c
.ti -1c
.RI "void \fBemigrate\fP ()"
.br
.ti -1c
.RI "void \fBimmigrate\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoContinue< EOT > & \fBcont\fP"
.br
.ti -1c
.RI "eoSelect< EOT > & \fBselect\fP"
.br
.ti -1c
.RI "eoReplacement< EOT > & \fBreplace\fP"
.br
.ti -1c
.RI "\fBTopology\fP & \fBtopology\fP"
.br
.ti -1c
.RI "eoPop< EOT > & \fBsource\fP"
.br
.ti -1c
.RI "eoPop< EOT > & \fBdestination\fP"
.br
.ti -1c
.RI "std::queue< eoPop< EOT > > \fBimm\fP"
.br
.ti -1c
.RI "std::queue< eoPop< EOT > > \fBem\fP"
.br
.ti -1c
.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoAsyncIslandMig< EOT >"
The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
continuation criterion, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. As opposed to the synchronous migration model, in the asynchronous migration approach, there is no synchronization step between islands after performing the emigration phase.
.PP
The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:
.PP
\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offspring replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified
.PP
Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow:
.PP
.PD 0
.IP "1." 4
topological model to be followed when performing migrations:
.br
.br
\fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands
.PP
.IP "2." 4
the continuation criterion, selection and replacement strategy etc. are defined:
.br
.br
eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoPeriodicContinue< EOT > migCont( MIG_FREQ ); // migrations occur periodically at MIG_FREQ iterations eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoAsyncIslandMig< EOT > asyncMigration(
.br
migCont, migSelect, migReplace, migTopology,
.br
population, population
.br
); // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
.PP
.IP "3." 4
creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
.br
.br
... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( asyncMigration ); // adding the migration operator as checkpoint element ...
.PP
.IP "4." 4
definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class):
.br
.br
peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above asyncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population
.PP
.PP
The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.
.PP
The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them).
.PP
Definition at line 127 of file peoAsyncIslandMig.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoAsyncIslandMig\fP< EOT >::\fBpeoAsyncIslandMig\fP (eoContinue< EOT > & __cont, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, \fBTopology\fP & __topology, eoPop< EOT > & __source, eoPop< EOT > & __destination)"
.PP
Constructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
.PP
\fBParameters:\fP
.RS 4
\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the migration is performed or not;
.br
\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
.br
\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
.br
\fITopology&\fP __topology - topological model to be followed when performing migrations;
.br
\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected;
.br
\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated.
.RE
.PP
.PP
Definition at line 186 of file peoAsyncIslandMig.h.
.PP
References Topology::add().
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoAsyncIslandMig\fP< EOT >::operator() ()"
.PP
Function operator to be called as checkpoint for performing the migration step.
.PP
The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required.
.PP
Definition at line 263 of file peoAsyncIslandMig.h.
.PP
References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,109 @@
.TH "peoEA" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoEA \- The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoEA.h>\fP
.PP
Inherits \fBRunner\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoEA\fP (eoContinue< EOT > &__cont, \fBpeoPopEval\fP< EOT > &__pop_eval, eoSelect< EOT > &__select, \fBpeoTransform\fP< EOT > &__trans, eoReplacement< EOT > &__replace)"
.br
.RI "\fIConstructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism. \fP"
.ti -1c
.RI "void \fBrun\fP ()"
.br
.RI "\fIEvolutionary algorithm function - a side effect of the fact that the class is derived from the \fB\fBRunner\fP\fP class, thus requiring the existence of a \fIrun\fP function, the algorithm being executed on a distinct thread. \fP"
.ti -1c
.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)"
.br
.RI "\fIFunction operator for specifying the population to be associated with the algorithm. \fP"
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoContinue< EOT > & \fBcont\fP"
.br
.ti -1c
.RI "\fBpeoPopEval\fP< EOT > & \fBpop_eval\fP"
.br
.ti -1c
.RI "eoSelect< EOT > & \fBselect\fP"
.br
.ti -1c
.RI "\fBpeoTransform\fP< EOT > & \fBtrans\fP"
.br
.ti -1c
.RI "eoReplacement< EOT > & \fBreplace\fP"
.br
.ti -1c
.RI "eoPop< EOT > * \fBpop\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoEA< EOT >"
The \fBpeoEA\fP class offers an elementary evolutionary algorithm implementation.
In addition, as compared with the algorithms provided by the EO framework, the \fBpeoEA\fP class has the underlying necessary structure for including, for example, parallel evaluation and parallel transformation operators, migration operators etc. Although there is no restriction on using the algorithms provided by the EO framework, the drawback resides in the fact that the EO implementation is exclusively sequential and, in consequence, no parallelism is provided. A simple example for constructing a \fBpeoEA\fP object:
.PP
... eoPop< EOT > population( POP_SIZE, popInitializer ); // creation of a population with POP_SIZE individuals - the popInitializer is a functor to be called for each individual eoGenContinue< EOT > eaCont( NUM_GEN ); // number of generations for the evolutionary algorithm eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // checkpoint incorporating the continuation criterion - startpoint for adding other checkpoint objects peoSeqPopEval< EOT > eaPopEval( evalFunction ); // sequential evaluation functor wrapper - evalFunction represents the actual evaluation functor eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSelectNumber< EOT > eaSelect( selectionStrategy, POP_SIZE ); // the number of individuals to be selected for creating the offspring population eoRankingSelect< EOT > selectionStrategy; // selection strategy for creating the offspring population - a simple ranking selection in this case eoSGATransform< EOT > transform( crossover, CROSS_RATE, mutation, MUT_RATE ); // transformation operator - crossover and mutation operators with their associated probabilities peoSeqTransform< EOT > eaTransform( transform ); // ParadisEO specific sequential operator - a parallel version may be specified in the same manner eoPlusReplacement< EOT > eaReplace; // replacement strategy - for integrating the offspring resulting individuals in the initial population peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace ); // ParadisEO evolutionary algorithm integrating the above defined objects eaAlg( population ); // specifying the initial population for the algorithm ...
.PP
Definition at line 69 of file peoEA.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoEA\fP< EOT >::\fBpeoEA\fP (eoContinue< EOT > & __cont, \fBpeoPopEval\fP< EOT > & __pop_eval, eoSelect< EOT > & __select, \fBpeoTransform\fP< EOT > & __trans, eoReplacement< EOT > & __replace)"
.PP
Constructor for the evolutionary algorithm object - several basic parameters have to be specified, allowing for different levels of parallelism.
.PP
Depending on the requirements, a sequential or a parallel evaluation operator may be specified or, in the same manner, a sequential or a parallel transformation operator may be given as parameter. Out of the box objects may be provided, from the EO package, for example, or custom defined ones may be specified, provided that they are derived from the correct base classes.
.PP
\fBParameters:\fP
.RS 4
\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the algorithm should continue or not;
.br
\fIpeoPopEval<\fP EOT >& __pop_eval - evaluation operator; it allows the specification of parallel evaluation operators, aggregate evaluation functions, etc.;
.br
\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of offspring individuals;
.br
\fIpeoTransform<\fP EOT >& __trans - transformation operator, i.e. crossover and mutation; allows for sequential or parallel transform;
.br
\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the offspring individuals in the initial population;
.RE
.PP
.PP
Definition at line 113 of file peoEA.h.
.PP
References peoEA< EOT >::pop_eval, and peoEA< EOT >::trans.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoEA\fP< EOT >::operator() (eoPop< EOT > & __pop)"
.PP
Function operator for specifying the population to be associated with the algorithm.
.PP
\fBParameters:\fP
.RS 4
\fIeoPop<\fP EOT >& __pop - initial population of the algorithm, to be iteratively evolved;
.RE
.PP
.PP
Definition at line 129 of file peoEA.h.
.PP
References peoEA< EOT >::pop.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,35 @@
.TH "peoNoAggEvalFunc" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoNoAggEvalFunc \- The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoNoAggEvalFunc.h>\fP
.PP
Inherits \fBpeoAggEvalFunc< EOT >< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "void \fBoperator()\fP (EOT &__sol, const typename EOT::Fitness &__fit)"
.br
.RI "\fIOperator which sets as fitness the \fB__fit\fP value for the \fB__sol\fP individual. \fP"
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoNoAggEvalFunc< EOT >"
The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a fitness value and a specified individual.
The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified.
.PP
Definition at line 34 of file peoNoAggEvalFunc.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,217 @@
.TH "peoParaPopEval" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoParaPopEval \- The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoParaPopEval.h>\fP
.PP
Inherits \fBpeoPopEval< EOT >< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoParaPopEval\fP (eoEvalFunc< EOT > &__eval_func)"
.br
.RI "\fIConstructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \fP"
.ti -1c
.RI "\fBpeoParaPopEval\fP (const std::vector< eoEvalFunc< EOT > * > &__funcs, \fBpeoAggEvalFunc\fP< EOT > &__merge_eval)"
.br
.RI "\fIConstructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \fP"
.ti -1c
.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)"
.br
.RI "\fIOperator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \fP"
.ti -1c
.RI "void \fBpackData\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP"
.ti -1c
.RI "void \fBunpackData\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP"
.ti -1c
.RI "void \fBexecute\fP ()"
.br
.RI "\fIAuxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \fP"
.ti -1c
.RI "void \fBpackResult\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP"
.ti -1c
.RI "void \fBunpackResult\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP"
.ti -1c
.RI "void \fBnotifySendingData\fP ()"
.br
.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP"
.ti -1c
.RI "void \fBnotifySendingAllResourceRequests\fP ()"
.br
.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP"
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "const std::vector< eoEvalFunc< EOT > * > & \fBfuncs\fP"
.br
.ti -1c
.RI "std::vector< eoEvalFunc< EOT > * > \fBone_func\fP"
.br
.ti -1c
.RI "\fBpeoAggEvalFunc\fP< EOT > & \fBmerge_eval\fP"
.br
.ti -1c
.RI "\fBpeoNoAggEvalFunc\fP< EOT > \fBno_merge_eval\fP"
.br
.ti -1c
.RI "std::queue< EOT * > \fBtasks\fP"
.br
.ti -1c
.RI "std::map< EOT *, std::pair< unsigned, unsigned > > \fBprogression\fP"
.br
.ti -1c
.RI "unsigned \fBnum_func\fP"
.br
.ti -1c
.RI "EOT \fBsol\fP"
.br
.ti -1c
.RI "EOT * \fBad_sol\fP"
.br
.ti -1c
.RI "unsigned \fBtotal\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoParaPopEval< EOT >"
The \fBpeoParaPopEval\fP represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor.
The class offers the possibility of chosing between a single-function evaluation and an aggregate evaluation function, including several sub-evalution functions.
.PP
Definition at line 41 of file peoParaPopEval.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (eoEvalFunc< EOT > & __eval_func)"
.PP
Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor.
.PP
\fBParameters:\fP
.RS 4
\fIeoEvalFunc<\fP EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population
.RE
.PP
.PP
Definition at line 117 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::one_func.
.SS "template<class EOT> \fBpeoParaPopEval\fP< EOT >::\fBpeoParaPopEval\fP (const std::vector< eoEvalFunc< EOT > * > & __funcs, \fBpeoAggEvalFunc\fP< EOT > & __merge_eval)"
.PP
Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function.
.PP
\fBParameters:\fP
.RS 4
\fIconst\fP std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors;
.br
\fIpeoAggEvalFunc<\fP EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values.
.RE
.PP
.PP
Definition at line 126 of file peoParaPopEval.h.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::operator() (eoPop< EOT > & __pop)\fC [virtual]\fP"
.PP
Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population.
.PP
\fBParameters:\fP
.RS 4
\fIeoPop<\fP EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor.
.RE
.PP
.PP
Implements \fBpeoPopEval< EOT >\fP.
.PP
Definition at line 137 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::funcs, peoParaPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoParaPopEval< EOT >::tasks, and peoParaPopEval< EOT >::total.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::packData ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 158 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::progression, and peoParaPopEval< EOT >::tasks.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::unpackData ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 172 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::ad_sol, peoParaPopEval< EOT >::num_func, and peoParaPopEval< EOT >::sol.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::packResult ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 189 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::ad_sol, and peoParaPopEval< EOT >::sol.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::unpackResult ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 198 of file peoParaPopEval.h.
.PP
References peoParaPopEval< EOT >::ad_sol, Service::getOwner(), peoParaPopEval< EOT >::merge_eval, peoParaPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoParaPopEval< EOT >::total.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::notifySendingData ()\fC [virtual]\fP"
.PP
Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 229 of file peoParaPopEval.h.
.SS "template<class EOT> void \fBpeoParaPopEval\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP"
.PP
Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 234 of file peoParaPopEval.h.
.PP
References Service::getOwner(), and Thread::setPassive().
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,83 @@
.TH "peoParaSGATransform" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoParaSGATransform \-
.SH SYNOPSIS
.br
.PP
Inherits \fBpeoTransform< EOT >< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoParaSGATransform\fP (eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate)"
.br
.ti -1c
.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)"
.br
.ti -1c
.RI "void \fBpackData\fP ()"
.br
.ti -1c
.RI "void \fBunpackData\fP ()"
.br
.ti -1c
.RI "void \fBexecute\fP ()"
.br
.ti -1c
.RI "void \fBpackResult\fP ()"
.br
.ti -1c
.RI "void \fBunpackResult\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingData\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingAllResourceRequests\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoQuadOp< EOT > & \fBcross\fP"
.br
.ti -1c
.RI "double \fBcross_rate\fP"
.br
.ti -1c
.RI "eoMonOp< EOT > & \fBmut\fP"
.br
.ti -1c
.RI "double \fBmut_rate\fP"
.br
.ti -1c
.RI "unsigned \fBidx\fP"
.br
.ti -1c
.RI "eoPop< EOT > * \fBpop\fP"
.br
.ti -1c
.RI "EOT \fBfather\fP"
.br
.ti -1c
.RI "EOT \fBmother\fP"
.br
.ti -1c
.RI "unsigned \fBnum_term\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoParaSGATransform< EOT >"
.PP
Definition at line 36 of file peoParaSGATransform.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,37 @@
.TH "peoPopEval" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoPopEval \- The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoPopEval.h>\fP
.PP
Inherits \fBService\fP.
.PP
Inherited by \fBpeoParaPopEval< EOT >\fP, and \fBpeoSeqPopEval< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "virtual void \fBoperator()\fP (eoPop< EOT > &__pop)=0"
.br
.RI "\fIInterface function providing the signature for constructing an evaluation functor. \fP"
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoPopEval< EOT >"
The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors.
The derived classes may be used as wrappers for \fBEO\fP-derived evaluation functors. In order to have an example, please refer to the implementation of the \fB\fBpeoSeqPopEval\fP\fP and \fB\fBpeoParaPopEval\fP\fP classes.
.PP
Definition at line 34 of file peoPopEval.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,78 @@
.TH "peoSeqPopEval" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoSeqPopEval \- The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoSeqPopEval.h>\fP
.PP
Inherits \fBpeoPopEval< EOT >< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoSeqPopEval\fP (eoEvalFunc< EOT > &__eval)"
.br
.RI "\fIConstructor function - it only sets an internal reference to point to the specified evaluation object. \fP"
.ti -1c
.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)"
.br
.RI "\fIOperator for evaluating all the individuals of a given population - in a sequential iterative manner. \fP"
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoEvalFunc< EOT > & \fBeval\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoSeqPopEval< EOT >"
The \fBpeoSeqPopEval\fP class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an \fBeoEvalFunc< EOT >\fP-derived class as evaluation functor.
The specified EO evaluation object is applyied in an iterative manner to each individual of a specified population.
.PP
Definition at line 36 of file peoSeqPopEval.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoSeqPopEval\fP< EOT >::\fBpeoSeqPopEval\fP (eoEvalFunc< EOT > & __eval)"
.PP
Constructor function - it only sets an internal reference to point to the specified evaluation object.
.PP
\fBParameters:\fP
.RS 4
\fIeoEvalFunc<\fP EOT >& __eval - evaluation object to be applied for each individual of a specified population
.RE
.PP
.PP
Definition at line 56 of file peoSeqPopEval.h.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoSeqPopEval\fP< EOT >::operator() (eoPop< EOT > & __pop)\fC [virtual]\fP"
.PP
Operator for evaluating all the individuals of a given population - in a sequential iterative manner.
.PP
\fBParameters:\fP
.RS 4
\fIeoPop<\fP EOT >& __pop - population to be evaluated.
.RE
.PP
.PP
Implements \fBpeoPopEval< EOT >\fP.
.PP
Definition at line 61 of file peoSeqPopEval.h.
.PP
References peoSeqPopEval< EOT >::eval.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,96 @@
.TH "peoSeqTransform" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoSeqTransform \- The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoSeqTransform.h>\fP
.PP
Inherits \fBpeoTransform< EOT >< EOT >\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoSeqTransform\fP (eoTransform< EOT > &__trans)"
.br
.RI "\fIConstructor function - sets an internal reference towards the specified EO-derived transform object. \fP"
.ti -1c
.RI "void \fBoperator()\fP (eoPop< EOT > &__pop)"
.br
.RI "\fIOperator for applying the specified transform operators on each individual of the given population. \fP"
.ti -1c
.RI "virtual void \fBpackData\fP ()"
.br
.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP"
.ti -1c
.RI "virtual void \fBunpackData\fP ()"
.br
.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP"
.ti -1c
.RI "virtual void \fBexecute\fP ()"
.br
.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP"
.ti -1c
.RI "virtual void \fBpackResult\fP ()"
.br
.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP"
.ti -1c
.RI "virtual void \fBunpackResult\fP ()"
.br
.RI "\fIInterface function for providing a link with the parallel architecture of the ParadisEO framework. \fP"
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoTransform< EOT > & \fBtrans\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoSeqTransform< EOT >"
The \fBpeoSeqTransform\fP represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms.
A minimal set of interface functions is also provided for creating the link with the parallel architecture of the ParadisEO framework.
.PP
Definition at line 35 of file peoSeqTransform.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoSeqTransform\fP< EOT >::\fBpeoSeqTransform\fP (eoTransform< EOT > & __trans)"
.PP
Constructor function - sets an internal reference towards the specified EO-derived transform object.
.PP
\fBParameters:\fP
.RS 4
\fIeoTransform<\fP EOT >& __trans - EO-derived transform object including crossover and mutation operators.
.RE
.PP
.PP
Definition at line 70 of file peoSeqTransform.h.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoSeqTransform\fP< EOT >::operator() (eoPop< EOT > & __pop)"
.PP
Operator for applying the specified transform operators on each individual of the given population.
.PP
\fBParameters:\fP
.RS 4
\fIeoPop<\fP EOT >& __pop - population to be transformed by applying the crossover and mutation operators.
.RE
.PP
.PP
Definition at line 75 of file peoSeqTransform.h.
.PP
References peoSeqTransform< EOT >::trans.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,181 @@
.TH "peoSyncIslandMig" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoSyncIslandMig \- The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoSyncIslandMig.h>\fP
.PP
Inherits \fBCooperative\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoSyncIslandMig\fP (unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, \fBTopology\fP &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)"
.br
.RI "\fIConstructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters. \fP"
.ti -1c
.RI "void \fBoperator()\fP ()"
.br
.RI "\fIFunction operator to be called as checkpoint for performing the migration step. \fP"
.ti -1c
.RI "void \fBpack\fP ()"
.br
.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP"
.ti -1c
.RI "void \fBunpack\fP ()"
.br
.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP"
.ti -1c
.RI "void \fBnotifySending\fP ()"
.br
.RI "\fIAuxiliary function dealing with migration notifications. There is no need to explicitly call the function. \fP"
.in -1c
.SS "Private Member Functions"
.in +1c
.ti -1c
.RI "void \fBemigrate\fP ()"
.br
.ti -1c
.RI "void \fBimmigrate\fP ()"
.br
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoPeriodicContinue< EOT > \fBcont\fP"
.br
.ti -1c
.RI "eoSelect< EOT > & \fBselect\fP"
.br
.ti -1c
.RI "eoReplacement< EOT > & \fBreplace\fP"
.br
.ti -1c
.RI "\fBTopology\fP & \fBtopology\fP"
.br
.ti -1c
.RI "eoPop< EOT > & \fBsource\fP"
.br
.ti -1c
.RI "eoPop< EOT > & \fBdestination\fP"
.br
.ti -1c
.RI "std::queue< eoPop< EOT > > \fBimm\fP"
.br
.ti -1c
.RI "std::queue< eoPop< EOT > > \fBem\fP"
.br
.ti -1c
.RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP"
.br
.ti -1c
.RI "sem_t \fBsync\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoSyncIslandMig< EOT >"
The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e.
frequency of the migrations, selection and replacement strategies, a topological model and the source and destination population for the migrating individuals. The main difference as opposed to the asynchronous migration model is the synchronization step performed after selecting and sending the emigrant individuals.
.PP
The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm:
.PP
\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offspring replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified
.PP
Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow:
.PP
.PD 0
.IP "1." 4
topological model to be followed when performing migrations:
.br
.br
\fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands
.PP
.IP "2." 4
the continuation criterion, selection and replacement strategy etc. are defined:
.br
.br
eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoSyncIslandMig< EOT > syncMigration(
.br
MIG_FREQ, migSelect, migReplace, migTopology,
.br
population, population
.br
); // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
.PP
.IP "3." 4
creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope):
.br
.br
... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( syncMigration ); // adding the migration operator as checkpoint element ...
.PP
.IP "4." 4
definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class):
.br
.br
peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above syncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population
.PP
.PP
The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively.
.PP
The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them).
.PP
Definition at line 129 of file peoSyncIslandMig.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoSyncIslandMig\fP< EOT >::\fBpeoSyncIslandMig\fP (unsigned __frequency, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, \fBTopology\fP & __topology, eoPop< EOT > & __source, eoPop< EOT > & __destination)"
.PP
Constructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in EO, etc., or custom, derived objects may be passed as parameters.
.PP
\fBParameters:\fP
.RS 4
\fIunsigned\fP __frequency - frequency of the migrations - the migrations occur periodically;
.br
\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population;
.br
\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population;
.br
\fITopology&\fP __topology - topological model to be followed when performing migrations;
.br
\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected;
.br
\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated.
.RE
.PP
.PP
Definition at line 193 of file peoSyncIslandMig.h.
.PP
References Topology::add(), and peoSyncIslandMig< EOT >::sync.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoSyncIslandMig\fP< EOT >::operator() ()"
.PP
Function operator to be called as checkpoint for performing the migration step.
.PP
The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required.
.PP
Definition at line 267 of file peoSyncIslandMig.h.
.PP
References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,209 @@
.TH "peoSyncMultiStart" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoSyncMultiStart \- The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoSyncMultiStart.h>\fP
.PP
Inherits \fBService\fP.
.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "\fBpeoSyncMultiStart\fP (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, moAlgo< EOT > &__ls, eoPop< EOT > &__pop)"
.br
.RI "\fIConstructor function - several simple parameters are required for defining the characteristics of the multi-start model. \fP"
.ti -1c
.RI "void \fBoperator()\fP ()"
.br
.RI "\fIOperator which synchronously executes the specified algorithm on the individuals selected from the initial population. \fP"
.ti -1c
.RI "void \fBpackData\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP"
.ti -1c
.RI "void \fBunpackData\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP"
.ti -1c
.RI "void \fBexecute\fP ()"
.br
.RI "\fIAuxiliary function for actually executing the specified algorithm on one assigned individual. \fP"
.ti -1c
.RI "void \fBpackResult\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP"
.ti -1c
.RI "void \fBunpackResult\fP ()"
.br
.RI "\fIAuxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm. \fP"
.ti -1c
.RI "void \fBnotifySendingData\fP ()"
.br
.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP"
.ti -1c
.RI "void \fBnotifySendingAllResourceRequests\fP ()"
.br
.RI "\fIAuxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase. \fP"
.in -1c
.SS "Private Attributes"
.in +1c
.ti -1c
.RI "eoContinue< EOT > & \fBcont\fP"
.br
.ti -1c
.RI "eoSelect< EOT > & \fBselect\fP"
.br
.ti -1c
.RI "eoReplacement< EOT > & \fBreplace\fP"
.br
.ti -1c
.RI "moAlgo< EOT > & \fBls\fP"
.br
.ti -1c
.RI "eoPop< EOT > & \fBpop\fP"
.br
.ti -1c
.RI "eoPop< EOT > \fBsel\fP"
.br
.ti -1c
.RI "eoPop< EOT > \fBimpr_sel\fP"
.br
.ti -1c
.RI "EOT \fBsol\fP"
.br
.ti -1c
.RI "unsigned \fBidx\fP"
.br
.ti -1c
.RI "unsigned \fBnum_term\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoSyncMultiStart< EOT >"
The \fBpeoSyncMultiStart\fP class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population.
As a simple example, several hill climbing algorithms may be synchronously launched on the specified population, each algorithm acting upon one individual only, the final result being integrated back in the population. A \fBpeoSyncMultiStart\fP object can be specified as checkpoint object for a classic ParadisEO evolutionary algorithm thus allowing for simple hybridization schemes which combine the evolutionary approach with a local search approach, for example, executed at the end of each generation.
.PP
Definition at line 51 of file peoSyncMultiStart.h.
.SH "Constructor & Destructor Documentation"
.PP
.SS "template<class EOT> \fBpeoSyncMultiStart\fP< EOT >::\fBpeoSyncMultiStart\fP (eoContinue< EOT > & __cont, eoSelect< EOT > & __select, eoReplacement< EOT > & __replace, moAlgo< EOT > & __ls, eoPop< EOT > & __pop)"
.PP
Constructor function - several simple parameters are required for defining the characteristics of the multi-start model.
.PP
\fBParameters:\fP
.RS 4
\fIeoContinue<\fP EOT >& __cont - defined for including further functionality - no semantics associated at this time;
.br
\fIeoSelect<\fP EOT >& __select - selection strategy for obtaining a subset of the initial population on which to apply the specified algorithm;
.br
\fIeoReplacement<\fP EOT >& __replace - replacement strategy for integrating the resulting individuals in the initial population;
.br
\fImoAlgo<\fP EOT >& __ls - algorithm to be applied on each of the selected individuals - a \fBmoAlgo< EOT >\fP-derived object must be specified;
.br
\fIeoPop<\fP EOT >& __pop - the initial population from which the individuals are selected for applying the specified algorithm.
.RE
.PP
.PP
Definition at line 121 of file peoSyncMultiStart.h.
.SH "Member Function Documentation"
.PP
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::operator() ()"
.PP
Operator which synchronously executes the specified algorithm on the individuals selected from the initial population.
.PP
There is no need to explicitly call the operator - automatically called as checkpoint operator.
.PP
Definition at line 176 of file peoSyncMultiStart.h.
.PP
References peoSyncMultiStart< EOT >::idx, peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, Service::requestResourceRequest(), peoSyncMultiStart< EOT >::sel, peoSyncMultiStart< EOT >::select, and Communicable::stop().
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::packData ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 135 of file peoSyncMultiStart.h.
.PP
References peoSyncMultiStart< EOT >::idx, and peoSyncMultiStart< EOT >::sel.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::unpackData ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 141 of file peoSyncMultiStart.h.
.PP
References peoSyncMultiStart< EOT >::sol.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::execute ()\fC [virtual]\fP"
.PP
Auxiliary function for actually executing the specified algorithm on one assigned individual.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 147 of file peoSyncMultiStart.h.
.PP
References peoSyncMultiStart< EOT >::ls, and peoSyncMultiStart< EOT >::sol.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::packResult ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 153 of file peoSyncMultiStart.h.
.PP
References peoSyncMultiStart< EOT >::sol.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::unpackResult ()\fC [virtual]\fP"
.PP
Auxiliary function for transferring data between the process requesting the synchronous execution of the specified algorithm and the process which actually executes the algorithm.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 159 of file peoSyncMultiStart.h.
.PP
References Service::getOwner(), peoSyncMultiStart< EOT >::impr_sel, peoSyncMultiStart< EOT >::num_term, peoSyncMultiStart< EOT >::pop, peoSyncMultiStart< EOT >::replace, Communicable::resume(), peoSyncMultiStart< EOT >::sel, Thread::setActive(), and peoSyncMultiStart< EOT >::sol.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::notifySendingData ()\fC [virtual]\fP"
.PP
Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 187 of file peoSyncMultiStart.h.
.SS "template<class EOT> void \fBpeoSyncMultiStart\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP"
.PP
Auxiliary function for notifications between the process requesting the synchronous multi-start execution and the processes that performs the actual execution phase.
.PP
There is no need to explicitly call the function.
.PP
Reimplemented from \fBService\fP.
.PP
Definition at line 192 of file peoSyncMultiStart.h.
.PP
References Service::getOwner(), and Thread::setPassive().
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.

View file

@ -0,0 +1,27 @@
.TH "peoTransform" 3 "30 Dec 2006" "Version 0.1" "ParadisEO-PEO" \" -*- nroff -*-
.ad l
.nh
.SH NAME
peoTransform \- The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes.
.PP
.SH SYNOPSIS
.br
.PP
\fC#include <peoTransform.h>\fP
.PP
Inherits \fBService\fP.
.PP
Inherited by \fBpeoParaSGATransform< EOT >\fP, and \fBpeoSeqTransform< EOT >\fP.
.PP
.SH "Detailed Description"
.PP
.SS "template<class EOT> class peoTransform< EOT >"
The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes.
.PP
Definition at line 35 of file peoTransform.h.
.SH "Author"
.PP
Generated automatically by Doxygen for ParadisEO-PEO from the source code.