diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/README-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/README-source.html index 4aa422480..f9a2ed935 100644 --- a/tags/dummy-tag/paradiseo-peo/doc/html/README-source.html +++ b/tags/dummy-tag/paradiseo-peo/doc/html/README-source.html @@ -1,6 +1,6 @@
-00001 PARADISEO-PEO README FILE 00002 ======================================================================= -00003 check latest news at http://paradiseo.gforge.inria.fr/ +00003 check latest news at http://paradiseo.gforge.inria.fr/ 00004 ======================================================================= 00005 00006 Welcome to ParadisEO-PEO, the Parallel Evolving Objects library. @@ -81,26 +81,24 @@ 00057 | +- man Unix man format documentation. 00058 | 00059 | -00060 +-- tutorial APPLICATIONS - one directory per separate application. +00060 +-- tutorial APPLICATIONS 00061 | -00062 +-- examples Examples repository including source code shared by all or most of the included lessons. -00063 | | -00064 | +- tsp A Traveling Salesman Problem (TSP) example with benchmarks, the main operators, definitions, etc. +00062 +-- examples TSP +00063 | +00064 +-- Lesson1 Parallel evaluation for EA and PSO 00065 | -00066 +-- Lesson1 A simple ParadisEO-PEO evolutionary algorithm example using the peoEA class. +00066 +-- Lesson2 Parallel transformation (crossover + mutation) for EA 00067 | -00068 +-- Lesson2 Example of an EA featuring a parallel evaluation of the population/parallel fitness function evaluation. +00068 +-- Lesson3 Insular model for PSO and EA 00069 | -00070 +-- Lesson3 Example of an asynchronous insular model including two evolutionary algorithms. -00071 | -00072 +-- Walkthrough Walkthrough ParadisEO-PEO features - EA+LS hybridization, parallelization, insular model. -00073 +00070 +-- Lesson4 Hybridization +00071 +00072 =================================================================== +00073 NOTES 00074 =================================================================== -00075 NOTES -00076 =================================================================== -00077 -00078 Mailing list : paradiseo-help@lists.gforge.inria.fr -
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/annotated.html b/tags/dummy-tag/paradiseo-peo/doc/html/annotated.html
index 8bbde05d0..22ef217fd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/annotated.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/annotated.html
@@ -1,6 +1,6 @@
-| Algorithm | |
| CitySwap | Its swaps two vertices randomly choosen |
| Communicable | |
| Communicator | |
| CompleteTopology | |
| continuator | Abstract class for a continuator within the exchange of data by migration |
| Cooperative | |
| DisplayBestRoute | |
| EdgeXover | Edge Crossover |
| eoContinuator< EOT > | Specific class for a continuator within the exchange of migration of a population |
| eoReplace< EOT, TYPE > | Specific class for a replacement within the exchange of migration of a population |
| eoSelector< EOT, TYPE > | Specific class for a selector within the exchange of migration of a population |
| eoSyncContinue | Class for a continuator within the exchange of data by synchrone migration |
| MergeRouteEval | |
| MPIThreadedEnv | |
| Node | |
| OrderXover | Order Crossover |
| PartialMappedXover | Partial Mapped Crossover |
| PartRouteEval | Route Evaluator |
| peoAggEvalFunc< EOT > | The peoAggEvalFunc class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided |
| peoAsyncIslandMig< EOT > | The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e |
| peoEA< EOT > | The peoEA class offers an elementary evolutionary algorithm implementation |
| peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | Specific class for a asynchronous migration |
| peoEvalFunc< EOT, FitT, FunctionArg > | Specific class for evaluation |
| peoGlobalBestVelocity< POT > | Specific class for a replacement thanks to the velocity migration of a population of a PSO |
| peoMoeoPopEval< EOT > | |
| peoMultiStart< EntityType > | Class allowing the launch of several algorithms |
| peoMultiStart< EntityType >::AbstractAggregationAlgorithm | |
| peoMultiStart< EntityType >::AbstractAlgorithm | |
| peoMultiStart< EntityType >::AbstractDataType | |
| peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType > | |
| peoMultiStart< EntityType >::Algorithm< AlgorithmType > | |
| peoMultiStart< EntityType >::DataType< Type > | |
| peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType > | |
| peoMultiStart< EntityType >::NoAggregationFunction | |
| peoNoAggEvalFunc< EOT > | The peoNoAggEvalFunc class does nothing more than an association between a fitness value and a specified individual |
| peoParallelAlgorithmWrapper | |
| peoParallelAlgorithmWrapper::AbstractAlgorithm | |
| peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, AlgorithmDataType > | |
| peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void > | |
| peoParaPopEval< EOT > | The peoParaPopEval represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor |
| peoParaSGATransform< EOT > | |
| peoPopEval< EOT > | The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors |
| peoSeqPopEval< EOT > | The peoSeqPopEval class acts only as a ParadisEO specific sequential evaluation functor - a wrapper for incorporating an eoEvalFunc< EOT >-derived class as evaluation functor |
| peoSeqTransform< EOT > | The peoSeqTransform represent a wrapper for offering the possibility of using EO derived transform operators along with the ParadisEO evolutionary algorithms |
| peoSynchronousMultiStart< EntityType > | |
| peoSynchronousMultiStart< EntityType >::AbstractAggregationAlgorithm | |
| peoSynchronousMultiStart< EntityType >::AbstractAlgorithm | |
| peoSynchronousMultiStart< EntityType >::AbstractDataType | |
| peoSynchronousMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType > | |
| peoSynchronousMultiStart< EntityType >::Algorithm< AlgorithmType > | |
| peoSynchronousMultiStart< EntityType >::DataType< Type > | |
| peoSynchronousMultiStart< EntityType >::NoAggregationFunction | |
| peoSyncIslandMig< EOT > | The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e |
| peoSyncMultiStart< EOT > | The peoSyncMultiStart class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population |
| peoTransform< EOT > | The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes |
| RandomExplorationAlgorithm | |
| peoPopEval< EOT > | Parallel evaluation functor wrapper with MOEO |
| peoPSOSelect< POT > | Specific class for a selection of a population of a PSO |
| peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | Specific class for a synchronous migration |
| peoTransform< EOT > | Class for a parallel transform |
| peoWorstPositionReplacement< POT > | Specific class for a replacement of a population of a PSO |
| peoWrapper | Specific class for wrapping |
| peoWrapper::AbstractAlgorithm | |
| peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType > | |
| peoWrapper::Algorithm< AlgorithmType, void > | |
| peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType > | |
| peoWrapper::FunctionAlgorithm< AlgorithmReturnType, void > | |
| RandomTopology | |
| ReactiveThread | |
| replacement< TYPE > | Abstract class for a replacement within the exchange of data by migration |
| RingTopology | |
| RouteEval | |
| RouteInit | |
| Runner | |
| selector< TYPE > | Abstract class for a selector within the exchange of data by migration |
| SEND_REQUEST | |
| Service | |
| StarTopology | |
| SyncCompare | |
| SyncEntry | |
| Thread | |
| Topology | |
| TwoOpt | |
| TwoOptIncrEval | |
| TwoOptInit | |
| TwoOptNext | |
| TwoOptRand | |
| Worker |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8cpp-source.html
index cae89d871..1936f52c2 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +city_swap.cpp
00001 /* 00002 * <city_swap.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,16 +62,17 @@ 00038 00039 #include "city_swap.h" 00040 -00041 bool CitySwap :: operator () (Route & __route) { -00042 -00043 std :: swap (__route [rng.random (__route.size ())], -00044 __route [rng.random (__route.size ())]) ; -00045 -00046 __route.invalidate () ; -00047 -00048 return true ; -00049 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00041 bool CitySwap :: operator () (Route & __route) +00042 { +00043 +00044 std :: swap (__route [rng.random (__route.size ())], +00045 __route [rng.random (__route.size ())]) ; +00046 +00047 __route.invalidate () ; +00048 +00049 return true ; +00050 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8h-source.html
index 4b77e3b33..0bf0ea1b1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/city__swap_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +city_swap.h
00001 /* 00002 * <city_swap.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include "route.h" 00043 -00046 class CitySwap : public eoMonOp <Route> { -00047 -00048 public : -00049 -00050 bool operator () (Route & __route) ; -00051 -00052 } ; -00053 -00054 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00046 class CitySwap : public eoMonOp <Route> +00047 { +00048 +00049 public : +00050 +00051 bool operator () (Route & __route) ; +00052 +00053 } ; +00054 +00055 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable-members.html
index 09c8fb595..401c08744 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable-members.html
@@ -1,6 +1,6 @@
- [protected] [protected, static] [static] [protected] [protected] [virtual]
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.html
index a9090f07e..4a8a9a8e7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Communicable:

| void | resume () | +
Static Public Attributes | |
| +static unsigned | num_comm = 0 |
Protected Attributes | |
| COMM_ID | key | sem_t | sem_stop | -
Static Protected Attributes | |
| -static unsigned | num_comm = 0 |
-Definition at line 44 of file communicable.h.
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.png b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.png
index d4c0f0893..c639fdd64 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicable.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator-members.html
index 5fe11b6d9..3dd8e147a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator-members.html
@@ -1,6 +1,6 @@
- [virtual]
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator.html
index 466885c2b..b3836e1ec 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCommunicator.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative-members.html
index a3bcc111d..fe7bf31a6 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative-members.html
@@ -1,6 +1,6 @@
- [protected] [virtual] [virtual] [protected, static] [virtual] [virtual] [static] [private] [protected] [virtual]
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative.html b/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative.html
index 12e67471f..20f9a7516 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classCooperative.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Cooperative:

1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classDisplayBestRoute.html b/tags/dummy-tag/paradiseo-peo/doc/html/classDisplayBestRoute.html
index 9915fa19a..d64b54db3 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classDisplayBestRoute.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classDisplayBestRoute.html
@@ -1,6 +1,6 @@
-Inheritance diagram for DisplayBestRoute: -

Public Member Functions | |
| - | DisplayBestRoute (eoPop< Route > &__pop) | DisplayBestRoute (eoPop< Route > &__pop) |
| void | operator() () |
Private Attributes | |
| -eoPop< Route > & | pop | pop |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval-members.html
index c85d970f1..41220db56 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval-members.html
@@ -1,6 +1,6 @@
-| functor_category() | eoBF< A1, A2, R > | [static] |
| operator()(Route &__route, const int &__part_fit) | MergeRouteEval | |
| peoAggEvalFunc::operator()(A1, A2)=0 | eoBF< A1, A2, R > | [pure virtual] |
| ~eoBF() | eoBF< A1, A2, R > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.html b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.html
index 212fc625d..3a4d123f7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.html
@@ -1,6 +1,6 @@
-Inheritance diagram for MergeRouteEval:

Public Member Functions | |
| -void | operator() (Route &__route, const int &__part_fit) | operator() (Route &__route, const int &__part_fit) |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.png b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.png
index 7fa639930..7e4737d67 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classMergeRouteEval.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread-members.html
index efc2b058b..e812d3819 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread-members.html
@@ -1,6 +1,6 @@
- [virtual]
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread.html b/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread.html
index 9a1793083..681c04cef 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classReactiveThread.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology-members.html
index ce31afe98..af805a980 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology-members.html
@@ -1,6 +1,6 @@
-| add(Cooperative &__mig) | Topology | |
| mig | Topology | [protected] |
| operator std::vector() | Topology | |
| setNeighbors(Cooperative *__mig, std::vector< Cooperative * > &__from, std::vector< Cooperative * > &__to) | RingTopology | [virtual] |
| ~Topology() | Topology | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology.html b/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology.html
index ca95bba4c..8086dba2b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classRingTopology.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner-members.html
index 18f6d3e25..e0e954f04 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner-members.html
@@ -1,6 +1,6 @@
-| Communicable() | Communicable | |
| getID() | Runner | |
| def_id | Runner | [private] |
| exec_id | Runner | [private] |
| getDefinitionID() | Runner | |
| getExecutionID() | Runner | |
| getKey() | Communicable | |
| id | Runner | [private] |
| isLocal() | Runner | |
| isAssignedLocally() | Runner | |
| key | Communicable | [protected] |
| lock() | Communicable | |
| notifyContextInitialized() | Runner | |
| notifySendingTermination() | Runner | |
| num_comm | Communicable | [protected, static] |
| num_comm | Communicable | [static] |
| packTermination() | Runner | |
| resume() | Communicable | |
| Runner() | Runner | |
| sem_cntxt | Runner | [private] |
| sem_lock | Communicable | [protected] |
| sem_start | Runner | [private] |
| sem_stop | Communicable | [protected] |
| setActive() | Thread | |
| setExecutionID(const RUNNER_ID &execution_id) | Runner | |
| setPassive() | Thread | |
| start() | Runner | [virtual] |
| stop() | Communicable | |
| terminate() | Runner | |
| Thread() | Thread | |
| unlock() | Communicable | |
| waitContextInitialization() | Runner | |
| waitStarting() | Runner | |
| ~Communicable() | Communicable | [virtual] |
| ~Thread() | Thread | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.html b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.html
index 03025fd30..81b8cd39d 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Runner:

| Runner () | |
| -void | start () |
| +RUNNER_ID | getDefinitionID () |
| +RUNNER_ID | getExecutionID () |
| +void | setExecutionID (const RUNNER_ID &execution_id) |
| +bool | isAssignedLocally () |
| void | waitStarting () |
| -bool | isLocal () |
| +void | waitContextInitialization () |
| +void | start () |
| void | terminate () |
| -RUNNER_ID | getID () |
| -void | packTermination () |
| +void | notifyContextInitialized () |
| void | notifySendingTermination () |
| +void | packTermination () |
Private Attributes | |
| sem_t | sem_start |
| -unsigned | id |
| +sem_t | sem_cntxt |
| +unsigned | def_id |
| +unsigned | exec_id |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.png b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.png
index b1883c046..f54b594ed 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classRunner.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classService-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classService-members.html
index 0ad5e342a..722fd8d4b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classService-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classService-members.html
@@ -1,6 +1,6 @@
- [virtual] [virtual] [virtual] [protected, static] [static] [private] [private] [virtual] [virtual] [virtual] [virtual]
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classService.html b/tags/dummy-tag/paradiseo-peo/doc/html/classService.html
index a996a9c8e..26bae54e3 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classService.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classService.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Service:

| 45 of file service.h. The documentation for this class was generated from the following files:
The documentation for this class was generated from the following files: - Generated on Fri Feb 29 17:05:09 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by 1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classService.png b/tags/dummy-tag/paradiseo-peo/doc/html/classService.png
index e92250d12..032146dd2 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classService.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classService.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classThread-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classThread-members.html
index 10a051865..a6ce8ce11 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classThread-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classThread-members.html
@@ -1,6 +1,6 @@
-setPassive() | Thread | Thread() | Thread | ~Thread() | Thread | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classThread.html b/tags/dummy-tag/paradiseo-peo/doc/html/classThread.html
index df5463856..68f215e6e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classThread.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classThread.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Thread:

| 44 of file thread.h. The documentation for this class was generated from the following files: - Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by + Generated on Fri Feb 29 17:05:09 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by 1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classThread.png b/tags/dummy-tag/paradiseo-peo/doc/html/classThread.png
index 138a055d9..73e465805 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classThread.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classThread.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classTopology-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classTopology-members.html
index 1f53aba26..f76cbc7b6 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classTopology-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classTopology-members.html
@@ -1,6 +1,6 @@
-Topology Member ListThis is the complete list of members for Topology, including all inherited members.
Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by + |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classTopology.html b/tags/dummy-tag/paradiseo-peo/doc/html/classTopology.html
index 3140e314d..5e4c58e65 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classTopology.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classTopology.html
@@ -1,6 +1,6 @@
-Inheritance diagram for Topology:

| void | add (Cooperative &__mig) | +|
| + | operator std::vector () | |
Protected Attributes | ||
| std::vector< Cooperative * > | mig | |
| lock() | Communicable | |
| notifySendingResult() | Worker | |
| notifySendingTaskDone() | Worker | |
| num_comm | Communicable | [protected, static] |
| num_comm | Communicable | [static] |
| packResult() | Worker | |
| packTaskDone() | Worker | |
| ReactiveThread() | ReactiveThread | |
| recvAndCompleted | Worker | [private] |
| resume() | Communicable | |
| sem_lock | Communicable | [protected] |
| sem_stop | Communicable | [protected] |
| sem_task_asgn | Worker | [private] |
| sem_task_done | Worker | [private] |
| serv | Worker | [private] |
| serv_id | Worker | [private] |
| setActive() | Thread | |
| src | Worker | [private] |
| start() | Worker | [virtual] |
| stop() | Communicable | |
| taskAssigned | Worker | [private] |
| Thread() | Thread | |
| toto | Worker | [private] |
| unlock() | Communicable | |
| unpackData() | Worker | |
| wakeUp() | ReactiveThread | |
| Worker() | Worker | |
| ~Communicable() | Communicable | [virtual] |
| ~Thread() | Thread | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classWorker.html b/tags/dummy-tag/paradiseo-peo/doc/html/classWorker.html
index 6fa5e8e62..2aa9c3be1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classWorker.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classWorker.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classes.html b/tags/dummy-tag/paradiseo-peo/doc/html/classes.html
index e1552e671..c5d92f68a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classes.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classes.html
@@ -1,6 +1,6 @@
-+
| peoParallelAlgorithmWrapper::AbstractAlgorithm | peoSynchronousMultiStart | ||
| peoAggEvalFunc | peoParallelAlgorithmWrapper::Algorithm | peoSynchronousMultiStart::AbstractAggregationAlgorithm | ||
| peoAsyncIslandMig | peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void > | peoSynchronousMultiStart::AbstractAlgorithm | ||
| peoParaPopEval | peoSynchronousMultiStart::AbstractDataType | ||
| Communicable | peoParaSGATransform | peoSynchronousMultiStart::AggregationAlgorithm | ||
| Communicator | peoPopEval | peoSynchronousMultiStart::Algorithm | ||
| Cooperative |
| peoSynchronousMultiStart::DataType | ||
| RandomExplorationAlgorithm | peoSynchronousMultiStart::NoAggregationFunction | ||
| DisplayBestRoute | ReactiveThread | peoSyncIslandMig | ||
| RingTopology | peoSyncMultiStart | ||
| peoEA | Runner |
| ||
|
| Thread | ||
| MergeRouteEval | SEND_REQUEST | Topology | ||
| peoSeqPopEval | peoTransform | ||
| peoNoAggEvalFunc | peoSeqTransform |
| ||
| Service | Worker | ||
| peoParallelAlgorithmWrapper |
-
S |
C |
N |
T |
D |
O |
E |
P |
W |
R |
G |
M |
+
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.html
index bfe4d5547..75c27119a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.html
@@ -1,6 +1,6 @@
-
#include <peoAggEvalFunc.h>
@@ -37,12 +37,10 @@
Inheritance diagram for peoAggEvalFunc< EOT >:

Definition at line 53 of file peoAggEvalFunc.h.
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.png b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.png
index 91f704db8..9246d0439 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAggEvalFunc.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html
index f48ac21dc..a0531ef0c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig-members.html
@@ -1,6 +1,6 @@
-| addTo(eoCheckPoint< EOT > &cp) | eoUpdater | |
| className(void) const | eoUpdater | [virtual] |
| Communicable() | Communicable | |
| cont | peoAsyncIslandMig< EOT > | [private] |
| coop_em | peoAsyncIslandMig< EOT > | [private] |
| destination | peoAsyncIslandMig< EOT > | [private] |
| em | peoAsyncIslandMig< EOT > | [private] |
| emigrate() | peoAsyncIslandMig< EOT > | [private] |
| functor_category() | eoF< void > | [static] |
| cont | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| coop_em | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| em | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| emigrate() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| getKey() | Communicable | |
| getOwner() | Cooperative | |
| imm | peoAsyncIslandMig< EOT > | [private] |
| immigrate() | peoAsyncIslandMig< EOT > | [private] |
| imm | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| immigrate() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| key | Communicable | [protected] |
| lastCall() | eoUpdater | [virtual] |
| lock() | Communicable | |
| notifyReceiving() | Cooperative | [virtual] |
| notifySending() | Cooperative | [virtual] |
| num_comm | Communicable | [protected, static] |
| operator()() | peoAsyncIslandMig< EOT > | [virtual] |
| pack() | peoAsyncIslandMig< EOT > | [virtual] |
| peoAsyncIslandMig(eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination) | peoAsyncIslandMig< EOT > | |
| replace | peoAsyncIslandMig< EOT > | [private] |
| result_type typedef | eoF< void > | |
| notifySendingSyncReq() | Cooperative | [virtual] |
| notifySynchronized() | Cooperative | [virtual] |
| num_comm | Communicable | [static] |
| operator()() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | |
| pack() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| packSynchronizeReq() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| peoAsyncIslandMig(continuator &__cont, selector< TYPESELECT > &__select, replacement< TYPEREPLACE > &__replace, Topology &__topology) | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | |
| replace | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| resume() | Communicable | |
| select | peoAsyncIslandMig< EOT > | [private] |
| select | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| sem_lock | Communicable | [protected] |
| sem_stop | Communicable | [protected] |
| send(Cooperative *__coop) | Cooperative | |
| setOwner(Runner &__runner) | Cooperative | |
| source | peoAsyncIslandMig< EOT > | [private] |
| stop() | Communicable | |
| topology | peoAsyncIslandMig< EOT > | [private] |
| synchronizeCoopEx() | Cooperative | |
| topology | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| unlock() | Communicable | |
| unpack() | peoAsyncIslandMig< EOT > | [virtual] |
| unpack() | peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| ~Communicable() | Communicable | [virtual] |
| ~eoF() | eoF< void > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html
index be4ff7a22..b50b5f601 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoAsyncIslandMig.html
@@ -1,6 +1,6 @@
-
#include <peoAsyncIslandMig.h>
-
Inheritance diagram for peoAsyncIslandMig< EOT >: -

1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.html
index f7509c195..0069c62f7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.html
@@ -1,6 +1,6 @@
-
-#include <peoPopEval.h>
+#include <peoMoeoPopEval.h>
Inheritance diagram for peoPopEval< EOT >:

Public Member Functions | |
| -virtual void | operator() (eoPop< EOT > &__pop)=0 |
| peoPopEval (eoEvalFunc< EOT > &__eval_func) | |
| Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. | |
| peoPopEval (const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval) | |
| Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. | |
| void | operator() (eoPop< EOT > &__pop) |
| Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. | |
| void | operator() (eoPop< EOT > &__dummy, eoPop< EOT > &__pop) |
| void | packData () |
| Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. | |
| void | unpackData () |
| Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. | |
| +void | execute () |
| Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. | |
| void | packResult () |
| Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. | |
| void | unpackResult () |
| Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. | |
| void | notifySendingData () |
| Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. | |
| void | notifySendingAllResourceRequests () |
| Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. | |
Private Attributes | |
| const std::vector< eoEvalFunc< + EOT > * > & | funcs |
| +std::vector< eoEvalFunc< EOT > * > | one_func |
| +peoAggEvalFunc< EOT > & | merge_eval |
| +peoNoAggEvalFunc< EOT > | no_merge_eval |
| +std::queue< EOT * > | tasks |
|
+std::map< EOT *, std::pair< + unsigned, unsigned > > | progression |
| +unsigned | num_func |
| +EOT | sol |
| +EOT * | ad_sol |
| +unsigned | total |
| Interface function providing the signature for constructing an evaluation functor. | |
-The derived classes may be used as wrappers for EO-derived evaluation functors. In order to have an example, please refer to the implementation of the peoSeqPopEval and peoParaPopEval classes. +
-Definition at line 47 of file peoPopEval.h.
| peoPopEval< EOT >::peoPopEval | +( | +eoEvalFunc< EOT > & | +__eval_func | +) | ++ |
+Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +
+
| eoEvalFunc< | EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population |
+Definition at line 132 of file peoPopEval.h. +
+References peoPopEval< EOT >::one_func. +
| peoPopEval< EOT >::peoPopEval | +( | +const std::vector< eoEvalFunc< EOT > * > & | +__funcs, | +|
| + | + | peoAggEvalFunc< EOT > & | +__merge_eval | + |
| + | ) | ++ |
+Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +
+
| const | std :: vector< eoEvalFunc < EOT >* >& __funcs - vector of EO-derived partial evaluation functors; | |
| peoAggEvalFunc< | EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values. |
+Definition at line 141 of file peoPopEval.h. +
+
| void peoPopEval< EOT >::operator() | +( | +eoPop< EOT > & | +__pop | +) | ++ |
+Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +
+
| eoPop< | EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor. |
+Definition at line 154 of file peoPopEval.h. +
+References peoPopEval< EOT >::funcs, peoPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoPopEval< EOT >::tasks, and peoPopEval< EOT >::total. +
+Referenced by peoPopEval< EOT >::operator()(). +
| void peoPopEval< EOT >::operator() | +( | +eoPop< EOT > & | +__dummy, | +|
| + | + | eoPop< EOT > & | +__pop | + |
| + | ) | ++ |
+
| eoPop< | EOT >& __dummy | |
| eoPop< | EOT >& __pop |
+Definition at line 149 of file peoPopEval.h. +
+References peoPopEval< EOT >::operator()(). +
| void peoPopEval< EOT >::packData | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 173 of file peoPopEval.h. +
+References peoPopEval< EOT >::progression, and peoPopEval< EOT >::tasks. +
| void peoPopEval< EOT >::unpackData | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 187 of file peoPopEval.h. +
+References peoPopEval< EOT >::ad_sol, peoPopEval< EOT >::num_func, and peoPopEval< EOT >::sol. +
| void peoPopEval< EOT >::packResult | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 205 of file peoPopEval.h. +
+References peoPopEval< EOT >::ad_sol, and peoPopEval< EOT >::sol. +
| void peoPopEval< EOT >::unpackResult | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 214 of file peoPopEval.h. +
+References peoPopEval< EOT >::ad_sol, Service::getOwner(), peoPopEval< EOT >::merge_eval, peoPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoPopEval< EOT >::total. +
| void peoPopEval< EOT >::notifySendingData | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 247 of file peoPopEval.h. +
| void peoPopEval< EOT >::notifySendingAllResourceRequests | +( | ++ | ) | + [virtual] |
+
+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +
+There is no need to explicitly call the function. +
+Reimplemented from Service. +
+Definition at line 251 of file peoPopEval.h. +
+References Service::getOwner(), and Thread::setPassive(). +
+
const std :: vector< eoEvalFunc < EOT >* >& peoPopEval< EOT >::funcs [private] |
+
+
| std | :: vector< eoEvalFunc < EOT >* >& funcs | |
| std | :: vector< eoEvalFunc < EOT >* > one_func | |
| peoAggEvalFunc< | EOT >& merge_eval | |
| peoNoAggEvalFunc< | EOT > no_merge_eval | |
| std | :: queue< EOT* >tasks | |
| std | :: map< EOT*, std :: pair< unsigned, unsigned > > progression | |
| unsigned | num_func | |
| EOT | sol | |
| EOT | *ad_sol | |
| unsigned | total |
+Definition at line 119 of file peoPopEval.h. +
+Referenced by peoPopEval< EOT >::execute(), and peoPopEval< EOT >::operator()(). +
+
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.png b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.png
index 100bbb770..0fa0a9386 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoPopEval.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html
index f2cb522e3..0aec6b711 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html
@@ -1,6 +1,6 @@
-| addTo(eoCheckPoint< EOT > &cp) | eoUpdater | |
| className(void) const | eoUpdater | [virtual] |
| all | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| Communicable() | Communicable | |
| cont | peoSyncIslandMig< EOT > | [private] |
| coop_em | peoSyncIslandMig< EOT > | [private] |
| destination | peoSyncIslandMig< EOT > | [private] |
| em | peoSyncIslandMig< EOT > | [private] |
| emigrate() | peoSyncIslandMig< EOT > | [private] |
| functor_category() | eoF< void > | [static] |
| cont | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| coop_em | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| em | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| emigrate() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| explicitPassive | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| getKey() | Communicable | |
| getOwner() | Cooperative | |
| imm | peoSyncIslandMig< EOT > | [private] |
| immigrate() | peoSyncIslandMig< EOT > | [private] |
| imm | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| immigrate() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| in | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| key | Communicable | [protected] |
| lastCall() | eoUpdater | [virtual] |
| lock() | Communicable | |
| notifySending() | peoSyncIslandMig< EOT > | [virtual] |
| num_comm | Communicable | [protected, static] |
| operator()() | peoSyncIslandMig< EOT > | [virtual] |
| pack() | peoSyncIslandMig< EOT > | [virtual] |
| peoSyncIslandMig(unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination) | peoSyncIslandMig< EOT > | |
| replace | peoSyncIslandMig< EOT > | [private] |
| result_type typedef | eoF< void > | |
| nbMigrations | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| notifyReceiving() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| notifySending() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| notifySendingSyncReq() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| notifySynchronized() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| num_comm | Communicable | [static] |
| operator()() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | |
| out | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| pack() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| packSynchronizeReq() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| peoSyncIslandMig(unsigned __frequency, selector< TYPESELECT > &__select, replacement< TYPEREPLACE > &__replace, Topology &__topology) | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | |
| replace | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| resume() | Communicable | |
| select | peoSyncIslandMig< EOT > | [private] |
| select | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| sem_lock | Communicable | [protected] |
| sem_stop | Communicable | [protected] |
| send(Cooperative *__coop) | Cooperative | |
| setOwner(Runner &__runner) | Cooperative | |
| source | peoSyncIslandMig< EOT > | [private] |
| standbyMigration | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| stop() | Communicable | |
| sync | peoSyncIslandMig< EOT > | [private] |
| topology | peoSyncIslandMig< EOT > | [private] |
| sync | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| synchronizeCoopEx() | Cooperative | |
| topology | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [private] |
| unlock() | Communicable | |
| unpack() | peoSyncIslandMig< EOT > | [virtual] |
| unpack() | peoSyncIslandMig< TYPESELECT, TYPEREPLACE > | [virtual] |
| ~Communicable() | Communicable | [virtual] |
| ~eoF() | eoF< void > | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.html
index edd7ebfca..164a154eb 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.html
@@ -1,6 +1,6 @@
-
#include <peoSyncIslandMig.h>
-
Inheritance diagram for peoSyncIslandMig< EOT >: -

Inheritance diagram for peoSyncIslandMig< TYPESELECT, TYPEREPLACE >: +

Public Member Functions | |
| peoSyncIslandMig (unsigned __frequency, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination) | |
| peoSyncIslandMig (unsigned __frequency, selector< TYPESELECT > &__select, replacement< TYPEREPLACE > &__replace, Topology &__topology) | |
| Constructor for the peoSyncIslandMig 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. | |
| void | operator() () |
| +void | operator() () |
| Function operator to be called as checkpoint for performing the migration step. | |
| -void | pack () |
| operator | |
| +void | pack () |
| Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. | |
| -void | unpack () |
| Function realizing packages. | |
| +void | unpack () |
| Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. | |
| -void | notifySending () |
| Function reconstituting packages. | |
| +void | packSynchronizeReq () |
| Auxiliary function dealing with migration notifications. There is no need to explicitly call the function. | |
| Function packSynchronizeReq. | |
| +void | notifySending () |
| Function notifySending. | |
| +void | notifyReceiving () |
| Function notifyReceiving. | |
| +void | notifySendingSyncReq () |
| notifySendingSyncReq | |
| +void | notifySynchronized () |
| notifySynchronized | |
Private Member Functions | |
| -void | emigrate () |
| +void | emigrate () |
| -void | immigrate () |
| +void | immigrate () |
Private Attributes | |
| -eoPeriodicContinue< EOT > | cont |
| eoSyncContinue | cont |
| -eoSelect< EOT > & | select |
| +selector< TYPESELECT > & | select |
| -eoReplacement< EOT > & | replace |
| +replacement< TYPEREPLACE > & | replace |
| -Topology & | topology |
| +Topology & | topology |
| -eoPop< EOT > & | source |
| +std::queue< TYPEREPLACE > | imm |
| -eoPop< EOT > & | destination |
| +std::queue< TYPESELECT > | em |
| -std::queue< eoPop< EOT > > | imm |
| +std::queue< Cooperative * > | coop_em |
| -std::queue< eoPop< EOT > > | em |
| +sem_t | sync |
| -std::queue< Cooperative * > | coop_em |
| +bool | explicitPassive |
| -sem_t | sync |
| +bool | standbyMigration |
| +std::vector< Cooperative * > | in |
| +std::vector< Cooperative * > | out |
| +std::vector< Cooperative * > | all |
| +unsigned | nbMigrations |
-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.
-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:
-
| do { | |
| 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 |
| } while ( eaCheckpointContinue( population ) ); | // checkpoint operators are applied on the current population, including the migration operator, if any specified |
-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 Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:
-
| RingTopology migTopology; | // a simple ring topological model - each island communicates with two other islands |
-
| 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( - MIG_FREQ, migSelect, migReplace, migTopology, - population, population - ); | // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated |
-
| ... | |
| 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 |
| ... |
-
| 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 |
-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.
-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). +
-Definition at line 142 of file peoSyncIslandMig.h.
| peoSyncIslandMig< EOT >::peoSyncIslandMig | +peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::peoSyncIslandMig | ( | unsigned | __frequency, | @@ -215,32 +156,20 @@ template<class EOT>|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - | eoSelect< EOT > & | +selector< TYPESELECT > & | __select, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - | eoReplacement< EOT > & | +replacement< TYPEREPLACE > & | __replace, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Topology & | -__topology, | -||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - | - | eoPop< EOT > & | -__source, | -||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| - | - | eoPop< EOT > & | -__destination | + | __topology | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| @@ -251,59 +180,63 @@ template<class EOT> |
| unsigned | __frequency - frequency of the migrations - the migrations occur periodically; | |
| eoSelect< | EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; | |
| eoReplacement< | EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; | |
| Topology& | __topology - topological model to be followed when performing migrations; | |
| eoPop< | EOT >& __source - source population from which the emigrant individuals are selected; | |
| eoPop< | EOT >& __destination - destination population in which the immigrant population are integrated. | |
| unsigned | __frequency | |
| selector | <TYPESELECT> & __select | |
| replacement | <TYPEREPLACE> & __replace | |
| Topology& | __topology |
-Definition at line 206 of file peoSyncIslandMig.h. +Definition at line 139 of file peoSyncIslandMig.h.
-References Topology::add(), and peoSyncIslandMig< EOT >::sync. +References Topology::add(), and peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::sync.
-
| void peoSyncIslandMig< EOT >::operator() | -( | -- | ) | - [virtual] |
+ eoSyncContinue peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::cont [private] |
-Function operator to be called as checkpoint for performing the migration step. +
| eoSyncContinue | cont | |
| selector | <TYPESELECT> & select | |
| replacement | <TYPEREPLACE> & replace | |
| Topology& | topology | |
| std | :: queue< TYPEREPLACE > imm | |
| std | :: queue< TYPESELECT > em | |
| std | :: queue< Cooperative* > coop_em | |
| sem_t | sync | |
| bool | explicitPassive | |
| bool | standbyMigration | |
| std | :: vector< Cooperative* > in, out, all | |
| unsigned | nbMigrations |
-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. +Definition at line 124 of file peoSyncIslandMig.h.
-Implements eoF< void >. -
-Definition at line 280 of file peoSyncIslandMig.h. -
-References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. +Referenced by peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::operator()().
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.png b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.png
index 6a1b7c227..8f994148d 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoSyncIslandMig.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform-members.html
index a1a2a4231..f4ae09b0e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform-members.html
@@ -1,6 +1,6 @@
-| Communicable() | Communicable | |
| execute() | Service | [virtual] |
| functor_category() | eoUF< A1, R > | [static] |
| cross | peoTransform< EOT > | [private] |
| cross_rate | peoTransform< EOT > | [private] |
| execute() | peoTransform< EOT > | [virtual] |
| father | peoTransform< EOT > | [private] |
| getKey() | Communicable | |
| getOwner() | Service | |
| idx | peoTransform< EOT > | [private] |
| key | Communicable | [protected] |
| lock() | Communicable | |
| notifySendingAllResourceRequests() | Service | [virtual] |
| notifySendingData() | Service | [virtual] |
| mother | peoTransform< EOT > | [private] |
| mut | peoTransform< EOT > | [private] |
| mut_rate | peoTransform< EOT > | [private] |
| notifySendingAllResourceRequests() | peoTransform< EOT > | [virtual] |
| notifySendingData() | peoTransform< EOT > | [virtual] |
| notifySendingResourceRequest() | Service | [virtual] |
| num_comm | Communicable | [protected, static] |
| operator()(A1)=0 | eoUF< A1, R > | [pure virtual] |
| packData() | Service | [virtual] |
| num_comm | Communicable | [static] |
| num_term | peoTransform< EOT > | [private] |
| operator()(eoPop< EOT > &__pop) | peoTransform< EOT > | |
| packData() | peoTransform< EOT > | [virtual] |
| packResourceRequest() | Service | |
| packResult() | Service | [virtual] |
| packResult() | peoTransform< EOT > | [virtual] |
| peoTransform(eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate) | peoTransform< EOT > | |
| pop | peoTransform< EOT > | [private] |
| requestResourceRequest(unsigned __how_many=1) | Service | |
| resume() | Communicable | |
| sem_lock | Communicable | [protected] |
| setOwner(Thread &__owner) | Service | |
| stop() | Communicable | |
| unlock() | Communicable | |
| unpackData() | Service | [virtual] |
| unpackResult() | Service | [virtual] |
| unpackData() | peoTransform< EOT > | [virtual] |
| unpackResult() | peoTransform< EOT > | [virtual] |
| ~Communicable() | Communicable | [virtual] |
| ~eoFunctorBase() | eoFunctorBase | [virtual] |
| ~eoUF() | eoUF< A1, R > | [virtual] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.html b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.html
index f5abe2875..9774726c5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.html
@@ -1,6 +1,6 @@
-
#include <peoTransform.h>
@@ -37,28 +37,215 @@
Inheritance diagram for peoTransform< EOT >:

Public Member Functions | |
| peoTransform (eoQuadOp< EOT > &__cross, double __cross_rate, eoMonOp< EOT > &__mut, double __mut_rate) | |
| Constructor. | |
| void | operator() (eoPop< EOT > &__pop) |
| Operator. | |
| +void | packData () |
| Function realizing packages of data. | |
| +void | unpackData () |
| Function reconstituting packages of data. | |
| +void | execute () |
| Function which executes the algorithm. | |
| +void | packResult () |
| Function realizing packages of the result. | |
| +void | unpackResult () |
| Function reconstituting packages of result. | |
| +void | notifySendingData () |
| Function notifySendingData. | |
| +void | notifySendingAllResourceRequests () |
| Function notifySendingAllResourceRequests. | |
Private Attributes | |
| eoQuadOp< EOT > & | cross |
| +double | cross_rate |
| +eoMonOp< EOT > & | mut |
| +double | mut_rate |
| +unsigned | idx |
| +eoPop< EOT > * | pop |
| +EOT | father |
| +EOT | mother |
| +unsigned | num_term |
+
-Definition at line 48 of file peoTransform.h.
| peoTransform< EOT >::peoTransform | +( | +eoQuadOp< EOT > & | +__cross, | +|
| + | + | double | +__cross_rate, | +|
| + | + | eoMonOp< EOT > & | +__mut, | +|
| + | + | double | +__mut_rate | + |
| + | ) | ++ |
+Constructor. +
+
| eoQuadOp< | EOT >& __cross | |
| double | __cross_rate | |
| eoMonOp< | EOT >& __mut | |
| double | __mut_rate |
+Definition at line 108 of file peoTransform.h. +
+
| void peoTransform< EOT >::operator() | +( | +eoPop< EOT > & | +__pop | +) | ++ |
+Operator. +
+
| eoPop< | EOT >& __pop |
+Definition at line 176 of file peoTransform.h. +
+References peoTransform< EOT >::idx, peoTransform< EOT >::num_term, peoTransform< EOT >::pop, Service::requestResourceRequest(), and Communicable::stop(). +
+
eoQuadOp< EOT >& peoTransform< EOT >::cross [private] |
+
+
| eoQuadOp< | EOT >& cross | |
| double | cross_rate | |
| eoMonOp< | EOT >& mut | |
| double | mut_rate | |
| unsigned | idx | |
| eoPop< | EOT >* pop | |
| EOT | father | |
| mother | ||
| unsigned | num_term |
+Definition at line 98 of file peoTransform.h. +
+Referenced by peoTransform< EOT >::execute(). +
+
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.png b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.png
index d762a43a5..ca079bd0e 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.png and b/tags/dummy-tag/paradiseo-peo/doc/html/classpeoTransform.png differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/comm_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/comm_8cpp-source.html
index d9118ed38..c7eda64f0 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/comm_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/comm_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +comm.cpp
00001 /* 00002 * <comm.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -75,49 +75,66 @@ 00051 00052 static Communicator * the_thread; 00053 -00054 Communicator :: Communicator (int * __argc, char * * * __argv) { -00055 -00056 the_thread = this; -00057 initNode (__argc, __argv); -00058 loadRMCParameters (* __argc, * __argv); -00059 sem_post (& sem_comm_init); -00060 } +00054 +00055 Communicator :: Communicator (int * __argc, char * * * __argv) +00056 { +00057 +00058 the_thread = this; +00059 initNode (__argc, __argv); +00060 loadRMCParameters (* __argc, * __argv); 00061 -00062 void Communicator :: start () { -00063 -00064 while (true) { -00065 -00066 /* Zzz Zzz Zzz :-))) */ -00067 sleep (); -00068 sendMessages (); -00069 -00070 if (! atLeastOneActiveRunner ()) -00071 break; -00072 receiveMessages (); -00073 } -00074 waitBuffers (); -00075 printDebugMessage ("finalizing"); -00076 MPI_Finalize (); -00077 } +00062 sem_post (& sem_comm_init); +00063 } +00064 +00065 void Communicator :: start () +00066 { +00067 +00068 while (true) +00069 { +00070 +00071 /* Zzz Zzz Zzz :-))) */ +00072 sleep (); +00073 +00074 sendMessages (); +00075 +00076 if (! atLeastOneActiveRunner () && ! atLeastOneActiveThread() && allResourcesFree ()) +00077 break; 00078 -00079 void initCommunication () { -00080 -00081 sem_init (& sem_comm_init, 0, 0); -00082 } -00083 -00084 void waitNodeInitialization () { -00085 -00086 sem_wait (& sem_comm_init); -00087 } -00088 -00089 void wakeUpCommunicator () { +00079 receiveMessages (); +00080 } +00081 +00082 waitBuffers (); +00083 printDebugMessage ("finalizing"); +00084 +00085 //synchronizeNodes (); +00086 } +00087 +00088 void initCommunication () +00089 { 00090 -00091 the_thread -> wakeUp (); -00092 } -00093 -00094 -00095 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00091 static bool initializedSemaphore = false; +00092 +00093 if (initializedSemaphore) +00094 { +00095 sem_destroy(& sem_comm_init); +00096 } +00097 +00098 sem_init (& sem_comm_init, 0, 0); +00099 initializedSemaphore = true; +00100 } +00101 +00102 void waitNodeInitialization () +00103 { +00104 +00105 sem_wait (& sem_comm_init); +00106 } +00107 +00108 void wakeUpCommunicator () +00109 { +00110 +00111 the_thread -> wakeUp (); +00112 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/comm_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/comm_8h-source.html
index 4829f60ac..8f34f7e70 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/comm_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/comm_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +comm.h
00001 /* 00002 * <comm.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,24 +64,25 @@ 00040 #include "../../core/communicable.h" 00041 #include "../../core/reac_thread.h" 00042 -00043 class Communicator : public ReactiveThread { -00044 -00045 public : -00046 -00047 /* Ctor */ -00048 Communicator (int * __argc, char * * * __argv); -00049 -00050 void start (); -00051 }; -00052 -00053 extern void initCommunication (); -00054 -00055 extern void waitNodeInitialization (); -00056 -00057 extern void wakeUpCommunicator (); -00058 -00059 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00043 class Communicator : public ReactiveThread +00044 { +00045 +00046 public : +00047 +00048 /* Ctor */ +00049 Communicator (int * __argc, char * * * __argv); +00050 +00051 void start (); +00052 }; +00053 +00054 extern void initCommunication (); +00055 +00056 extern void waitNodeInitialization (); +00057 +00058 extern void wakeUpCommunicator (); +00059 +00060 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8cpp-source.html
index 3aa2cf96a..98d367608 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +communicable.cpp
00001 /* 00002 * <communicable.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -70,57 +70,70 @@ 00046 00047 unsigned Communicable :: num_comm = 0; 00048 -00049 Communicable :: Communicable () { -00050 -00051 comm_to_key [this] = key = ++ num_comm; -00052 key_to_comm.push_back (this); -00053 sem_init (& sem_lock, 0, 1); -00054 sem_init (& sem_stop, 0, 0); -00055 } -00056 -00057 Communicable :: ~ Communicable () { +00049 +00050 Communicable :: Communicable () +00051 { +00052 +00053 comm_to_key [this] = key = ++ num_comm; +00054 key_to_comm.push_back (this); +00055 sem_init (& sem_lock, 0, 1); +00056 sem_init (& sem_stop, 0, 0); +00057 } 00058 -00059 } -00060 -00061 COMM_ID Communicable :: getKey () { +00059 Communicable :: ~ Communicable () +00060 { +00061 } 00062 -00063 return key; -00064 } +00063 COMM_ID Communicable :: getKey () +00064 { 00065 -00066 Communicable * getCommunicable (COMM_ID __key) { -00067 -00068 assert (__key < key_to_comm.size ()); -00069 return key_to_comm [__key]; -00070 } +00066 return key; +00067 } +00068 +00069 Communicable * getCommunicable (COMM_ID __key) +00070 { 00071 -00072 COMM_ID getKey (const Communicable * __comm) { -00073 -00074 return comm_to_key [__comm]; -00075 } -00076 -00077 void Communicable :: lock () { +00072 assert (__key < key_to_comm.size ()); +00073 return key_to_comm [__key]; +00074 } +00075 +00076 COMM_ID getKey (const Communicable * __comm) +00077 { 00078 -00079 sem_wait (& sem_lock); +00079 return comm_to_key [__comm]; 00080 } 00081 -00082 void Communicable :: unlock () { -00083 -00084 sem_post (& sem_lock); -00085 } -00086 -00087 void Communicable :: stop () { -00088 -00089 sem_wait (& sem_stop); -00090 } -00091 -00092 void Communicable :: resume () { +00082 void Communicable :: lock () +00083 { +00084 +00085 sem_wait (& sem_lock); +00086 } +00087 +00088 void Communicable :: unlock () +00089 { +00090 +00091 sem_post (& sem_lock); +00092 } 00093 -00094 sem_post (& sem_stop); -00095 } -00096 -00097 +00094 void Communicable :: stop () +00095 { +00096 sem_wait (& sem_stop); +00097 } 00098 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00099 void Communicable :: resume () +00100 { +00101 +00102 sem_post (& sem_stop); +00103 } +00104 +00105 void initCommunicableEnv () +00106 { +00107 +00108 key_to_comm.resize (1); +00109 comm_to_key.clear (); +00110 Communicable :: num_comm = 0; +00111 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8h-source.html
index f625215d2..e4b0c1b40 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/communicable_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +communicable.h
00001 /* 00002 * <communicable.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,41 +63,45 @@ 00039 00040 #include <semaphore.h> 00041 -00042 typedef unsigned COMM_ID; -00043 -00044 class Communicable { -00045 -00046 public : +00042 +00043 typedef unsigned COMM_ID; +00044 +00045 class Communicable +00046 { 00047 -00048 Communicable (); -00049 -00050 virtual ~ Communicable (); +00048 public : +00049 +00050 Communicable (); 00051 -00052 COMM_ID getKey (); +00052 virtual ~ Communicable (); 00053 -00054 void lock (); /* It suspends the current process if the semaphore is locked */ -00055 void unlock (); /* It unlocks the shared semaphore */ -00056 -00057 void stop (); /* It suspends the current process */ -00058 void resume (); /* It resumes ___________ */ -00059 -00060 protected : +00054 COMM_ID getKey (); +00055 +00056 void lock (); /* It suspends the current process if the semaphore is locked */ +00057 void unlock (); /* It unlocks the shared semaphore */ +00058 +00059 void stop (); /* It suspends the current process */ +00060 void resume (); /* It resumes ___________ */ 00061 -00062 COMM_ID key; +00062 public : 00063 -00064 sem_t sem_lock; -00065 -00066 sem_t sem_stop; +00064 static unsigned num_comm; +00065 +00066 protected : 00067 -00068 static unsigned num_comm; -00069 }; -00070 -00071 extern Communicable * getCommunicable (COMM_ID __key); -00072 -00073 //extern COMM_ID getKey (const Communicable * __comm); +00068 COMM_ID key; +00069 +00070 sem_t sem_lock; +00071 +00072 sem_t sem_stop; +00073 }; 00074 -00075 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00075 extern void initCommunicableEnv (); +00076 +00077 extern Communicable * getCommunicable (COMM_ID __key); +00078 +00079 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/cooperative_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/cooperative_8h-source.html
index aedb3ed27..6def86f71 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/cooperative_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/cooperative_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +cooperative.h
00001 /* 00002 * <cooperative.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,37 +61,49 @@ 00037 #ifndef __cooperative_h 00038 #define __cooperative_h 00039 -00040 #include "communicable.h" -00041 #include "runner.h" -00042 -00043 typedef unsigned COOP_ID; -00044 -00045 class Cooperative : public Communicable { -00046 -00047 public : +00040 #include <vector> +00041 #include "communicable.h" +00042 #include "runner.h" +00043 +00044 typedef unsigned COOP_ID; +00045 +00046 class Cooperative : public Communicable +00047 { 00048 -00049 Runner * getOwner (); +00049 public : 00050 -00051 void setOwner (Runner & __runner); +00051 Runner * getOwner (); 00052 -00053 virtual void pack () = 0; -00054 -00055 virtual void unpack () = 0; +00053 void setOwner (Runner & __runner); +00054 +00055 virtual void pack () = 0; 00056 -00057 void send (Cooperative * __coop); +00057 virtual void unpack () = 0; 00058 -00059 virtual void notifySending (); +00059 virtual void packSynchronizeReq () = 0; 00060 -00061 private : +00061 void send (Cooperative * __coop); 00062 -00063 Runner * owner; +00063 void synchronizeCoopEx (); 00064 -00065 }; +00065 virtual void notifySending (); 00066 -00067 extern Cooperative * getCooperative (COOP_ID __key); +00067 virtual void notifyReceiving (); 00068 -00069 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00069 virtual void notifySendingSyncReq (); +00070 +00071 virtual void notifySynchronized (); +00072 +00073 private : +00074 +00075 Runner * owner; +00076 +00077 }; +00078 +00079 extern Cooperative * getCooperative (COOP_ID __key); +00080 +00081 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/core_2runner_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/core_2runner_8cpp-source.html
index 5cc7127ca..280f9a20f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/core_2runner_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/core_2runner_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +runner.cpp
00001 /* 00002 * <runner.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,96 +65,189 @@ 00041 #include "peo_debug.h" 00042 #include "messaging.h" 00043 -00044 static unsigned num_act = 0; /* Number of active runners */ -00045 -00046 static std :: vector <pthread_t *> ll_threads; /* Low-level runner threads */ -00047 -00048 static std :: vector <Runner *> the_runners; +00044 #include "../rmc/mpi/mess.h" +00045 #include "../rmc/mpi/tags.h" +00046 +00047 #include "../rmc/mpi/node.h" +00048 #include "../rmc/mpi/schema.h" 00049 -00050 static unsigned num_runners = 0; -00051 -00052 Runner :: Runner () { -00053 -00054 id = ++ num_runners; -00055 the_runners.push_back (this); -00056 sem_init (& sem_start, 0, 0); -00057 num_act ++; -00058 } -00059 -00060 extern int getNodeRank (); +00050 +00051 static std :: vector <pthread_t *> ll_threads; /* Low-level runner threads */ +00052 +00053 static std :: vector <Runner *> the_runners; +00054 +00055 static unsigned num_def_runners = 0; /* Number of defined runners */ +00056 +00057 static unsigned num_local_exec_runners = 0; /* Number of locally executing runners */ +00058 +00059 static unsigned num_exec_runners = 0; /* Number of globally executing runners */ +00060 00061 -00062 extern int getNumberOfNodes (); +00062 extern int getNodeRank (); 00063 -00064 void unpackTerminationOfRunner () { -00065 -00066 RUNNER_ID id; -00067 unpack (id); -00068 num_act --; -00069 printDebugMessage ("I'm noticed of the termination of a runner"); -00070 if (! num_act) { -00071 printDebugMessage ("all the runners have terminated. Now stopping the reactive threads."); -00072 stopReactiveThreads (); -00073 } -00074 } -00075 -00076 bool atLeastOneActiveRunner () { -00077 -00078 return num_act; +00064 extern int getNumberOfNodes (); +00065 +00066 extern void wakeUpCommunicator (); +00067 +00068 +00069 Runner :: Runner () +00070 { +00071 +00072 exec_id = 0; +00073 def_id = ++ num_def_runners; +00074 +00075 the_runners.push_back (this); +00076 +00077 sem_init (& sem_start, 0, 0); +00078 sem_init (& sem_cntxt, 0, 0); 00079 } 00080 -00081 RUNNER_ID Runner :: getID () { -00082 -00083 return id; -00084 } -00085 -00086 void Runner :: start () { -00087 -00088 setActive (); -00089 sem_post (& sem_start); -00090 run (); -00091 terminate (); -00092 } -00093 -00094 void Runner :: notifySendingTermination () { +00081 RUNNER_ID Runner :: getDefinitionID () +00082 { +00083 +00084 return def_id; +00085 } +00086 +00087 RUNNER_ID Runner :: getExecutionID () +00088 { +00089 +00090 return exec_id; +00091 } +00092 +00093 void Runner :: setExecutionID (const RUNNER_ID& execution_id) +00094 { 00095 -00096 /* -00097 char b [1000]; -00098 sprintf (b, "Il reste encore %d !!!!!!!!!!!!", n); -00099 printDebugMessage (b); -00100 */ -00101 printDebugMessage ("je suis informe que tout le monde a recu ma terminaison"); -00102 setPassive (); -00103 -00104 } -00105 -00106 void Runner :: waitStarting () { +00096 exec_id = execution_id; +00097 } +00098 +00099 Runner * getRunner (RUNNER_ID __key) +00100 { +00101 +00102 return dynamic_cast <Runner *> (getCommunicable (__key)); +00103 } +00104 +00105 void initializeContext () +00106 { 00107 -00108 sem_wait (& sem_start); -00109 } -00110 -00111 Runner * getRunner (RUNNER_ID __key) { -00112 -00113 return dynamic_cast <Runner *> (getCommunicable (__key)); -00114 } -00115 -00116 void startRunners () { -00117 -00118 /* Runners */ -00119 for (unsigned i = 0; i < the_runners.size (); i ++) -00120 if (the_runners [i] -> isLocal ()) { -00121 addThread (the_runners [i], ll_threads); -00122 the_runners [i] -> waitStarting (); -00123 } -00124 printDebugMessage ("launched the parallel runners"); -00125 } -00126 +00108 num_local_exec_runners = 0; +00109 +00110 // setting up the execution IDs & counting the number of local exec. runners +00111 for (unsigned i = 0; i < the_runners.size (); i ++) +00112 { +00113 the_runners [i] -> setExecutionID ( my_node -> execution_id_run[ i ] ); +00114 if (the_runners [i] -> isAssignedLocally ()) num_local_exec_runners ++; +00115 } +00116 +00117 collectiveCountOfRunners( &num_local_exec_runners, &num_exec_runners ); +00118 +00119 // synchronizeNodes (); +00120 +00121 for (unsigned i = 0; i < the_runners.size (); i ++) +00122 if (the_runners [i] -> isAssignedLocally ()) the_runners [i] -> notifyContextInitialized (); +00123 } +00124 +00125 void Runner :: waitStarting () +00126 { 00127 -00128 void joinRunners () { -00129 +00128 sem_wait (& sem_start); +00129 } 00130 -00131 joinThreads (ll_threads); -00132 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00131 void Runner :: waitContextInitialization () +00132 { +00133 +00134 sem_wait (& sem_cntxt); +00135 } +00136 +00137 void Runner :: start () +00138 { +00139 +00140 setActive (); +00141 +00142 sem_post (& sem_start); +00143 +00144 waitContextInitialization (); +00145 run (); +00146 terminate (); +00147 } +00148 +00149 void startRunners () +00150 { +00151 +00152 /* Runners */ +00153 for (unsigned i = 0; i < the_runners.size (); i ++) +00154 if (the_runners [i] -> isAssignedLocally ()) +00155 { +00156 addThread (the_runners [i], ll_threads); +00157 the_runners [i] -> waitStarting (); +00158 } +00159 +00160 printDebugMessage ("launched the parallel runners"); +00161 } +00162 +00163 void joinRunners () +00164 { +00165 +00166 joinThreads (ll_threads); +00167 the_runners.clear(); +00168 } +00169 +00170 bool atLeastOneActiveRunner () +00171 { +00172 +00173 return num_exec_runners; +00174 } +00175 +00176 unsigned numberOfActiveRunners () +00177 { +00178 +00179 return num_exec_runners; +00180 } +00181 +00182 void Runner :: notifyContextInitialized () +00183 { +00184 +00185 sem_post (& sem_cntxt); +00186 } +00187 +00188 void Runner :: notifySendingTermination () +00189 { +00190 +00191 printDebugMessage ("I am informed that everyone received my termination notification."); +00192 setPassive (); +00193 } +00194 +00195 void unpackTerminationOfRunner () +00196 { +00197 +00198 RUNNER_ID finished_id; +00199 unpack (finished_id); +00200 +00201 num_exec_runners --; +00202 +00203 printDebugMessage ("I'm noticed of the termination of a runner"); +00204 +00205 if (!num_exec_runners) +00206 { +00207 +00208 printDebugMessage ("All the runners have terminated - now stopping the reactive threads."); +00209 stopReactiveThreads (); +00210 printDebugMessage ("Reactive threads stopped!"); +00211 } +00212 +00213 wakeUpCommunicator (); +00214 } +00215 +00216 void initRunnersEnv () +00217 { +00218 +00219 ll_threads.clear (); +00220 the_runners.clear (); +00221 +00222 num_def_runners = 0; +00223 num_local_exec_runners = 0; +00224 num_exec_runners = 0; +00225 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/core_2service_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/core_2service_8cpp-source.html
index f9385b2e8..7863f7411 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/core_2service_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/core_2service_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +service.cpp
00001 /* 00002 * <service.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,55 +60,53 @@ 00036 00037 #include "service.h" 00038 -00039 void Service :: setOwner (Thread & __owner) { -00040 -00041 owner = & __owner; -00042 } -00043 -00044 Thread * Service :: getOwner () { -00045 -00046 return owner; -00047 } -00048 -00049 Service * getService (SERVICE_ID __key) { +00039 void Service :: setOwner (Thread & __owner) +00040 { +00041 +00042 owner = & __owner; +00043 } +00044 +00045 Thread * Service :: getOwner () +00046 { +00047 +00048 return owner; +00049 } 00050 -00051 return dynamic_cast <Service *> (getCommunicable (__key)); -00052 } +00051 Service * getService (SERVICE_ID __key) +00052 { 00053 -00054 void Service :: notifySendingData () { -00055 -00056 } -00057 void Service :: notifySendingResourceRequest () { -00058 -00059 num_sent_rr --; -00060 if (! num_sent_rr) -00061 notifySendingAllResourceRequests (); -00062 } -00063 -00064 void Service :: notifySendingAllResourceRequests () { -00065 +00054 return dynamic_cast <Service *> (getCommunicable (__key)); +00055 } +00056 +00057 void Service :: notifySendingData () +00058 { } +00059 +00060 void Service :: notifySendingResourceRequest () +00061 { +00062 +00063 num_sent_rr --; +00064 if (! num_sent_rr) +00065 notifySendingAllResourceRequests (); 00066 } 00067 -00068 void Service :: packData () { -00069 -00070 } -00071 -00072 void Service :: unpackData () { +00068 void Service :: notifySendingAllResourceRequests () +00069 { } +00070 +00071 void Service :: packData () +00072 {} 00073 -00074 } -00075 -00076 void Service :: execute () { -00077 -00078 } -00079 -00080 void Service :: packResult () { -00081 -00082 } -00083 -00084 void Service :: unpackResult () { -00085 -00086 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00074 void Service :: unpackData () +00075 {} +00076 +00077 void Service :: execute () +00078 {} +00079 +00080 void Service :: packResult () +00081 {} +00082 +00083 void Service :: unpackResult () +00084 {} +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/data_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/data_8cpp-source.html
index 47c771d78..1edc3ded2 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/data_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/data_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +data.cpp
00001 /* 00002 * <data.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -72,83 +72,89 @@ 00048 #define MAX_FIELD_LENGTH 1000 00049 #define MAX_LINE_LENGTH 1000 00050 -00051 static void getNextField (FILE * __f, char * __buff) { -00052 -00053 char trash [MAX_TRASH_LENGTH]; -00054 -00055 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ -00056 fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ -00057 fgetc (__f); -00058 } -00059 -00060 static void getLine (FILE * __f, char * __buff) { -00061 -00062 char trash [MAX_TRASH_LENGTH]; +00051 static void getNextField (FILE * __f, char * __buff) +00052 { +00053 +00054 char trash [MAX_TRASH_LENGTH]; +00055 +00056 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ +00057 fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ +00058 fgetc (__f); +00059 } +00060 +00061 static void getLine (FILE * __f, char * __buff) +00062 { 00063 -00064 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ -00065 fscanf (__f, "%[^\n]", __buff); /* Reading the line */ -00066 } -00067 -00068 void loadData (const char * __filename) { +00064 char trash [MAX_TRASH_LENGTH]; +00065 +00066 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ +00067 fscanf (__f, "%[^\n]", __buff); /* Reading the line */ +00068 } 00069 -00070 FILE * f = fopen (__filename, "r"); -00071 -00072 if (f) { -00073 -00074 printf ("Loading '%s'.\n", __filename); -00075 -00076 char field [MAX_FIELD_LENGTH]; -00077 -00078 getNextField (f, field); /* Name */ -00079 assert (strstr (field, "NAME")); -00080 getNextField (f, field); -00081 printf ("NAME: %s.\n", field); -00082 -00083 getNextField (f, field); /* Comment */ -00084 assert (strstr (field, "COMMENT")); -00085 getLine (f, field); -00086 printf ("COMMENT: %s.\n", field); -00087 -00088 getNextField (f, field); /* Type */ -00089 assert (strstr (field, "TYPE")); -00090 getNextField (f, field); -00091 printf ("TYPE: %s.\n", field); -00092 -00093 getNextField (f, field); /* Dimension */ -00094 assert (strstr (field, "DIMENSION")); -00095 getNextField (f, field); -00096 printf ("DIMENSION: %s.\n", field); -00097 numNodes = atoi (field); -00098 -00099 getNextField (f, field); /* Edge weight type */ -00100 assert (strstr (field, "EDGE_WEIGHT_TYPE")); -00101 getNextField (f, field); -00102 printf ("EDGE_WEIGHT_TYPE: %s.\n", field); -00103 -00104 getNextField (f, field); /* Node coord section */ -00105 assert (strstr (field, "NODE_COORD_SECTION")); -00106 loadNodes (f); -00107 -00108 getNextField (f, field); /* End of file */ -00109 assert (strstr (field, "EOF")); -00110 printf ("EOF.\n"); -00111 } -00112 else { -00113 -00114 fprintf (stderr, "Can't open '%s'.\n", __filename); -00115 exit (1); -00116 } -00117 } +00070 void loadData (const char * __filename) +00071 { +00072 +00073 FILE * f = fopen (__filename, "r"); +00074 +00075 if (f) +00076 { +00077 +00078 printf ("Loading '%s'.\n", __filename); +00079 +00080 char field [MAX_FIELD_LENGTH]; +00081 +00082 getNextField (f, field); /* Name */ +00083 assert (strstr (field, "NAME")); +00084 getNextField (f, field); +00085 printf ("NAME: %s.\n", field); +00086 +00087 getNextField (f, field); /* Comment */ +00088 assert (strstr (field, "COMMENT")); +00089 getLine (f, field); +00090 printf ("COMMENT: %s.\n", field); +00091 +00092 getNextField (f, field); /* Type */ +00093 assert (strstr (field, "TYPE")); +00094 getNextField (f, field); +00095 printf ("TYPE: %s.\n", field); +00096 +00097 getNextField (f, field); /* Dimension */ +00098 assert (strstr (field, "DIMENSION")); +00099 getNextField (f, field); +00100 printf ("DIMENSION: %s.\n", field); +00101 numNodes = atoi (field); +00102 +00103 getNextField (f, field); /* Edge weight type */ +00104 assert (strstr (field, "EDGE_WEIGHT_TYPE")); +00105 getNextField (f, field); +00106 printf ("EDGE_WEIGHT_TYPE: %s.\n", field); +00107 +00108 getNextField (f, field); /* Node coord section */ +00109 assert (strstr (field, "NODE_COORD_SECTION")); +00110 loadNodes (f); +00111 +00112 getNextField (f, field); /* End of file */ +00113 assert (strstr (field, "EOF")); +00114 printf ("EOF.\n"); +00115 } +00116 else +00117 { 00118 -00119 void loadData (eoParser & __parser) { -00120 -00121 /* Getting the path of the instance */ -00122 -00123 eoValueParam <std :: string> param ("", "inst", "Path of the instance") ; -00124 __parser.processParam (param) ; -00125 loadData (param.value ().c_str ()); -00126 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00119 fprintf (stderr, "Can't open '%s'.\n", __filename); +00120 exit (1); +00121 } +00122 } +00123 +00124 void loadData (eoParser & __parser) +00125 { +00126 +00127 /* Getting the path of the instance */ +00128 +00129 eoValueParam <std :: string> param ("", "inst", "Path of the instance") ; +00130 __parser.processParam (param) ; +00131 loadData (param.value ().c_str ()); +00132 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/data_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/data_8h-source.html
index 88fa11847..dba8af965 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/data_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/data_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +data.h
00001 /* 00002 * <data.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,10 +65,10 @@ 00041 00042 extern void loadData (const char * __filename); 00043 -00044 extern void loadData (eoParser & __parser); +00044 extern void loadData (eoParser & __parser); 00045 00046 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/display_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/display_8cpp-source.html
index 782dc66f4..f43ca3d50 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/display_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/display_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +display.cpp
00001 /* 00002 * <display.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -80,7 +80,7 @@ 00056 00057 /* this variable will contain the handle to the returned graphics context. */ 00058 static GC gc; -00059 +00059 00060 /* this variable will contain the pointer to the Display structure */ 00061 static Display* disp; 00062 @@ -91,83 +91,87 @@ 00067 00068 /* Create a new backing pixmap of the appropriate size */ 00069 -00070 /* Best tour */ -00071 /* -00072 gdk_gc_set_line_attributes (gc, 2, GDK_LINE_ON_OFF_DASH, GDK_CAP_NOT_LAST, GDK_JOIN_MITER) ; +00070 /* Best tour */ +00071 /* +00072 gdk_gc_set_line_attributes (gc, 2, GDK_LINE_ON_OFF_DASH, GDK_CAP_NOT_LAST, GDK_JOIN_MITER) ; 00073 -00074 gdk_gc_set_foreground (gc, & color_green) ; +00074 gdk_gc_set_foreground (gc, & color_green) ; 00075 -00076 for (int i = 0 ; i < (int) numNodes ; i ++) { +00076 for (int i = 0 ; i < (int) numNodes ; i ++) { 00077 -00078 gdk_draw_line (pixmap, gc, -00079 X_new_coord [opt_route [i]], -00080 Y_new_coord [opt_route [i]], -00081 X_new_coord [opt_route [(i + 1) % numNodes]], -00082 Y_new_coord [opt_route [(i + 1) % numNodes]]); -00083 -00084 }*/ +00078 gdk_draw_line (pixmap, gc, +00079 X_new_coord [opt_route [i]], +00080 Y_new_coord [opt_route [i]], +00081 X_new_coord [opt_route [(i + 1) % numNodes]], +00082 Y_new_coord [opt_route [(i + 1) % numNodes]]); +00083 +00084 }*/ 00085 -00086 void openMainWindow (const char * __filename) { -00087 -00088 filename = __filename; -00089 -00090 /* Map */ -00091 int map_width = (int) (X_max - X_min); -00092 int map_height = (int) (Y_max - Y_min); -00093 int map_side = std :: max (map_width, map_height); -00094 -00095 /* Calculate the window's width and height. */ -00096 int win_width = (int) (screen_width * RATIO * map_width / map_side); -00097 int win_height = (int) (screen_height * RATIO * map_height / map_side); -00098 -00099 /* Computing the coordinates */ -00100 X_new_coord = new unsigned [numNodes]; -00101 Y_new_coord = new unsigned [numNodes]; -00102 -00103 for (unsigned i = 0; i < numNodes; i ++) { -00104 X_new_coord [i] = (unsigned) (win_width * (1.0 - (X_coord [i] - X_min) / map_width) + BORDER); -00105 Y_new_coord [i] = (unsigned) (win_height * (1.0 - (Y_coord [i] - Y_min) / map_height) + BORDER); -00106 } -00107 -00108 /* Initialisation */ -00109 XGCValues val ; -00110 -00111 disp = XOpenDisplay (NULL) ; -00112 screen = DefaultScreen (disp) ; -00113 win = XCreateSimpleWindow (disp, RootWindow (disp, screen), 0, 0, win_width + 2 * BORDER, win_height + 2 * BORDER, 2, BlackPixel (disp, screen), WhitePixel (disp, screen)) ; -00114 val.foreground = BlackPixel(disp, screen) ; -00115 val.background = WhitePixel(disp, screen) ; -00116 gc = XCreateGC (disp, win, GCForeground | GCBackground, & val) ; -00117 -00118 XMapWindow (disp, win) ; -00119 XFlush (disp) ; -00120 -00121 while (true) { -00122 XClearWindow (disp, win) ; -00123 -00124 /* Vertices as circles */ -00125 for (unsigned i = 1 ; i < numNodes ; i ++) -00126 XDrawArc (disp, win, gc, X_new_coord [i] - 1, Y_new_coord [i] - 1, 3, 3, 0, 364 * 64) ; -00127 -00128 /* New tour */ -00129 std :: ifstream f (filename); -00130 if (f) { -00131 Route route; -00132 f >> route; -00133 f.close (); -00134 -00135 for (int i = 0; i < (int) numNodes; i ++) -00136 XDrawLine (disp, win, gc, -00137 X_new_coord [route [i]], -00138 Y_new_coord [route [i]], -00139 X_new_coord [route [(i + 1) % numNodes]], -00140 Y_new_coord [route [(i + 1) % numNodes]]); -00141 } -00142 XFlush (disp) ; -00143 sleep (1) ; -00144 } -00145 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00086 void openMainWindow (const char * __filename) +00087 { +00088 +00089 filename = __filename; +00090 +00091 /* Map */ +00092 int map_width = (int) (X_max - X_min); +00093 int map_height = (int) (Y_max - Y_min); +00094 int map_side = std :: max (map_width, map_height); +00095 +00096 /* Calculate the window's width and height. */ +00097 int win_width = (int) (screen_width * RATIO * map_width / map_side); +00098 int win_height = (int) (screen_height * RATIO * map_height / map_side); +00099 +00100 /* Computing the coordinates */ +00101 X_new_coord = new unsigned [numNodes]; +00102 Y_new_coord = new unsigned [numNodes]; +00103 +00104 for (unsigned i = 0; i < numNodes; i ++) +00105 { +00106 X_new_coord [i] = (unsigned) (win_width * (1.0 - (X_coord [i] - X_min) / map_width) + BORDER); +00107 Y_new_coord [i] = (unsigned) (win_height * (1.0 - (Y_coord [i] - Y_min) / map_height) + BORDER); +00108 } +00109 +00110 /* Initialisation */ +00111 XGCValues val ; +00112 +00113 disp = XOpenDisplay (NULL) ; +00114 screen = DefaultScreen (disp) ; +00115 win = XCreateSimpleWindow (disp, RootWindow (disp, screen), 0, 0, win_width + 2 * BORDER, win_height + 2 * BORDER, 2, BlackPixel (disp, screen), WhitePixel (disp, screen)) ; +00116 val.foreground = BlackPixel(disp, screen) ; +00117 val.background = WhitePixel(disp, screen) ; +00118 gc = XCreateGC (disp, win, GCForeground | GCBackground, & val) ; +00119 +00120 XMapWindow (disp, win) ; +00121 XFlush (disp) ; +00122 +00123 while (true) +00124 { +00125 XClearWindow (disp, win) ; +00126 +00127 /* Vertices as circles */ +00128 for (unsigned i = 1 ; i < numNodes ; i ++) +00129 XDrawArc (disp, win, gc, X_new_coord [i] - 1, Y_new_coord [i] - 1, 3, 3, 0, 364 * 64) ; +00130 +00131 /* New tour */ +00132 std :: ifstream f (filename); +00133 if (f) +00134 { +00135 Route route; +00136 f >> route; +00137 f.close (); +00138 +00139 for (int i = 0; i < (int) numNodes; i ++) +00140 XDrawLine (disp, win, gc, +00141 X_new_coord [route [i]], +00142 Y_new_coord [route [i]], +00143 X_new_coord [route [(i + 1) % numNodes]], +00144 Y_new_coord [route [(i + 1) % numNodes]]); +00145 } +00146 XFlush (disp) ; +00147 sleep (1) ; +00148 } +00149 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/display_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/display_8h-source.html
index ff79c926d..70c6bf160 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/display_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/display_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +display.h
00001 /* 00002 * <display.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,7 +66,7 @@ 00042 extern void openMainWindow (const char * __filename); 00043 00044 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8cpp-source.html
index 3e1c1f630..c62680dc7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +display_best_route.cpp
00001 /* 00002 * <display_best_route.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,17 +62,17 @@ 00038 #include "display.h" 00039 00040 DisplayBestRoute :: DisplayBestRoute (eoPop <Route> & __pop -00041 ) : pop (__pop) { -00042 -00043 -00044 } -00045 -00046 void DisplayBestRoute :: operator () () { -00047 +00041 ) : pop (__pop) +00042 { +00043 } +00044 +00045 void DisplayBestRoute :: operator () () +00046 { +00047 00048 displayRoute (pop.best_element ()); 00049 } 00050 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8h-source.html
index 41d920518..768b41bde 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/display__best__route_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +display_best_route.h
00001 /* 00002 * <display_best_route.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -67,22 +67,23 @@ 00043 00044 #include "route.h" 00045 -00046 class DisplayBestRoute : public eoUpdater { -00047 -00048 public : -00049 -00050 DisplayBestRoute (eoPop <Route> & __pop); -00051 -00052 void operator () (); -00053 -00054 private : -00055 -00056 eoPop <Route> & pop; -00057 -00058 }; -00059 -00060 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00046 class DisplayBestRoute : public eoUpdater +00047 { +00048 +00049 public : +00050 +00051 DisplayBestRoute (eoPop <Route> & __pop); +00052 +00053 void operator () (); +00054 +00055 private : +00056 +00057 eoPop <Route> & pop; +00058 +00059 }; +00060 +00061 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8cpp-source.html
index 2741022d3..0c7a38ef5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +edge_xover.cpp
00001 /* 00002 * <edge_xover.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,110 +65,120 @@ 00041 00042 #include "edge_xover.h" 00043 -00044 void EdgeXover :: build_map (const Route & __par1, const Route & __par2) { -00045 -00046 unsigned len = __par1.size () ; -00047 -00048 /* Initialization */ -00049 _map.clear () ; -00050 _map.resize (len) ; -00051 -00052 for (unsigned i = 0 ; i < len ; i ++) { -00053 _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ; -00054 _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ; -00055 _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ; -00056 _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ; -00057 } -00058 -00059 visited.clear () ; -00060 visited.resize (len, false) ; -00061 } -00062 -00063 void EdgeXover :: remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) { -00064 -00065 std :: set <unsigned> & neigh = __map [__vertex] ; -00066 -00067 for (std :: set <unsigned> :: iterator it = neigh.begin () ; -00068 it != neigh.end () ; -00069 it ++) -00070 __map [* it].erase (__vertex) ; -00071 -00072 } -00073 -00074 void EdgeXover :: add_vertex (unsigned __vertex, Route & __child) { -00075 -00076 visited [__vertex] = true ; -00077 __child.push_back (__vertex) ; -00078 remove_entry (__vertex, _map) ; /* Removing entries */ -00079 } -00080 -00081 void EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { -00082 -00083 build_map (__par1, __par2) ; -00084 -00085 unsigned len = __par1.size () ; -00086 -00087 /* Go ! */ -00088 __child.clear () ; -00089 -00090 unsigned cur_vertex = rng.random (len) ; -00091 -00092 add_vertex (cur_vertex, __child) ; -00093 -00094 for (unsigned i = 1 ; i < len ; i ++) { -00095 -00096 unsigned len_min_entry = MAXINT ; -00097 -00098 std :: set <unsigned> & neigh = _map [cur_vertex] ; -00099 -00100 for (std :: set <unsigned> :: iterator it = neigh.begin () ; -00101 it != neigh.end () ; -00102 it ++) { -00103 unsigned l = _map [* it].size () ; -00104 if (len_min_entry > l) -00105 len_min_entry = l ; -00106 } -00107 -00108 std :: vector <unsigned> cand ; /* Candidates */ -00109 -00110 for (std :: set <unsigned> :: iterator it = neigh.begin () ; -00111 it != neigh.end () ; -00112 it ++) { -00113 unsigned l = _map [* it].size () ; -00114 if (len_min_entry == l) -00115 cand.push_back (* it) ; -00116 } -00117 -00118 if (! cand.size ()) { -00119 -00120 /* Oh no ! Implicit mutation */ -00121 for (unsigned j = 0 ; j < len ; j ++) -00122 if (! visited [j]) -00123 cand.push_back (j) ; -00124 } +00044 void EdgeXover :: build_map (const Route & __par1, const Route & __par2) +00045 { +00046 +00047 unsigned len = __par1.size () ; +00048 +00049 /* Initialization */ +00050 _map.clear () ; +00051 _map.resize (len) ; +00052 +00053 for (unsigned i = 0 ; i < len ; i ++) +00054 { +00055 _map [__par1 [i]].insert (__par1 [(i + 1) % len]) ; +00056 _map [__par2 [i]].insert (__par2 [(i + 1) % len]) ; +00057 _map [__par1 [i]].insert (__par1 [(i - 1 + len) % len]) ; +00058 _map [__par2 [i]].insert (__par2 [(i - 1 + len) % len]) ; +00059 } +00060 +00061 visited.clear () ; +00062 visited.resize (len, false) ; +00063 } +00064 +00065 void EdgeXover :: remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) +00066 { +00067 +00068 std :: set <unsigned> & neigh = __map [__vertex] ; +00069 +00070 for (std :: set <unsigned> :: iterator it = neigh.begin () ; +00071 it != neigh.end () ; +00072 it ++) +00073 __map [* it].erase (__vertex) ; +00074 +00075 } +00076 +00077 void EdgeXover :: add_vertex (unsigned __vertex, Route & __child) +00078 { +00079 +00080 visited [__vertex] = true ; +00081 __child.push_back (__vertex) ; +00082 remove_entry (__vertex, _map) ; /* Removing entries */ +00083 } +00084 +00085 void EdgeXover :: cross (const Route & __par1, const Route & __par2, Route & __child) +00086 { +00087 +00088 build_map (__par1, __par2) ; +00089 +00090 unsigned len = __par1.size () ; +00091 +00092 /* Go ! */ +00093 __child.clear () ; +00094 +00095 unsigned cur_vertex = rng.random (len) ; +00096 +00097 add_vertex (cur_vertex, __child) ; +00098 +00099 for (unsigned i = 1 ; i < len ; i ++) +00100 { +00101 +00102 unsigned len_min_entry = MAXINT ; +00103 +00104 std :: set <unsigned> & neigh = _map [cur_vertex] ; +00105 +00106 for (std :: set <unsigned> :: iterator it = neigh.begin () ; +00107 it != neigh.end () ; +00108 it ++) +00109 { +00110 unsigned l = _map [* it].size () ; +00111 if (len_min_entry > l) +00112 len_min_entry = l ; +00113 } +00114 +00115 std :: vector <unsigned> cand ; /* Candidates */ +00116 +00117 for (std :: set <unsigned> :: iterator it = neigh.begin () ; +00118 it != neigh.end () ; +00119 it ++) +00120 { +00121 unsigned l = _map [* it].size () ; +00122 if (len_min_entry == l) +00123 cand.push_back (* it) ; +00124 } 00125 -00126 cur_vertex = cand [rng.random (cand.size ())] ; -00127 -00128 add_vertex (cur_vertex, __child) ; -00129 } -00130 } -00131 -00132 bool EdgeXover :: operator () (Route & __route1, Route & __route2) { -00133 -00134 // Init. copy -00135 Route par [2] ; -00136 par [0] = __route1 ; -00137 par [1] = __route2 ; -00138 -00139 cross (par [0], par [1], __route1) ; -00140 cross (par [1], par [0], __route2) ; -00141 -00142 __route1.invalidate () ; -00143 __route2.invalidate () ; -00144 -00145 return true ; -00146 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00126 if (! cand.size ()) +00127 { +00128 +00129 /* Oh no ! Implicit mutation */ +00130 for (unsigned j = 0 ; j < len ; j ++) +00131 if (! visited [j]) +00132 cand.push_back (j) ; +00133 } +00134 +00135 cur_vertex = cand [rng.random (cand.size ())] ; +00136 +00137 add_vertex (cur_vertex, __child) ; +00138 } +00139 } +00140 +00141 bool EdgeXover :: operator () (Route & __route1, Route & __route2) +00142 { +00143 +00144 // Init. copy +00145 Route par [2] ; +00146 par [0] = __route1 ; +00147 par [1] = __route2 ; +00148 +00149 cross (par [0], par [1], __route1) ; +00150 cross (par [1], par [0], __route2) ; +00151 +00152 __route1.invalidate () ; +00153 __route2.invalidate () ; +00154 +00155 return true ; +00156 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8h-source.html
index 97da77c21..08e377f99 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/edge__xover_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +edge_xover.h
00001 /* 00002 * <edge_xover.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -68,31 +68,32 @@ 00044 00045 #include "route.h" 00046 -00048 class EdgeXover : public eoQuadOp <Route> { -00049 -00050 public : -00051 -00052 bool operator () (Route & __route1, Route & __route2) ; -00053 -00054 private : -00055 -00056 void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */ -00057 -00058 void remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) ; -00059 /* Updating the map of entries */ -00060 -00061 void build_map (const Route & __par1, const Route & __par2) ; -00062 -00063 void add_vertex (unsigned __vertex, Route & __child) ; -00064 -00065 std :: vector <std :: set <unsigned> > _map ; /* The handled map */ -00066 -00067 std :: vector <bool> visited ; /* Vertices that are already visited */ -00068 -00069 } ; -00070 -00071 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00048 class EdgeXover : public eoQuadOp <Route> +00049 { +00050 +00051 public : +00052 +00053 bool operator () (Route & __route1, Route & __route2) ; +00054 +00055 private : +00056 +00057 void cross (const Route & __par1, const Route & __par2, Route & __child) ; /* Binary */ +00058 +00059 void remove_entry (unsigned __vertex, std :: vector <std :: set <unsigned> > & __map) ; +00060 /* Updating the map of entries */ +00061 +00062 void build_map (const Route & __par1, const Route & __par2) ; +00063 +00064 void add_vertex (unsigned __vertex, Route & __child) ; +00065 +00066 std :: vector <std :: set <unsigned> > _map ; /* The handled map */ +00067 +00068 std :: vector <bool> visited ; /* Vertices that are already visited */ +00069 +00070 } ; +00071 +00072 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/files.html b/tags/dummy-tag/paradiseo-peo/doc/html/files.html
index dcdc3a4dd..788fc9c25 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/files.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/files.html
@@ -1,6 +1,6 @@
-| city_swap.cpp [code] | |
| city_swap.h [code] | |
| comm.cpp [code] | |
| comm.h [code] | |
| communicable.cpp [code] | |
| communicable.h [code] | |
| coop.cpp [code] | |
| complete_topo.cpp [code] | |
| complete_topo.h [code] | |
| cooperative.cpp [code] | |
| cooperative.h [code] | |
| data.cpp [code] | |
| data.h [code] | |
| display.h [code] | |
| display_best_route.cpp [code] | |
| display_best_route.h [code] | |
| doclsn.h [code] | |
| edge_xover.cpp [code] | |
| edge_xover.h [code] | |
| eoPop_comm.h [code] | |
| eoVector_comm.h [code] | |
| exampleA.cpp [code] | |
| exampleB.cpp [code] | |
| exampleC.cpp [code] | |
| exampleD.cpp [code] | |
| exampleE.cpp [code] | |
| Lesson1/main.cpp [code] | |
| Lesson2/main.cpp [code] | |
| Lesson3/main.cpp [code] | |
| LessonParallelAlgorithm/main.cpp [code] | |
| eoPop_mesg.h [code] | |
| eoVector_mesg.h [code] | |
| Lesson1/mainEA.cpp [code] | |
| Lesson2/mainEA.cpp [code] | |
| Lesson3/mainEA.cpp [code] | |
| mainEALS.cpp [code] | |
| Lesson1/mainPSO.cpp [code] | |
| Lesson3/mainPSO.cpp [code] | |
| merge_route_eval.cpp [code] | |
| merge_route_eval.h [code] | |
| mess.cpp [code] | |
| peo_run.h [code] | |
| peoAggEvalFunc.h [code] | |
| peoAsyncIslandMig.h [code] | |
| peoEA.h [code] | |
| peoData.h [code] | |
| peoEvalFunc.h [code] | |
| peoMoeoPopEval.h [code] | |
| peoMultiStart.h [code] | |
| peoNoAggEvalFunc.h [code] | |
| peoParallelAlgorithmWrapper.h [code] | |
| peoParaPopEval.h [code] | |
| peoParaSGATransform.h [code] | |
| peoPopEval.h [code] | |
| peoSeqPopEval.h [code] | |
| peoSeqTransform.h [code] | |
| peoSynchronousMultiStart.h [code] | |
| peoPSO.h [code] | |
| peoSyncIslandMig.h [code] | |
| peoSyncMultiStart.h [code] | |
| peoTransform.h [code] | |
| peoWrapper.h [code] | |
| random_topo.cpp [code] | |
| random_topo.h [code] | |
| reac_thread.cpp [code] | |
| reac_thread.h [code] | |
| README [code] | |
| core/service.cpp [code] | |
| rmc/mpi/service.cpp [code] | |
| service.h [code] | |
| t-peo.cpp [code] | |
| star_topo.cpp [code] | |
| star_topo.h [code] | |
| synchron.cpp [code] | |
| synchron.h [code] | |
| t-EAAsyncIsland.cpp [code] | |
| t-EASyncIsland.cpp [code] | |
| t-Mpdallexit.cpp [code] | |
| t-Mpdboot.cpp [code] | |
| t-MultiStart.cpp [code] | |
| t-ParallelEval.cpp [code] | |
| t-ParallelTransform.cpp [code] | |
| t-PSOGlobalBest.cpp [code] | |
| t-PSOSelect.cpp [code] | |
| t-PSOWorstPosition.cpp [code] | |
| tags.h [code] | |
| thread.cpp [code] | |
| thread.h [code] | |
| xml_parser.cpp [code] | |
| xml_parser.h [code] |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/functions.html b/tags/dummy-tag/paradiseo-peo/doc/html/functions.html
index 2173748ff..c519ca5fc 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/functions.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/functions.html
@@ -1,6 +1,6 @@
-Here is a list of all documented class members with links to the class documentation for each member:
+
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/functions_func.html b/tags/dummy-tag/paradiseo-peo/doc/html/functions_func.html
index 988196720..0997dbd5f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/functions_func.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/functions_func.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/functions_vars.html b/tags/dummy-tag/paradiseo-peo/doc/html/functions_vars.html
index a99036961..4b16775b5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/functions_vars.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/functions_vars.html
@@ -1,6 +1,6 @@
-
+
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/hierarchy.html b/tags/dummy-tag/paradiseo-peo/doc/html/hierarchy.html
index dc125554e..b88b96918 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/hierarchy.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/hierarchy.html
@@ -1,6 +1,6 @@
- [external] [external]
- [external] [external]
- [external] [external]
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/index.html b/tags/dummy-tag/paradiseo-peo/doc/html/index.html
index 80a524ff7..91a20cdb1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/index.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/index.html
@@ -1,6 +1,6 @@
-00001 /* +merge_route_eval.cpp
00001 /* 00002 * <merge_route_eval.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,14 +60,15 @@ 00036 00037 #include "merge_route_eval.h" 00038 -00039 void MergeRouteEval :: operator () (Route & __route, const int & __part_fit) { -00040 -00041 int len = __route.fitness (); -00042 len += __part_fit; -00043 __route.fitness (len); -00044 } -00045 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00039 void MergeRouteEval :: operator () (Route & __route, const int & __part_fit) +00040 { +00041 +00042 int len = __route.fitness (); +00043 len += __part_fit; +00044 __route.fitness (len); +00045 } +00046 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/merge__route__eval_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/merge__route__eval_8h-source.html
index cdbb4a651..6924dc03f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/merge__route__eval_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/merge__route__eval_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +merge_route_eval.h
00001 /* 00002 * <merge_route_eval.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include "route.h" 00043 -00044 class MergeRouteEval : public peoAggEvalFunc <Route> { -00045 -00046 public : -00047 -00048 void operator () (Route & __route, const int & __part_fit) ; -00049 -00050 }; -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00044 class MergeRouteEval : public peoAggEvalFunc <Route> +00045 { +00046 +00047 public : +00048 +00049 void operator () (Route & __route, const int & __part_fit) ; +00050 +00051 }; +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/mess_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/mess_8cpp-source.html
index c7f5446d0..6f059d533 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/mess_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/mess_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +mess.cpp
00001 /* 00002 * <mess.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,228 +66,308 @@ 00042 #include "node.h" 00043 00044 #define MPI_BUF_SIZE 1024*64 -00045 +00045 00046 static char mpi_buf [MPI_BUF_SIZE]; -00047 -00048 static int pos_buf ; +00047 +00048 static int pos_buf; 00049 00050 static std :: vector <char *> act_buf; /* Active buffers */ 00051 00052 static std :: vector <MPI_Request *> act_req; /* Active requests */ 00053 -00054 void cleanBuffers () { -00055 -00056 for (unsigned i = 0; i < act_req.size ();) { -00057 -00058 MPI_Status stat ; -00059 int flag ; -00060 MPI_Test (act_req [i], & flag, & stat) ; -00061 if (flag) { -00062 -00063 delete act_buf [i] ; -00064 delete act_req [i] ; -00065 -00066 act_buf [i] = act_buf.back () ; -00067 act_buf.pop_back () ; -00068 -00069 act_req [i] = act_req.back () ; -00070 act_req.pop_back () ; -00071 } -00072 else -00073 i ++; -00074 } -00075 } -00076 -00077 void waitBuffers () { -00078 -00079 printDebugMessage ("waiting the termination of the asynchronous operations to complete"); +00054 void initBuffers () +00055 { +00056 +00057 pos_buf = 0; +00058 act_buf.clear (); +00059 act_req.clear (); +00060 } +00061 +00062 void cleanBuffers () +00063 { +00064 +00065 for (unsigned i = 0; i < act_req.size ();) +00066 { +00067 +00068 MPI_Status stat ; +00069 int flag ; +00070 +00071 MPI_Test (act_req [i], & flag, & stat) ; +00072 if (flag) +00073 { +00074 +00075 delete[] act_buf [i] ; +00076 delete act_req [i] ; +00077 +00078 act_buf [i] = act_buf.back () ; +00079 act_buf.pop_back () ; 00080 -00081 for (unsigned i = 0; i < act_req.size (); i ++) { -00082 -00083 MPI_Status stat ; -00084 -00085 MPI_Wait (act_req [i], & stat) ; -00086 -00087 delete act_buf [i] ; -00088 delete act_req [i] ; -00089 } -00090 } +00081 act_req [i] = act_req.back () ; +00082 act_req.pop_back () ; +00083 } +00084 else +00085 i ++; +00086 } +00087 } +00088 +00089 void waitBuffers () +00090 { 00091 -00092 bool probeMessage (int & __src, int & __tag) { +00092 printDebugMessage ("waiting the termination of the asynchronous operations to complete"); 00093 -00094 int flag; -00095 -00096 MPI_Status stat; -00097 -00098 MPI_Iprobe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & flag, & stat); -00099 -00100 __src = stat.MPI_SOURCE; -00101 __tag = stat.MPI_TAG; -00102 -00103 return flag; +00094 for (unsigned i = 0; i < act_req.size (); i ++) +00095 { +00096 +00097 MPI_Status stat ; +00098 +00099 MPI_Wait (act_req [i], & stat) ; +00100 +00101 delete[] act_buf [i] ; +00102 delete act_req [i] ; +00103 } 00104 } 00105 -00106 void waitMessage () { -00107 -00108 MPI_Status stat; -00109 -00110 MPI_Probe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & stat); -00111 } +00106 bool probeMessage (int & __src, int & __tag) +00107 { +00108 +00109 int flag; +00110 +00111 MPI_Status stat; 00112 -00113 void initMessage () { -00114 -00115 pos_buf = 0; -00116 } +00113 MPI_Iprobe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & flag, & stat); +00114 +00115 __src = stat.MPI_SOURCE; +00116 __tag = stat.MPI_TAG; 00117 -00118 void sendMessage (int __to, int __tag) { -00119 -00120 cleanBuffers (); -00121 act_buf.push_back (new char [pos_buf]); -00122 act_req.push_back (new MPI_Request); -00123 memcpy (act_buf.back (), mpi_buf, pos_buf); -00124 MPI_Isend (act_buf.back (), pos_buf, MPI_PACKED, __to, __tag, MPI_COMM_WORLD, act_req.back ()); -00125 } -00126 -00127 void sendMessageToAll (int __tag) { +00118 return flag; +00119 } +00120 +00121 void waitMessage () +00122 { +00123 +00124 MPI_Status stat; +00125 +00126 MPI_Probe (MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, & stat); +00127 } 00128 -00129 for (int i = 0; i < getNumberOfNodes (); i ++) -00130 sendMessage (i, __tag); -00131 } -00132 -00133 void receiveMessage (int __from, int __tag) { -00134 -00135 MPI_Status stat; -00136 MPI_Request req; +00129 void initMessage () +00130 { +00131 +00132 pos_buf = 0; +00133 } +00134 +00135 void sendMessage (int __to, int __tag) +00136 { 00137 -00138 MPI_Irecv (mpi_buf, MPI_BUF_SIZE, MPI_PACKED, __from, __tag, MPI_COMM_WORLD, & req) ; -00139 MPI_Wait (& req, & stat) ; -00140 } -00141 -00142 /* Char */ -00143 void pack (const char & __c) { +00138 cleanBuffers (); +00139 act_buf.push_back (new char [pos_buf]); +00140 act_req.push_back (new MPI_Request); +00141 memcpy (act_buf.back (), mpi_buf, pos_buf); +00142 MPI_Isend (act_buf.back (), pos_buf, MPI_PACKED, __to, __tag, MPI_COMM_WORLD, act_req.back ()); +00143 } 00144 -00145 MPI_Pack ((void *) & __c, 1, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00146 } +00145 void sendMessageToAll (int __tag) +00146 { 00147 -00148 /* Float */ -00149 void pack (const float & __f, int __nitem) { -00150 -00151 MPI_Pack ((void *) & __f, __nitem, MPI_FLOAT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00152 } -00153 -00154 /* Double */ -00155 void pack (const double & __d, int __nitem) { -00156 -00157 MPI_Pack ((void *) & __d, __nitem, MPI_DOUBLE, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00158 } -00159 -00160 /* Integer */ -00161 void pack (const int & __i, int __nitem) { -00162 -00163 MPI_Pack ((void *) & __i, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00164 } -00165 -00166 /* Unsigned int. */ -00167 void pack (const unsigned int & __ui, int __nitem) { -00168 -00169 MPI_Pack ((void *) & __ui, __nitem, MPI_UNSIGNED, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00170 } +00148 for (int i = 0; i < getNumberOfNodes (); i ++) +00149 sendMessage (i, __tag); +00150 } +00151 +00152 void receiveMessage (int __from, int __tag) +00153 { +00154 +00155 MPI_Status stat; +00156 MPI_Request req; +00157 +00158 MPI_Irecv (mpi_buf, MPI_BUF_SIZE, MPI_PACKED, __from, __tag, MPI_COMM_WORLD, & req); +00159 MPI_Wait (& req, & stat); +00160 } +00161 +00162 void synchronizeNodes () +00163 { +00164 +00165 MPI_Barrier ( MPI_COMM_WORLD ); +00166 } +00167 +00168 /* Char */ +00169 void pack (const char & __c) +00170 { 00171 -00172 /* Short int. */ -00173 void pack (const short & __sh, int __nitem) { +00172 MPI_Pack ((void *) & __c, 1, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00173 } 00174 -00175 MPI_Pack ((void *) & __sh, __nitem, MPI_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00176 } -00177 -00178 /* Unsigned short */ -00179 void pack (const unsigned short & __ush, int __nitem) { -00180 -00181 MPI_Pack ((void *) & __ush, __nitem, MPI_UNSIGNED_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00182 } -00183 -00184 /* Long */ -00185 void pack (const long & __l, int __nitem) { -00186 -00187 MPI_Pack ((void *) & __l, __nitem, MPI_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00188 } -00189 -00190 /* Unsigned long */ -00191 void pack (const unsigned long & __ul, int __nitem) { +00175 /* Boolean */ +00176 void pack (const bool & __b, int __nitem) +00177 { +00178 +00179 MPI_Pack ((void *) & __b, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00180 } +00181 +00182 /* Float */ +00183 void pack (const float & __f, int __nitem) +00184 { +00185 +00186 MPI_Pack ((void *) & __f, __nitem, MPI_FLOAT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00187 } +00188 +00189 /* Double */ +00190 void pack (const double & __d, int __nitem) +00191 { 00192 -00193 MPI_Pack ((void *) & __ul, __nitem, MPI_UNSIGNED_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00193 MPI_Pack ((void *) & __d, __nitem, MPI_DOUBLE, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); 00194 } 00195 -00196 /* String */ -00197 void pack (const char * __str) { -00198 -00199 int len = strlen (__str) + 1; -00200 MPI_Pack (& len, 1, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00201 MPI_Pack ((void *) __str, len, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); -00202 } -00203 -00204 /* Char */ -00205 void unpack (char & __c) { +00196 /* Integer */ +00197 void pack (const int & __i, int __nitem) +00198 { +00199 +00200 MPI_Pack ((void *) & __i, __nitem, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00201 } +00202 +00203 /* Unsigned int. */ +00204 void pack (const unsigned int & __ui, int __nitem) +00205 { 00206 -00207 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __c, 1, MPI_CHAR, MPI_COMM_WORLD); +00207 MPI_Pack ((void *) & __ui, __nitem, MPI_UNSIGNED, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); 00208 } 00209 -00210 /* Float */ -00211 void unpack (float & __f, int __nitem) { -00212 -00213 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __f, __nitem, MPI_FLOAT, MPI_COMM_WORLD); -00214 } -00215 -00216 /* Double */ -00217 void unpack (double & __d, int __nitem) { -00218 -00219 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __d, __nitem, MPI_DOUBLE, MPI_COMM_WORLD); -00220 } -00221 -00222 /* Integer */ -00223 void unpack (int & __i, int __nitem) { -00224 -00225 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __i, __nitem, MPI_INT, MPI_COMM_WORLD); -00226 } +00210 /* Short int. */ +00211 void pack (const short & __sh, int __nitem) +00212 { +00213 +00214 MPI_Pack ((void *) & __sh, __nitem, MPI_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00215 } +00216 +00217 /* Unsigned short */ +00218 void pack (const unsigned short & __ush, int __nitem) +00219 { +00220 +00221 MPI_Pack ((void *) & __ush, __nitem, MPI_UNSIGNED_SHORT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00222 } +00223 +00224 /* Long */ +00225 void pack (const long & __l, int __nitem) +00226 { 00227 -00228 /* Unsigned int. */ -00229 void unpack (unsigned int & __ui, int __nitem) { +00228 MPI_Pack ((void *) & __l, __nitem, MPI_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00229 } 00230 -00231 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ui, __nitem, MPI_UNSIGNED, MPI_COMM_WORLD); -00232 } -00233 -00234 /* Short int. */ -00235 void unpack (short & __sh, int __nitem) { -00236 -00237 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __sh, __nitem, MPI_SHORT, MPI_COMM_WORLD); -00238 } -00239 -00240 /* Unsigned short */ -00241 void unpack (unsigned short & __ush, int __nitem) { -00242 -00243 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ush, __nitem, MPI_UNSIGNED_SHORT, MPI_COMM_WORLD); -00244 } -00245 -00246 /* Long */ -00247 void unpack (long & __l, int __nitem) { -00248 -00249 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __l, __nitem, MPI_LONG, MPI_COMM_WORLD); -00250 } -00251 -00252 /* Unsigned long */ -00253 void unpack (unsigned long & __ul, int __nitem) { -00254 -00255 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ul, __nitem, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); -00256 } -00257 -00258 /* String */ -00259 void unpack (char * __str) { +00231 /* Unsigned long */ +00232 void pack (const unsigned long & __ul, int __nitem) +00233 { +00234 +00235 MPI_Pack ((void *) & __ul, __nitem, MPI_UNSIGNED_LONG, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00236 } +00237 +00238 /* String */ +00239 void pack (const char * __str) +00240 { +00241 +00242 int len = strlen (__str) + 1; +00243 MPI_Pack (& len, 1, MPI_INT, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00244 MPI_Pack ((void *) __str, len, MPI_CHAR, mpi_buf, MPI_BUF_SIZE, & pos_buf, MPI_COMM_WORLD); +00245 } +00246 +00247 void pack (const std::string & __str) +00248 { +00249 +00250 size_t size = __str.size() + 1; +00251 char * buffer = new char[ size ]; +00252 strncpy( buffer, __str.c_str(), size ); +00253 pack (buffer); +00254 delete [] buffer; +00255 } +00256 +00257 /* Char */ +00258 void unpack (char & __c) +00259 { 00260 -00261 int len; -00262 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD); -00263 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, __str, len, MPI_CHAR, MPI_COMM_WORLD); -00264 } -00265 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00261 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __c, 1, MPI_CHAR, MPI_COMM_WORLD); +00262 } +00263 +00264 /* Boolean */ +00265 extern void unpack (bool & __b, int __nitem ) +00266 { +00267 +00268 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __b, __nitem, MPI_INT, MPI_COMM_WORLD); +00269 } +00270 +00271 /* Float */ +00272 void unpack (float & __f, int __nitem) +00273 { +00274 +00275 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __f, __nitem, MPI_FLOAT, MPI_COMM_WORLD); +00276 } +00277 +00278 /* Double */ +00279 void unpack (double & __d, int __nitem) +00280 { +00281 +00282 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __d, __nitem, MPI_DOUBLE, MPI_COMM_WORLD); +00283 } +00284 +00285 /* Integer */ +00286 void unpack (int & __i, int __nitem) +00287 { +00288 +00289 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __i, __nitem, MPI_INT, MPI_COMM_WORLD); +00290 } +00291 +00292 /* Unsigned int. */ +00293 void unpack (unsigned int & __ui, int __nitem) +00294 { +00295 +00296 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ui, __nitem, MPI_UNSIGNED, MPI_COMM_WORLD); +00297 } +00298 +00299 /* Short int. */ +00300 void unpack (short & __sh, int __nitem) +00301 { +00302 +00303 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __sh, __nitem, MPI_SHORT, MPI_COMM_WORLD); +00304 } +00305 +00306 /* Unsigned short */ +00307 void unpack (unsigned short & __ush, int __nitem) +00308 { +00309 +00310 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ush, __nitem, MPI_UNSIGNED_SHORT, MPI_COMM_WORLD); +00311 } +00312 +00313 /* Long */ +00314 void unpack (long & __l, int __nitem) +00315 { +00316 +00317 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __l, __nitem, MPI_LONG, MPI_COMM_WORLD); +00318 } +00319 +00320 /* Unsigned long */ +00321 void unpack (unsigned long & __ul, int __nitem) +00322 { +00323 +00324 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & __ul, __nitem, MPI_UNSIGNED_LONG, MPI_COMM_WORLD); +00325 } +00326 +00327 /* String */ +00328 void unpack (char * __str) +00329 { +00330 +00331 int len; +00332 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD); +00333 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, __str, len, MPI_CHAR, MPI_COMM_WORLD); +00334 } +00335 void unpack (std::string & __str) +00336 { +00337 +00338 char * buffer; +00339 int len; +00340 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, & len, 1, MPI_INT, MPI_COMM_WORLD); +00341 MPI_Unpack (mpi_buf, MPI_BUF_SIZE, & pos_buf, buffer, len, MPI_CHAR, MPI_COMM_WORLD); +00342 __str.assign( buffer ); +00343 +00344 } +00345 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/mess_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/mess_8h-source.html
index 533c566e8..d6c3ef6b1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/mess_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/mess_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +mess.h
00001 /* 00002 * <mess.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -71,17 +71,20 @@ 00047 00048 extern void receiveMessage (int __from, int __tag); 00049 -00050 extern void cleanBuffers (); +00050 extern void initBuffers (); 00051 -00052 extern void waitBuffers (); +00052 extern void cleanBuffers (); 00053 -00054 extern bool probeMessage (int & __src, int & __tag); +00054 extern void waitBuffers (); 00055 -00056 extern void waitMessage (); +00056 extern bool probeMessage (int & __src, int & __tag); 00057 -00058 #endif -00059 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00058 extern void waitMessage (); +00059 +00060 extern void synchronizeNodes (); +00061 +00062 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/messaging_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/messaging_8h-source.html
index 2aef19eda..63a1f4ecf 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/messaging_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/messaging_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +messaging.h
00001 /* 00002 * <messaging.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,99 +62,112 @@ 00038 #define __mess_h 00039 00040 #include <utility> -00041 -00042 /* Char */ -00043 extern void pack (const char & __c); -00044 -00045 /* Float */ -00046 extern void pack (const float & __f, int __nitem = 1); -00047 -00048 /* Double */ -00049 extern void pack (const double & __d, int __nitem = 1); -00050 -00051 /* Integer */ -00052 extern void pack (const int & __i, int __nitem = 1); -00053 -00054 /* Unsigned int. */ -00055 extern void pack (const unsigned int & __ui, int __nitem = 1); -00056 -00057 /* Short int. */ -00058 extern void pack (const short & __sh, int __nitem = 1); -00059 -00060 /* Unsigned short */ -00061 extern void pack (const unsigned short & __ush, int __nitem = 1); -00062 -00063 /* Long */ -00064 extern void pack (const long & __l, int __nitem = 1); -00065 -00066 /* Unsigned long */ -00067 extern void pack (const unsigned long & __ul, int __nitem = 1); -00068 -00069 /* String */ -00070 extern void pack (const char * __str); -00071 -00072 /* Pointer */ -00073 template <class T> void pack (const T * __ptr) { -00074 -00075 pack ((unsigned long) __ptr); -00076 } -00077 -00078 /* Pair */ -00079 template <class U, class V> void pack (const std :: pair <U, V> & __pair) { -00080 -00081 pack (__pair.first); -00082 pack (__pair.second); -00083 } -00084 -00085 // -00086 -00087 /* Float */ -00088 extern void unpack (char & __c); -00089 -00090 /* Float */ -00091 extern void unpack (float & __f, int __nitem = 1); +00041 #include <string> +00042 +00043 /* Char */ +00044 extern void pack (const char & __c); +00045 +00046 /* Boolean */ +00047 extern void pack (const bool & __b, int __nitem = 1); +00048 +00049 /* Float */ +00050 extern void pack (const float & __f, int __nitem = 1); +00051 +00052 /* Double */ +00053 extern void pack (const double & __d, int __nitem = 1); +00054 +00055 /* Integer */ +00056 extern void pack (const int & __i, int __nitem = 1); +00057 +00058 /* Unsigned int. */ +00059 extern void pack (const unsigned int & __ui, int __nitem = 1); +00060 +00061 /* Short int. */ +00062 extern void pack (const short & __sh, int __nitem = 1); +00063 +00064 /* Unsigned short */ +00065 extern void pack (const unsigned short & __ush, int __nitem = 1); +00066 +00067 /* Long */ +00068 extern void pack (const long & __l, int __nitem = 1); +00069 +00070 /* Unsigned long */ +00071 extern void pack (const unsigned long & __ul, int __nitem = 1); +00072 +00073 /* String */ +00074 extern void pack (const char * __str); +00075 extern void pack (const std::string & __str); +00076 +00077 /* Pointer */ +00078 template <class T> void pack (const T * __ptr) +00079 { +00080 +00081 pack ((unsigned long) __ptr); +00082 } +00083 +00084 /* Pair */ +00085 template <class U, class V> void pack (const std :: pair <U, V> & __pair) +00086 { +00087 +00088 pack (__pair.first); +00089 pack (__pair.second); +00090 } +00091 00092 -00093 /* Double */ -00094 extern void unpack (double & __d, int __nitem = 1); -00095 -00096 /* Integer */ -00097 extern void unpack (int & __i, int __nitem = 1); -00098 -00099 /* Unsigned int. */ -00100 extern void unpack (unsigned int & __ui, int __nitem = 1); -00101 -00102 /* Short int. */ -00103 extern void unpack (short & __sh, int __nitem = 1); -00104 -00105 /* Unsigned short */ -00106 extern void unpack (unsigned short & __ush, int __nitem = 1); -00107 -00108 /* Long */ -00109 extern void unpack (long & __l, int __nitem = 1); -00110 -00111 /* Unsigned long */ -00112 extern void unpack (unsigned long & __ul, int __nitem = 1); -00113 -00114 /* String */ -00115 extern void unpack (char * __str); -00116 -00117 /* Pointer */ -00118 template <class T> void unpack (T * & __ptr) { -00119 -00120 unsigned long p; -00121 unpack (p); -00122 __ptr = (T *) p; -00123 } -00124 -00125 /* Pair */ -00126 template <class U, class V> void unpack (std :: pair <U, V> & __pair) { -00127 -00128 unpack (__pair.first); -00129 unpack (__pair.second); -00130 } +00093 +00094 /* Char */ +00095 extern void unpack (char & __c); +00096 +00097 /* Boolean */ +00098 extern void unpack (bool & __b, int __nitem = 1); +00099 +00100 /* Float */ +00101 extern void unpack (float & __f, int __nitem = 1); +00102 +00103 /* Double */ +00104 extern void unpack (double & __d, int __nitem = 1); +00105 +00106 /* Integer */ +00107 extern void unpack (int & __i, int __nitem = 1); +00108 +00109 /* Unsigned int. */ +00110 extern void unpack (unsigned int & __ui, int __nitem = 1); +00111 +00112 /* Short int. */ +00113 extern void unpack (short & __sh, int __nitem = 1); +00114 +00115 /* Unsigned short */ +00116 extern void unpack (unsigned short & __ush, int __nitem = 1); +00117 +00118 /* Long */ +00119 extern void unpack (long & __l, int __nitem = 1); +00120 +00121 /* Unsigned long */ +00122 extern void unpack (unsigned long & __ul, int __nitem = 1); +00123 +00124 /* String */ +00125 extern void unpack (char * __str); +00126 extern void unpack (std::string & __str); +00127 +00128 /* Pointer */ +00129 template <class T> void unpack (T * & __ptr) +00130 { 00131 -00132 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00132 unsigned long p; +00133 unpack (p); +00134 __ptr = (T *) p; +00135 } +00136 +00137 /* Pair */ +00138 template <class U, class V> void unpack (std :: pair <U, V> & __pair) +00139 { +00140 +00141 unpack (__pair.first); +00142 unpack (__pair.second); +00143 } +00144 +00145 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/mix_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/mix_8h-source.html
index 113e73171..d0206fae8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/mix_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/mix_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +mix.h
00001 /* 00002 * <mix.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include <utils/eoRNG.h> 00043 -00044 template <class T> void mix (std :: vector <T> & __v) { -00045 -00046 unsigned len = __v.size () ; -00047 -00048 for (unsigned i = 0 ; i < len ; i ++) -00049 std :: swap (__v [i], __v [rng.random (len)]) ; -00050 } -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00044 template <class T> void mix (std :: vector <T> & __v) +00045 { +00046 +00047 unsigned len = __v.size () ; +00048 +00049 for (unsigned i = 0 ; i < len ; i ++) +00050 std :: swap (__v [i], __v [rng.random (len)]) ; +00051 } +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers.html b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers.html
index 8c60760fa..dae98f2a5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_func.html b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_func.html
index 66dbca22c..68996ec70 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_func.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_func.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_vars.html b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_vars.html
index d4063dec2..fadee0be8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_vars.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/namespacemembers_vars.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/namespacepeo.html b/tags/dummy-tag/paradiseo-peo/doc/html/namespacepeo.html
index a694168dc..7b6b18751 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/namespacepeo.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/namespacepeo.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/namespaces.html b/tags/dummy-tag/paradiseo-peo/doc/html/namespaces.html
index 29be8b450..f203d4a01 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/namespaces.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/namespaces.html
@@ -1,6 +1,6 @@
-| peo |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8cpp-source.html
index 33a72622f..d5e306912 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +opt_route.cpp
00001 /* 00002 * <opt_route.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,100 +64,108 @@ 00040 #define MAX_FIELD_LENGTH 1000 00041 #define MAX_LINE_LENGTH 1000 00042 -00043 static void getNextField (FILE * __f, char * __buff) { -00044 -00045 char trash [MAX_TRASH_LENGTH]; -00046 -00047 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ -00048 fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ -00049 fgetc (__f); -00050 } -00051 -00052 static void getLine (FILE * __f, char * __buff) { -00053 -00054 char trash [MAX_TRASH_LENGTH]; +00043 static void getNextField (FILE * __f, char * __buff) +00044 { +00045 +00046 char trash [MAX_TRASH_LENGTH]; +00047 +00048 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ +00049 fscanf (__f, "%[^:\n]", __buff); /* Reading the field */ +00050 fgetc (__f); +00051 } +00052 +00053 static void getLine (FILE * __f, char * __buff) +00054 { 00055 -00056 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ -00057 fscanf (__f, "%[^\n]", __buff); /* Reading the line */ -00058 } -00059 -00060 static void loadBestRoute (FILE * __f) { +00056 char trash [MAX_TRASH_LENGTH]; +00057 +00058 fscanf (__f, "%[ \t:\n]", trash); /* Discarding sep. */ +00059 fscanf (__f, "%[^\n]", __buff); /* Reading the line */ +00060 } 00061 -00062 opt_route.clear (); -00063 -00064 for (unsigned i = 0; i < numNodes; i ++) { -00065 Node node; -00066 fscanf (__f, "%u", & node); -00067 opt_route.push_back (node - 1); -00068 } -00069 int d; /* -1 ! */ -00070 fscanf (__f, "%d", & d); -00071 } -00072 -00073 void loadOptimumRoute (const char * __filename) { -00074 -00075 FILE * f = fopen (__filename, "r"); +00062 static void loadBestRoute (FILE * __f) +00063 { +00064 +00065 opt_route.clear (); +00066 +00067 for (unsigned i = 0; i < numNodes; i ++) +00068 { +00069 Node node; +00070 fscanf (__f, "%u", & node); +00071 opt_route.push_back (node - 1); +00072 } +00073 int d; /* -1 ! */ +00074 fscanf (__f, "%d", & d); +00075 } 00076 -00077 if (f) { -00078 -00079 printf ("Loading '%s'.\n", __filename); -00080 -00081 char field [MAX_FIELD_LENGTH]; -00082 -00083 getNextField (f, field); /* Name */ -00084 assert (strstr (field, "NAME")); -00085 getNextField (f, field); -00086 //printf ("NAME: %s.\n", field); -00087 -00088 getNextField (f, field); /* Comment */ -00089 assert (strstr (field, "COMMENT")); -00090 getLine (f, field); -00091 // printf ("COMMENT: %s.\n", field); -00092 -00093 getNextField (f, field); /* Type */ -00094 assert (strstr (field, "TYPE")); -00095 getNextField (f, field); -00096 //printf ("TYPE: %s.\n", field); -00097 -00098 getNextField (f, field); /* Dimension */ -00099 assert (strstr (field, "DIMENSION")); -00100 getNextField (f, field); -00101 // printf ("DIMENSION: %s.\n", field); -00102 numNodes = atoi (field); +00077 void loadOptimumRoute (const char * __filename) +00078 { +00079 +00080 FILE * f = fopen (__filename, "r"); +00081 +00082 if (f) +00083 { +00084 +00085 printf ("Loading '%s'.\n", __filename); +00086 +00087 char field [MAX_FIELD_LENGTH]; +00088 +00089 getNextField (f, field); /* Name */ +00090 assert (strstr (field, "NAME")); +00091 getNextField (f, field); +00092 //printf ("NAME: %s.\n", field); +00093 +00094 getNextField (f, field); /* Comment */ +00095 assert (strstr (field, "COMMENT")); +00096 getLine (f, field); +00097 // printf ("COMMENT: %s.\n", field); +00098 +00099 getNextField (f, field); /* Type */ +00100 assert (strstr (field, "TYPE")); +00101 getNextField (f, field); +00102 //printf ("TYPE: %s.\n", field); 00103 -00104 getNextField (f, field); /* Tour section */ -00105 assert (strstr (field, "TOUR_SECTION")); -00106 loadBestRoute (f); -00107 -00108 getNextField (f, field); /* End of file */ -00109 assert (strstr (field, "EOF")); -00110 //printf ("EOF.\n"); -00111 -00112 printf ("The length of the best route is %u.\n", length (opt_route)); -00113 } -00114 else { -00115 -00116 fprintf (stderr, "Can't open '%s'.\n", __filename); -00117 exit (1); -00118 } -00119 } -00120 -00121 void loadOptimumRoute (eoParser & __parser) { -00122 -00123 /* Getting the path of the instance */ -00124 -00125 eoValueParam <std :: string> param ("", "optimumTour", "Optimum tour") ; -00126 __parser.processParam (param) ; -00127 if (strlen (param.value ().c_str ())) -00128 loadOptimumRoute (param.value ().c_str ()); -00129 else -00130 opt_route.fitness (0); -00131 } +00104 getNextField (f, field); /* Dimension */ +00105 assert (strstr (field, "DIMENSION")); +00106 getNextField (f, field); +00107 // printf ("DIMENSION: %s.\n", field); +00108 numNodes = atoi (field); +00109 +00110 getNextField (f, field); /* Tour section */ +00111 assert (strstr (field, "TOUR_SECTION")); +00112 loadBestRoute (f); +00113 +00114 getNextField (f, field); /* End of file */ +00115 assert (strstr (field, "EOF")); +00116 //printf ("EOF.\n"); +00117 +00118 printf ("The length of the best route is %u.\n", length (opt_route)); +00119 } +00120 else +00121 { +00122 +00123 fprintf (stderr, "Can't open '%s'.\n", __filename); +00124 exit (1); +00125 } +00126 } +00127 +00128 void loadOptimumRoute (eoParser & __parser) +00129 { +00130 +00131 /* Getting the path of the instance */ 00132 -00133 Route opt_route; /* Optimum route */ -00134 -00135 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00133 eoValueParam <std :: string> param ("", "optimumTour", "Optimum tour") ; +00134 __parser.processParam (param) ; +00135 if (strlen (param.value ().c_str ())) +00136 loadOptimumRoute (param.value ().c_str ()); +00137 else +00138 opt_route.fitness (0); +00139 } +00140 +00141 Route opt_route; /* Optimum route */ +00142 +00143 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8h-source.html
index 7fbb643aa..041bee74c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/opt__route_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +opt_route.h
00001 /* 00002 * <opt_route.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -68,12 +68,12 @@ 00044 00045 extern void loadOptimumRoute (const char * __filename); 00046 -00047 extern void loadOptimumRoute (eoParser & __parser); +00047 extern void loadOptimumRoute (eoParser & __parser); 00048 -00049 extern Route opt_route; /* Optimum route */ +00049 extern Route opt_route; /* Optimum route */ 00050 00051 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8cpp-source.html
index b73368e34..14f2528bd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +order_xover.cpp
00001 /* 00002 * <order_xover.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,57 +64,63 @@ 00040 00041 #include "order_xover.h" 00042 -00043 void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) { -00044 -00045 unsigned cut2 = 1 + rng.random (numNodes) ; -00046 unsigned cut1 = rng.random (cut2); -00047 unsigned l = 0; -00048 -00049 /* To store vertices that have already been crossed */ -00050 std :: vector <bool> v (numNodes, false); -00051 -00052 /* Copy of the left partial route of the first parent */ -00053 for (unsigned i = cut1 ; i < cut2 ; i ++) { -00054 __child [l ++] = __par1 [i] ; -00055 v [__par1 [i]] = true ; -00056 } -00057 -00058 /* Searching the vertex of the second path, that ended the previous first one */ -00059 unsigned from = 0 ; -00060 for (unsigned i = 0; i < numNodes; i ++) -00061 if (__par2 [i] == __child [cut2 - 1]) { -00062 from = i ; -00063 break ; -00064 } -00065 -00066 /* Selecting a direction (Left or Right) */ -00067 char direct = rng.flip () ? 1 : -1 ; -00068 -00069 for (unsigned i = 0; i < numNodes + 1; i ++) { -00070 unsigned bidule = (direct * i + from + numNodes) % numNodes; -00071 if (! v [__par2 [bidule]]) { -00072 __child [l ++] = __par2 [bidule] ; -00073 v [__par2 [bidule]] = true ; -00074 } -00075 } -00076 } -00077 -00078 bool OrderXover :: operator () (Route & __route1, Route & __route2) { -00079 -00080 // Init. copy -00081 Route par [2] ; -00082 par [0] = __route1 ; -00083 par [1] = __route2 ; -00084 -00085 cross (par [0], par [1], __route1) ; -00086 cross (par [1], par [0], __route2) ; -00087 -00088 __route1.invalidate () ; -00089 __route2.invalidate () ; +00043 void OrderXover :: cross (const Route & __par1, const Route & __par2, Route & __child) +00044 { +00045 +00046 unsigned cut2 = 1 + rng.random (numNodes) ; +00047 unsigned cut1 = rng.random (cut2); +00048 unsigned l = 0; +00049 +00050 /* To store vertices that have already been crossed */ +00051 std :: vector <bool> v (numNodes, false); +00052 +00053 /* Copy of the left partial route of the first parent */ +00054 for (unsigned i = cut1 ; i < cut2 ; i ++) +00055 { +00056 __child [l ++] = __par1 [i] ; +00057 v [__par1 [i]] = true ; +00058 } +00059 +00060 /* Searching the vertex of the second path, that ended the previous first one */ +00061 unsigned from = 0 ; +00062 for (unsigned i = 0; i < numNodes; i ++) +00063 if (__par2 [i] == __child [cut2 - 1]) +00064 { +00065 from = i ; +00066 break ; +00067 } +00068 +00069 /* Selecting a direction (Left or Right) */ +00070 char direct = rng.flip () ? 1 : -1 ; +00071 +00072 for (unsigned i = 0; i < numNodes + 1; i ++) +00073 { +00074 unsigned bidule = (direct * i + from + numNodes) % numNodes; +00075 if (! v [__par2 [bidule]]) +00076 { +00077 __child [l ++] = __par2 [bidule] ; +00078 v [__par2 [bidule]] = true ; +00079 } +00080 } +00081 } +00082 +00083 bool OrderXover :: operator () (Route & __route1, Route & __route2) +00084 { +00085 +00086 // Init. copy +00087 Route par [2] ; +00088 par [0] = __route1 ; +00089 par [1] = __route2 ; 00090 -00091 return true ; -00092 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00091 cross (par [0], par [1], __route1) ; +00092 cross (par [1], par [0], __route2) ; +00093 +00094 __route1.invalidate () ; +00095 __route2.invalidate () ; +00096 +00097 return true ; +00098 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8h-source.html
index 93b2d10d1..2fb8bb27d 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/order__xover_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +order_xover.h
00001 /* 00002 * <order_xover.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,19 +65,20 @@ 00041 00042 #include "route.h" 00043 -00045 class OrderXover : public eoQuadOp <Route> { -00046 -00047 public : -00048 -00049 bool operator () (Route & __route1, Route & __route2) ; -00050 -00051 private : -00052 -00053 void cross (const Route & __par1, const Route & __par2, Route & __child) ; -00054 } ; -00055 -00056 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00045 class OrderXover : public eoQuadOp <Route> +00046 { +00047 +00048 public : +00049 +00050 bool operator () (Route & __route1, Route & __route2) ; +00051 +00052 private : +00053 +00054 void cross (const Route & __par1, const Route & __par2, Route & __child) ; +00055 } ; +00056 +00057 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html
index 34a6d4e92..3c90bebea 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +part_route_eval.cpp
00001 /* 00002 * <part_route_eval.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,26 +61,26 @@ 00037 #include "part_route_eval.h" 00038 #include "node.h" 00039 -00040 PartRouteEval :: PartRouteEval (float __from, +00040 PartRouteEval :: PartRouteEval (float __from, 00041 float __to -00042 ) : from (__from), -00043 to (__to) { -00044 -00045 } -00046 -00047 void PartRouteEval :: operator () (Route & __route) { -00048 -00049 +00042 ) : from (__from), +00043 to (__to) +00044 {} +00045 +00046 void PartRouteEval :: operator () (Route & __route) +00047 { +00048 +00049 00050 unsigned len = 0 ; -00051 -00052 for (unsigned i = (unsigned) (__route.size () * from) ; -00053 i < (unsigned) (__route.size () * to) ; +00051 +00052 for (unsigned i = (unsigned) (__route.size () * from) ; +00053 i < (unsigned) (__route.size () * to) ; 00054 i ++) 00055 len += distance (__route [i], __route [(i + 1) % numNodes]) ; -00056 -00057 __route.fitness (- (int) len) ; +00056 +00057 __route.fitness (- (int) len) ; 00058 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8h-source.html
index 43fc31513..37ab80da3 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/part__route__eval_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +part_route_eval.h
00001 /* 00002 * <part_route_eval.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,23 +65,24 @@ 00041 00042 #include "route.h" 00043 -00045 class PartRouteEval : public eoEvalFunc <Route> { -00046 -00047 public : -00048 -00050 PartRouteEval (float __from, float __to) ; -00051 -00052 void operator () (Route & __route) ; -00053 -00054 private : -00055 -00056 float from, to ; -00057 -00058 } ; -00059 +00045 class PartRouteEval : public eoEvalFunc <Route> +00046 { +00047 +00048 public : +00049 +00051 PartRouteEval (float __from, float __to) ; +00052 +00053 void operator () (Route & __route) ; +00054 +00055 private : +00056 +00057 float from, to ; +00058 +00059 } ; 00060 -00061 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00061 +00062 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html
index 75f1c08a9..224dd994d 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +partial_mapped_xover.cpp
00001 /* 00002 * <partial_mapped_xover.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,53 +65,56 @@ 00041 #include "partial_mapped_xover.h" 00042 #include "mix.h" 00043 -00044 void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) { -00045 -00046 unsigned v [__route.size ()] ; // Number of times a cities are visited ... -00047 -00048 for (unsigned i = 0 ; i < __route.size () ; i ++) -00049 v [i] = 0 ; -00050 -00051 for (unsigned i = 0 ; i < __route.size () ; i ++) -00052 v [__route [i]] ++ ; -00053 -00054 std :: vector <unsigned> vert ; -00055 -00056 for (unsigned i = 0 ; i < __route.size () ; i ++) -00057 if (! v [i]) -00058 vert.push_back (i) ; -00059 -00060 mix (vert) ; -00061 -00062 for (unsigned i = 0 ; i < __route.size () ; i ++) -00063 if (i < __cut1 || i >= __cut2) -00064 if (v [__route [i]] > 1) { -00065 __route [i] = vert.back () ; -00066 vert.pop_back () ; -00067 } -00068 } -00069 -00070 bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) { -00071 -00072 unsigned cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ; -00073 -00074 if (cut2 < cut1) -00075 std :: swap (cut1, cut2) ; -00076 -00077 // Between the cuts -00078 for (unsigned i = cut1 ; i < cut2 ; i ++) -00079 std :: swap (__route1 [i], __route2 [i]) ; -00080 -00081 // Outside the cuts -00082 repair (__route1, cut1, cut2) ; -00083 repair (__route2, cut1, cut2) ; -00084 -00085 __route1.invalidate () ; -00086 __route2.invalidate () ; +00044 void PartialMappedXover :: repair (Route & __route, unsigned __cut1, unsigned __cut2) +00045 { +00046 +00047 unsigned v [__route.size ()] ; // Number of times a cities are visited ... +00048 +00049 for (unsigned i = 0 ; i < __route.size () ; i ++) +00050 v [i] = 0 ; +00051 +00052 for (unsigned i = 0 ; i < __route.size () ; i ++) +00053 v [__route [i]] ++ ; +00054 +00055 std :: vector <unsigned> vert ; +00056 +00057 for (unsigned i = 0 ; i < __route.size () ; i ++) +00058 if (! v [i]) +00059 vert.push_back (i) ; +00060 +00061 mix (vert) ; +00062 +00063 for (unsigned i = 0 ; i < __route.size () ; i ++) +00064 if (i < __cut1 || i >= __cut2) +00065 if (v [__route [i]] > 1) +00066 { +00067 __route [i] = vert.back () ; +00068 vert.pop_back () ; +00069 } +00070 } +00071 +00072 bool PartialMappedXover :: operator () (Route & __route1, Route & __route2) +00073 { +00074 +00075 unsigned cut1 = rng.random (__route1.size ()), cut2 = rng.random (__route2.size ()) ; +00076 +00077 if (cut2 < cut1) +00078 std :: swap (cut1, cut2) ; +00079 +00080 // Between the cuts +00081 for (unsigned i = cut1 ; i < cut2 ; i ++) +00082 std :: swap (__route1 [i], __route2 [i]) ; +00083 +00084 // Outside the cuts +00085 repair (__route1, cut1, cut2) ; +00086 repair (__route2, cut1, cut2) ; 00087 -00088 return true ; -00089 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00088 __route1.invalidate () ; +00089 __route2.invalidate () ; +00090 +00091 return true ; +00092 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html
index 5c5b555d6..3e6c8792e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +partial_mapped_xover.h
00001 /* 00002 * <partial_mapped_xover.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,19 +65,20 @@ 00041 00042 #include "route.h" 00043 -00045 class PartialMappedXover : public eoQuadOp <Route> { -00046 -00047 public : -00048 -00049 bool operator () (Route & __route1, Route & __route2) ; -00050 -00051 private : -00052 -00053 void repair (Route & __route, unsigned __cut1, unsigned __cut2) ; -00054 } ; -00055 -00056 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00045 class PartialMappedXover : public eoQuadOp <Route> +00046 { +00047 +00048 public : +00049 +00050 bool operator () (Route & __route1, Route & __route2) ; +00051 +00052 private : +00053 +00054 void repair (Route & __route, unsigned __cut1, unsigned __cut2) ; +00055 } ; +00056 +00057 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html
index d3c30f0b8..b3a887457 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoAggEvalFunc.h
00001 /* 00002 * <peoAggEvalFunc.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 -00004 * (C) OPAC Team, LIFL, 2002-2007 +00004 * (C) OPAC Team, LIFL, 2002-2008 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -64,13 +64,12 @@ 00040 #include <eoFunctor.h> 00041 00043 -00053 template< class EOT > class peoAggEvalFunc : public eoBF< EOT&, const typename EOT :: Fitness&, void > { -00054 -00055 }; +00053 template< class EOT > class peoAggEvalFunc : public eoBF< EOT&, const typename EOT :: Fitness&, void > +00054 {}; +00055 00056 -00057 -00058 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00057 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html
index 221bda745..f7786bd15 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoAsyncIslandMig.h
00001 /* 00002 * <peoAsyncIslandMig.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 -00004 * (C) OPAC Team, LIFL, 2002-2007 +00004 * (C) OPAC Team, LIFL, 2002-2008 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -48,7 +48,7 @@ 00024 * professionals having in-depth computer knowledge. Users are therefore 00025 * encouraged to load and test the software's suitability as regards their 00026 * requirements in conditions enabling the security of their systems and/or -00027 * data to be ensured and, more generally, to use and operate it in the +00027 * peoData to be ensured and, more generally, to use and operate it in the 00028 * same conditions as regards security. 00029 * The fact that you are presently reading this means that you have had 00030 * knowledge of the CeCILL license and that you accept its terms. @@ -65,152 +65,139 @@ 00041 #include <queue> 00042 00043 #include <utils/eoUpdater.h> -00044 -00045 #include <eoContinue.h> -00046 #include <eoSelect.h> -00047 #include <eoReplacement.h> -00048 #include <eoPop.h> +00044 #include <eoContinue.h> +00045 #include <eoSelect.h> +00046 #include <eoReplacement.h> +00047 #include <eoPop.h> +00048 00049 -00050 #include "core/topology.h" -00051 #include "core/cooperative.h" -00052 #include "core/eoPop_comm.h" -00053 #include "core/peo_debug.h" -00054 -00055 +00050 #include "core/messaging.h" +00051 #include "core/eoPop_mesg.h" +00052 #include "core/eoVector_mesg.h" +00053 #include "core/topology.h" +00054 #include "core/thread.h" +00055 #include "core/cooperative.h" +00056 #include "core/peo_debug.h" 00057 -00140 template< class EOT > class peoAsyncIslandMig : public Cooperative, public eoUpdater { -00141 -00142 public: -00143 -00153 peoAsyncIslandMig( -00154 eoContinue< EOT >& __cont, -00155 eoSelect< EOT >& __select, -00156 eoReplacement< EOT >& __replace, -00157 Topology& __topology, -00158 eoPop< EOT >& __source, -00159 eoPop< EOT >& __destination -00160 ); -00161 -00166 void operator()(); -00167 -00169 void pack(); -00171 void unpack(); -00172 -00173 -00174 private: -00175 -00176 void emigrate(); -00177 void immigrate(); -00178 -00179 -00180 private: -00181 -00182 eoContinue< EOT >& cont; // continuator -00183 eoSelect< EOT >& select; // the selection strategy -00184 eoReplacement< EOT >& replace; // the replacement strategy -00185 Topology& topology; // the neighboring topology -00186 -00187 // source and destination populations -00188 eoPop< EOT >& source; -00189 eoPop< EOT >& destination; -00190 -00191 // immigrants & emigrants in the queue -00192 std :: queue< eoPop< EOT > > imm; -00193 std :: queue< eoPop< EOT > > em; -00194 -00195 std :: queue< Cooperative* > coop_em; -00196 }; +00058 +00064 template< class TYPESELECT, class TYPEREPLACE > class peoAsyncIslandMig : public Cooperative, public eoUpdater +00065 { +00066 +00067 public: +00068 +00074 peoAsyncIslandMig( +00075 continuator & __cont, +00076 selector <TYPESELECT> & __select, +00077 replacement <TYPEREPLACE> & __replace, +00078 Topology& __topology +00079 ); +00080 +00082 void operator()(); +00084 void pack(); +00086 void unpack(); +00088 void packSynchronizeReq(); +00089 +00090 private: +00092 void emigrate(); +00094 void immigrate(); +00095 +00096 private: +00104 continuator & cont; +00105 selector <TYPESELECT> & select; +00106 replacement <TYPEREPLACE> & replace; +00107 Topology& topology; +00108 std :: queue< TYPEREPLACE > imm; +00109 std :: queue< TYPESELECT > em; +00110 std :: queue< Cooperative* > coop_em; +00111 }; +00112 +00113 +00114 template< class TYPESELECT , class TYPEREPLACE> peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > :: peoAsyncIslandMig( +00115 +00116 continuator & __cont, +00117 selector <TYPESELECT> & __select, +00118 replacement <TYPEREPLACE> & __replace, +00119 Topology& __topology +00120 +00121 ) : select( __select ), replace( __replace ), topology( __topology ), cont(__cont) +00122 { +00123 +00124 __topology.add( *this ); +00125 } +00126 +00127 +00128 template< class TYPESELECT , class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > :: pack() +00129 { +00130 lock (); +00131 ::pack( coop_em.front()->getKey() ); +00132 ::pack(em.front()); +00133 coop_em.pop(); +00134 em.pop(); +00135 unlock(); +00136 } +00137 +00138 +00139 template< class TYPESELECT, class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT , TYPEREPLACE> :: unpack() +00140 { +00141 lock (); +00142 TYPEREPLACE mig; +00143 ::unpack(mig); +00144 imm.push( mig ); +00145 unlock(); +00146 } +00147 +00148 template< class TYPESELECT , class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > :: packSynchronizeReq() +00149 {} +00150 +00151 template< class TYPESELECT , class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT , TYPEREPLACE> :: emigrate() +00152 { +00153 std :: vector< Cooperative* >in, out; +00154 topology.setNeighbors( this, in, out ); +00155 +00156 for ( unsigned i = 0; i < out.size(); i++ ) +00157 { +00158 +00159 TYPESELECT mig; +00160 select(mig); +00161 em.push( mig ); +00162 coop_em.push( out[i] ); +00163 send( out[i] ); +00164 printDebugMessage( "sending some emigrants." ); +00165 } +00166 } +00167 +00168 +00169 template< class TYPESELECT, class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT , TYPEREPLACE> :: immigrate() +00170 { +00171 +00172 lock (); +00173 { +00174 +00175 while ( !imm.empty() ) +00176 { +00177 replace(imm.front() ); +00178 imm.pop(); +00179 printDebugMessage( "receiving some immigrants." ); +00180 } +00181 } +00182 unlock(); +00183 } +00184 +00185 +00186 template< class TYPESELECT , class TYPEREPLACE> void peoAsyncIslandMig< TYPESELECT , TYPEREPLACE > :: operator()() +00187 { +00188 +00189 if (! cont.check()) +00190 { +00191 +00192 emigrate(); +00193 immigrate(); +00194 } +00195 } +00196 00197 -00198 -00199 template< class EOT > peoAsyncIslandMig< EOT > :: peoAsyncIslandMig( -00200 -00201 eoContinue< EOT >& __cont, -00202 eoSelect< EOT >& __select, -00203 eoReplacement< EOT >& __replace, -00204 Topology& __topology, -00205 eoPop< EOT >& __source, -00206 eoPop< EOT >& __destination -00207 -00208 ) : cont( __cont ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) -00209 { -00210 -00211 __topology.add( *this ); -00212 } -00213 -00214 -00215 template< class EOT > void peoAsyncIslandMig< EOT > :: pack() -00216 { -00217 -00218 lock(); { -00219 -00220 :: pack( coop_em.front()->getKey() ); -00221 :: pack( em.front() ); -00222 coop_em.pop(); -00223 em.pop(); -00224 } -00225 unlock(); -00226 } -00227 -00228 -00229 template< class EOT > void peoAsyncIslandMig< EOT > :: unpack() -00230 { -00231 -00232 lock(); { -00233 -00234 eoPop< EOT > mig; -00235 :: unpack( mig ); -00236 imm.push( mig ); -00237 } -00238 unlock(); -00239 } -00240 -00241 -00242 template< class EOT > void peoAsyncIslandMig< EOT > :: emigrate() -00243 { -00244 -00245 std :: vector< Cooperative* >in, out; -00246 topology.setNeighbors( this, in, out ); -00247 -00248 for ( unsigned i = 0; i < out.size(); i++ ) { -00249 -00250 eoPop< EOT > mig; -00251 select( source, mig ); -00252 em.push( mig ); -00253 coop_em.push( out[i] ); -00254 send( out[i] ); -00255 printDebugMessage( "sending some emigrants." ); -00256 } -00257 } -00258 -00259 -00260 template< class EOT > void peoAsyncIslandMig< EOT > :: immigrate() -00261 { -00262 -00263 lock(); { -00264 -00265 while ( !imm.empty() ) { -00266 -00267 replace( destination, imm.front() ); -00268 imm.pop(); -00269 printDebugMessage( "receiving some immigrants." ); -00270 } -00271 } -00272 unlock(); -00273 } -00274 -00275 -00276 template< class EOT > void peoAsyncIslandMig< EOT > :: operator()() { -00277 -00278 if ( !cont( source ) ) { -00279 -00280 emigrate(); // sending emigrants -00281 immigrate(); // receiving immigrants -00282 } -00283 } -00284 -00285 -00286 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00198 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html
index a549ffcc8..c86f6ade8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoNoAggEvalFunc.h
00001 /* 00002 * <peoNoAggEvalFunc.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 -00004 * (C) OPAC Team, LIFL, 2002-2007 +00004 * (C) OPAC Team, LIFL, 2002-2008 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -64,22 +64,24 @@ 00040 #include "peoAggEvalFunc.h" 00041 00043 -00047 template< class EOT > class peoNoAggEvalFunc : public peoAggEvalFunc< EOT > { -00048 -00049 public : -00050 -00052 void operator()( EOT& __sol, const typename EOT :: Fitness& __fit ); -00053 }; -00054 -00055 -00056 template< class EOT > void peoNoAggEvalFunc< EOT > :: operator()( EOT& __sol, const typename EOT :: Fitness& __fit ) { +00047 template< class EOT > class peoNoAggEvalFunc : public peoAggEvalFunc< EOT > +00048 { +00049 +00050 public : +00051 +00055 void operator()( EOT& __sol, const typename EOT :: Fitness& __fit ); +00056 }; 00057 -00058 __sol.fitness( __fit ); -00059 } -00060 +00058 +00059 template< class EOT > void peoNoAggEvalFunc< EOT > :: operator()( EOT& __sol, const typename EOT :: Fitness& __fit ) +00060 { 00061 -00062 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00062 __sol.fitness( __fit ); +00063 } +00064 +00065 +00066 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoPopEval_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoPopEval_8h-source.html
index 5a841add6..745023cd1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoPopEval_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoPopEval_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoPopEval.h
00001 /* 00002 * <peoPopEval.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 -00004 * (C) OPAC Team, LIFL, 2002-2007 +00004 * (C) OPAC Team, LIFL, 2002-2008 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -61,19 +61,183 @@ 00037 #ifndef __peoPopEval_h 00038 #define __peoPopEval_h 00039 -00040 #include "core/service.h" -00041 -00043 -00047 template< class EOT > class peoPopEval : public Service { -00048 -00049 public: -00050 -00052 virtual void operator()( eoPop< EOT >& __pop ) = 0; -00053 }; -00054 +00040 #include <queue> +00041 #include <eoEvalFunc.h> +00042 +00043 #include "core/messaging.h" +00044 #include "core/peo_debug.h" +00045 #include "peoAggEvalFunc.h" +00046 #include "peoNoAggEvalFunc.h" +00047 +00053 template< class EOT > class peoPopEval : public Service, public eoPopEvalFunc<EOT> +00054 { 00055 -00056 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00056 public: +00057 +00062 peoPopEval( eoEvalFunc< EOT >& __eval_func ); +00063 +00068 peoPopEval( const std :: vector< eoEvalFunc < EOT >* >& __funcs, peoAggEvalFunc< EOT >& __merge_eval ); +00069 +00073 void operator()(eoPop< EOT >& __pop); +00074 +00078 void operator()( eoPop< EOT >& __dummy, eoPop< EOT >& __pop ); +00079 +00082 void packData(); +00083 +00086 void unpackData(); +00087 +00089 void execute(); +00090 +00093 void packResult(); +00094 +00097 void unpackResult(); +00098 +00101 void notifySendingData(); +00102 +00105 void notifySendingAllResourceRequests(); +00106 +00107 private: +00108 +00119 const std :: vector< eoEvalFunc < EOT >* >& funcs; +00120 std :: vector< eoEvalFunc < EOT >* > one_func; +00121 peoAggEvalFunc< EOT >& merge_eval; +00122 peoNoAggEvalFunc< EOT > no_merge_eval; +00123 std :: queue< EOT* >tasks; +00124 std :: map< EOT*, std :: pair< unsigned, unsigned > > progression; +00125 unsigned num_func; +00126 EOT sol; +00127 EOT *ad_sol; +00128 unsigned total; +00129 }; +00130 +00131 +00132 template< class EOT > peoPopEval< EOT > :: peoPopEval( eoEvalFunc< EOT >& __eval_func ) : +00133 +00134 funcs( one_func ), merge_eval( no_merge_eval ) +00135 { +00136 +00137 one_func.push_back( &__eval_func ); +00138 } +00139 +00140 +00141 template< class EOT > peoPopEval< EOT > :: peoPopEval( +00142 +00143 const std :: vector< eoEvalFunc< EOT >* >& __funcs, +00144 peoAggEvalFunc< EOT >& __merge_eval +00145 +00146 ) : funcs( __funcs ), merge_eval( __merge_eval ) +00147 {} +00148 +00149 template< class EOT > void peoPopEval< EOT >::operator()(eoPop< EOT >& __dummy, eoPop< EOT >& __pop ) +00150 { +00151 this->operator()(__pop); +00152 } +00153 +00154 template< class EOT > void peoPopEval< EOT >::operator()(eoPop< EOT >& __pop ) +00155 { +00156 for ( unsigned i = 0; i < __pop.size(); i++ ) +00157 { +00158 __pop[ i ].fitness(typename EOT :: Fitness() ); +00159 progression[ &__pop[ i ] ].first = funcs.size() - 1; +00160 progression[ &__pop[ i ] ].second = funcs.size(); +00161 for ( unsigned j = 0; j < funcs.size(); j++ ) +00162 { +00163 /* Queuing the 'invalid' solution and its associated owner */ +00164 tasks.push( &__pop[ i ] ); +00165 } +00166 } +00167 total = funcs.size() * __pop.size(); +00168 requestResourceRequest( funcs.size() * __pop.size() ); +00169 stop(); +00170 } +00171 +00172 +00173 template< class EOT > void peoPopEval< EOT > :: packData() +00174 { +00175 // printDebugMessage ("debut pakc data"); +00176 pack( progression[ tasks.front() ].first-- ); +00177 +00178 /* Packing the contents :-) of the solution */ +00179 pack( *tasks.front() ); +00180 +00181 /* Packing the addresses of both the solution and the owner */ +00182 pack( tasks.front() ); +00183 tasks.pop( ); +00184 } +00185 +00186 +00187 template< class EOT > void peoPopEval< EOT > :: unpackData() +00188 { +00189 unpack( num_func ); +00190 /* Unpacking the solution */ +00191 unpack( sol ); +00192 /* Unpacking the @ of that one */ +00193 unpack( ad_sol ); +00194 } +00195 +00196 +00197 template< class EOT > void peoPopEval< EOT > :: execute() +00198 { +00199 +00200 /* Computing the fitness of the solution */ +00201 funcs[ num_func ]->operator()( sol ); +00202 } +00203 +00204 +00205 template< class EOT > void peoPopEval< EOT > :: packResult() +00206 { +00207 /* Packing the fitness of the solution */ +00208 pack( sol.fitness() ); +00209 /* Packing the @ of the individual */ +00210 pack( ad_sol ); +00211 } +00212 +00213 +00214 template< class EOT > void peoPopEval< EOT > :: unpackResult() +00215 { +00216 typename EOT :: Fitness fit; +00217 +00218 /* Unpacking the computed fitness */ +00219 unpack( fit ); +00220 +00221 /* Unpacking the @ of the associated individual */ +00222 unpack( ad_sol ); +00223 +00224 +00225 /* Associating the fitness the local solution */ +00226 merge_eval( *ad_sol, fit ); +00227 +00228 progression[ ad_sol ].second--; +00229 +00230 /* Notifying the container of the termination of the evaluation */ +00231 if ( !progression[ ad_sol ].second ) +00232 { +00233 +00234 progression.erase( ad_sol ); +00235 } +00236 +00237 total--; +00238 if ( !total ) +00239 { +00240 +00241 getOwner()->setActive(); +00242 resume(); +00243 } +00244 } +00245 +00246 +00247 template< class EOT > void peoPopEval< EOT > :: notifySendingData() +00248 {} +00249 +00250 +00251 template< class EOT > void peoPopEval< EOT > :: notifySendingAllResourceRequests() +00252 { +00253 getOwner()->setPassive(); +00254 } +00255 +00256 +00257 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html
index fe6024a01..566f290df 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoSyncIslandMig.h
00001 /* 00002 * <peoSyncIslandMig.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -73,172 +73,183 @@ 00049 #include <eoSelect.h> 00050 #include <eoReplacement.h> 00051 #include <eoPop.h> -00052 -00053 #include "core/topology.h" -00054 #include "core/thread.h" -00055 #include "core/eoPop_comm.h" -00056 #include "core/peo_debug.h" +00052 #include "peoData.h" +00053 +00054 #include "core/messaging.h" +00055 #include "core/eoPop_mesg.h" +00056 #include "core/eoVector_mesg.h" 00057 -00058 -00060 -00142 template< class EOT > class peoSyncIslandMig : public Cooperative, public eoUpdater { -00143 -00144 public: -00145 -00155 peoSyncIslandMig( -00156 unsigned __frequency, -00157 eoSelect< EOT >& __select, -00158 eoReplacement< EOT >& __replace, -00159 Topology& __topology, -00160 eoPop< EOT >& __source, -00161 eoPop< EOT >& __destination -00162 ); -00163 -00168 void operator()(); -00169 -00171 void pack(); -00173 void unpack(); +00058 #include "core/topology.h" +00059 #include "core/thread.h" +00060 #include "core/cooperative.h" +00061 #include "core/peo_debug.h" +00062 +00063 #include "rmc/mpi/synchron.h" +00064 +00065 +00071 template< class TYPESELECT, class TYPEREPLACE > class peoSyncIslandMig : public Cooperative, public eoUpdater +00072 { +00073 +00074 public: +00075 +00081 peoSyncIslandMig( +00082 unsigned __frequency, +00083 selector <TYPESELECT> & __select, +00084 replacement <TYPEREPLACE> & __replace, +00085 Topology& __topology +00086 ); +00087 +00089 void operator()(); +00091 void pack(); +00093 void unpack(); +00095 void packSynchronizeReq(); +00097 void notifySending(); +00099 void notifyReceiving(); +00101 void notifySendingSyncReq(); +00103 void notifySynchronized(); +00104 +00105 private: +00106 +00107 void emigrate(); +00108 void immigrate(); +00109 +00110 +00111 private: +00124 eoSyncContinue cont; +00125 selector <TYPESELECT> & select; +00126 replacement <TYPEREPLACE> & replace; +00127 Topology& topology; +00128 std :: queue< TYPEREPLACE > imm; +00129 std :: queue< TYPESELECT > em; +00130 std :: queue< Cooperative* > coop_em; +00131 sem_t sync; +00132 bool explicitPassive; +00133 bool standbyMigration; +00134 std :: vector< Cooperative* > in, out, all; +00135 unsigned nbMigrations; +00136 }; +00137 +00138 +00139 template< class TYPESELECT, class TYPEREPLACE > peoSyncIslandMig< TYPESELECT,TYPEREPLACE > :: peoSyncIslandMig( +00140 +00141 unsigned __frequency, +00142 selector <TYPESELECT> & __select, +00143 replacement <TYPEREPLACE> & __replace, +00144 Topology& __topology +00145 ) : cont( __frequency ), select( __select ), replace( __replace ), topology( __topology ) +00146 { +00147 +00148 __topology.add( *this ); +00149 sem_init( &sync, 0, 0 ); +00150 } +00151 +00152 +00153 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT, TYPEREPLACE > :: pack() +00154 { +00155 ::pack( coop_em.front()->getKey() ); +00156 ::pack(em.front()); +00157 coop_em.pop(); +00158 em.pop(); +00159 } +00160 +00161 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT, TYPEREPLACE > :: unpack() +00162 { +00163 TYPEREPLACE mig; +00164 ::unpack(mig); +00165 imm.push( mig ); +00166 explicitPassive = true; +00167 } +00168 +00169 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT,TYPEREPLACE > :: packSynchronizeReq() +00170 { +00171 +00172 packSynchronRequest( all ); +00173 } 00174 -00176 void notifySending(); +00175 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT , TYPEREPLACE > :: emigrate() +00176 { 00177 -00178 -00179 private: +00178 for ( unsigned i = 0; i < out.size(); i ++ ) +00179 { 00180 -00181 void emigrate(); -00182 void immigrate(); -00183 -00184 -00185 private: -00186 -00187 eoPeriodicContinue< EOT > cont; -00188 eoSelect< EOT >& select; // selection strategy -00189 eoReplacement< EOT >& replace; // replacement strategy -00190 Topology& topology; // neighboring topology -00191 -00192 // source and target populations -00193 eoPop< EOT >& source; -00194 eoPop< EOT >& destination; -00195 -00196 // immigrants & emigrants in the queue -00197 std :: queue< eoPop< EOT > > imm; -00198 std :: queue< eoPop< EOT > > em; +00181 TYPESELECT mig; +00182 select( mig ); +00183 em.push( mig ); +00184 coop_em.push( out[ i ] ); +00185 send( out[ i ] ); +00186 printDebugMessage( "peoSyncIslandMig: sending some emigrants." ); +00187 } +00188 } +00189 +00190 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT , TYPEREPLACE > :: immigrate() +00191 { +00192 assert( imm.size() ); +00193 +00194 while ( imm.size() ) +00195 { +00196 replace( imm.front() ) ; +00197 imm.pop(); +00198 } 00199 -00200 std :: queue< Cooperative* > coop_em; -00201 -00202 sem_t sync; -00203 }; -00204 +00200 printDebugMessage( "peoSyncIslandMig: receiving some immigrants." ); +00201 } +00202 +00203 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT , TYPEREPLACE > :: operator()() +00204 { 00205 -00206 template< class EOT > peoSyncIslandMig< EOT > :: peoSyncIslandMig( -00207 -00208 unsigned __frequency, -00209 eoSelect< EOT >& __select, -00210 eoReplacement< EOT >& __replace, -00211 Topology& __topology, -00212 eoPop< EOT >& __source, -00213 eoPop< EOT >& __destination -00214 -00215 ) : cont( __frequency ), select( __select ), replace( __replace ), topology( __topology ), source( __source ), destination( __destination ) -00216 { -00217 -00218 __topology.add( *this ); -00219 sem_init( &sync, 0, 0 ); -00220 } -00221 -00222 -00223 template< class EOT > void peoSyncIslandMig< EOT > :: pack() { +00206 if (! cont.check() ) +00207 { +00208 explicitPassive = standbyMigration = false; +00209 topology.setNeighbors( this, in, out ); +00210 all = topology; +00211 nbMigrations = 0; +00212 synchronizeCoopEx(); +00213 stop(); +00214 // sending emigrants +00215 emigrate(); +00216 // synchronizing +00217 sem_wait( &sync ); +00218 // receiving immigrants +00219 immigrate(); +00220 synchronizeCoopEx(); +00221 stop(); +00222 } +00223 } 00224 -00225 lock(); { -00226 -00227 :: pack( coop_em.front()->getKey() ); -00228 :: pack( em.front() ); -00229 coop_em.pop(); -00230 em.pop(); -00231 } -00232 unlock(); -00233 } -00234 -00235 -00236 template< class EOT > void peoSyncIslandMig< EOT > :: unpack() { -00237 -00238 lock(); { -00239 -00240 eoPop< EOT > mig; -00241 :: unpack( mig ); -00242 imm.push( mig ); -00243 } -00244 unlock(); -00245 -00246 sem_post( &sync ); -00247 } -00248 -00249 -00250 template< class EOT > void peoSyncIslandMig< EOT > :: emigrate() { -00251 -00252 std :: vector< Cooperative* > in, out; -00253 topology.setNeighbors( this, in, out ); -00254 -00255 for ( unsigned i = 0; i < out.size(); i ++ ) { +00225 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT , TYPEREPLACE > :: notifySending() +00226 { +00227 if ( !explicitPassive ) getOwner()->setPassive(); +00228 } +00229 +00230 template< class TYPESELECT, class TYPEREPLACE > void peoSyncIslandMig< TYPESELECT , TYPEREPLACE > :: notifyReceiving() +00231 { +00232 nbMigrations++; +00233 +00234 if ( nbMigrations == in.size() ) +00235 { +00236 +00237 if ( standbyMigration ) getOwner()->setActive(); +00238 sem_post( &sync ); +00239 } +00240 } +00241 +00242 template< class TYPESELECT, class TYPE > void peoSyncIslandMig< TYPESELECT, TYPE > :: notifySendingSyncReq () +00243 { +00244 +00245 getOwner()->setPassive(); +00246 } +00247 +00248 template< class TYPESELECT, class TYPE > void peoSyncIslandMig< TYPESELECT, TYPE > :: notifySynchronized () +00249 { +00250 +00251 standbyMigration = true; +00252 getOwner()->setActive(); +00253 resume(); +00254 } +00255 00256 -00257 eoPop< EOT > mig; -00258 select( source, mig ); -00259 em.push( mig ); -00260 coop_em.push( out[ i ] ); -00261 send( out[ i ] ); -00262 printDebugMessage( "sending some emigrants." ); -00263 } -00264 } -00265 -00266 -00267 template< class EOT > void peoSyncIslandMig< EOT > :: immigrate() { -00268 -00269 lock(); { -00270 -00271 assert( imm.size() ); -00272 replace( destination, imm.front() ) ; -00273 imm.pop(); -00274 printDebugMessage( "receiving some immigrants." ); -00275 } -00276 unlock(); -00277 } -00278 -00279 -00280 template< class EOT > void peoSyncIslandMig< EOT > :: operator()() { -00281 -00282 if ( !cont( source ) ) { -00283 -00284 // sending emigrants -00285 emigrate(); -00286 stop(); -00287 -00288 // synchronizing -00289 sem_wait( &sync ); -00290 getOwner()->setActive(); -00291 -00292 // receiving immigrants -00293 immigrate(); -00294 } -00295 } -00296 -00297 -00298 template< class EOT > void peoSyncIslandMig< EOT > :: notifySending() { -00299 -00300 lock(); { -00301 -00302 if ( imm.empty() ) { -00303 -00304 printDebugMessage( "entering pasive mode\n" ); -00305 getOwner()->setPassive(); -00306 } -00307 } -00308 unlock(); -00309 -00310 resume(); -00311 } -00312 -00313 -00314 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00257 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peoTransform_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peoTransform_8h-source.html
index e658e6ce8..416390786 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peoTransform_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peoTransform_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peoTransform.h
00001 /* 00002 * <peoTransform.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,18 +61,139 @@ 00037 #ifndef __peoTransform_h 00038 #define __peoTransform_h 00039 -00040 #include <eoTransform.h> -00041 -00042 #include "core/service.h" -00043 +00040 #include "core/thread.h" +00041 #include "core/messaging.h" +00042 #include "core/peo_debug.h" +00043 #include "core/service.h" +00044 00045 -00048 template< class EOT > class peoTransform : public Service, public eoTransform< EOT > { -00049 -00050 }; -00051 -00052 -00053 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00046 extern int getNodeRank(); +00047 +00053 template< class EOT > class peoTransform : public Service, public eoTransform< EOT > +00054 { +00055 +00056 public: +00057 +00063 peoTransform( +00064 eoQuadOp< EOT >& __cross, +00065 double __cross_rate, +00066 eoMonOp< EOT >& __mut, +00067 double __mut_rate +00068 ); +00069 +00072 void operator()( eoPop< EOT >& __pop ); +00074 void packData(); +00076 void unpackData(); +00078 void execute(); +00080 void packResult(); +00082 void unpackResult(); +00084 void notifySendingData(); +00086 void notifySendingAllResourceRequests(); +00087 +00088 private: +00098 eoQuadOp< EOT >& cross; +00099 double cross_rate; +00100 eoMonOp< EOT >& mut; +00101 double mut_rate; +00102 unsigned idx; +00103 eoPop< EOT >* pop; +00104 EOT father, mother; +00105 unsigned num_term; +00106 }; +00107 +00108 template< class EOT > peoTransform< EOT > :: peoTransform( +00109 +00110 eoQuadOp< EOT >& __cross, +00111 double __cross_rate, +00112 eoMonOp < EOT >& __mut, +00113 double __mut_rate +00114 +00115 ) : cross( __cross ), cross_rate( __cross_rate ), mut( __mut ), mut_rate( __mut_rate ) +00116 {} +00117 +00118 +00119 template< class EOT > void peoTransform< EOT > :: packData() +00120 { +00121 +00122 pack( idx ); +00123 pack( pop->operator[]( idx++ ) ); +00124 pack( pop->operator[]( idx++ ) ); +00125 } +00126 +00127 +00128 template< class EOT > void peoTransform< EOT > :: unpackData() +00129 { +00130 +00131 unpack( idx ); +00132 unpack( father ); +00133 unpack( mother ); +00134 } +00135 +00136 +00137 template< class EOT > void peoTransform< EOT > :: execute() +00138 { +00139 +00140 if ( rng.uniform() < cross_rate ) cross( mother, father ); +00141 +00142 if ( rng.uniform() < mut_rate ) mut( mother ); +00143 if ( rng.uniform() < mut_rate ) mut( father ); +00144 } +00145 +00146 +00147 template< class EOT > void peoTransform< EOT > :: packResult() +00148 { +00149 +00150 pack( idx ); +00151 pack( father ); +00152 pack( mother ); +00153 } +00154 +00155 +00156 template< class EOT > void peoTransform< EOT > :: unpackResult() +00157 { +00158 +00159 unsigned sidx; +00160 +00161 unpack( sidx ); +00162 unpack( pop->operator[]( sidx++ ) ); +00163 unpack( pop->operator[]( sidx ) ); +00164 num_term += 2; +00165 +00166 // Can be used with an odd size +00167 if ( num_term == 2*(pop->size()/2) ) +00168 { +00169 +00170 getOwner()->setActive(); +00171 resume(); +00172 } +00173 } +00174 +00175 +00176 template< class EOT > void peoTransform< EOT > :: operator()( eoPop < EOT >& __pop ) +00177 { +00178 +00179 printDebugMessage( "peoTransform: performing the parallel transformation step." ); +00180 pop = &__pop; +00181 idx = 0; +00182 num_term = 0; +00183 requestResourceRequest( __pop.size() / 2 ); +00184 stop(); +00185 } +00186 +00187 +00188 template< class EOT > void peoTransform< EOT > :: notifySendingData() +00189 {} +00190 +00191 +00192 template< class EOT > void peoTransform< EOT > :: notifySendingAllResourceRequests() +00193 { +00194 +00195 getOwner()->setPassive(); +00196 } +00197 +00198 +00199 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo_8h-source.html
index 698147329..a2af360d6 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo.h
00001 /* 00002 * <peo.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 -00004 * (C) OPAC Team, LIFL, 2002-2007 +00004 * (C) OPAC Team, LIFL, 2002-2008 00005 * -00006 * Sebastien Cahon, Alexandru-Adrian Tantar +00006 * Sebastien Cahon, Alexandru-Adrian Tantar, Clive Canape 00007 * 00008 * This software is governed by the CeCILL license under French law and 00009 * abiding by the rules of distribution of free software. You can use, @@ -63,33 +63,44 @@ 00039 00040 #include <eo> 00041 #include <mo> -00042 +00042 #include <moeo> 00043 +00044 00319 00320 #include "core/peo_init.h" 00321 #include "core/peo_run.h" 00322 #include "core/peo_fin.h" 00323 -00324 #include "core/eoVector_comm.h" -00325 -00326 #include "peoEA.h" +00324 #include "core/messaging.h" +00325 #include "core/eoPop_mesg.h" +00326 #include "core/eoVector_mesg.h" 00327 -00328 /* Parallel steps of the E.A. */ -00329 #include "peoSeqTransform.h" -00330 #include "peoParaSGATransform.h" -00331 #include "peoSeqPopEval.h" -00332 #include "peoParaPopEval.h" -00333 -00334 /* Cooperative island model */ -00335 #include "core/ring_topo.h" -00336 #include "peoAsyncIslandMig.h" -00337 #include "peoSyncIslandMig.h" -00338 -00339 /* Synchronous multi-start model */ -00340 #include "peoSyncMultiStart.h" -00341 -00342 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00328 #include "peoWrapper.h" +00329 +00330 /* <------- components for parallel algorithms -------> */ +00331 #include "peoTransform.h" +00332 #include "peoEvalFunc.h" +00333 #include "peoPopEval.h" +00334 #include "peoMoeoPopEval.h" +00335 +00336 /* Cooperative island model */ +00337 #include "core/ring_topo.h" +00338 #include "core/star_topo.h" +00339 #include "core/random_topo.h" +00340 #include "core/complete_topo.h" +00341 #include "peoData.h" +00342 #include "peoSyncIslandMig.h" +00343 #include "peoAsyncIslandMig.h" +00344 +00345 /* Synchronous multi-start model */ +00346 #include "peoMultiStart.h" +00347 /* <------- components for parallel algorithms -------> */ +00348 +00349 /* Parallel PSO */ +00350 #include "peoPSO.h" +00351 +00352 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8cpp-source.html
index 80f5471a8..d7a445007 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_debug.cpp
00001 /* 00002 * <peo_debug.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -74,60 +74,72 @@ 00050 00051 #define DEBUG_PATH "./log/" 00052 -00053 static bool debug = true; -00054 -00055 static char host [MAX_BUFF_SIZE]; -00056 -00057 std :: vector <FILE *> files; -00058 -00059 void setDebugMode (bool __dbg) { +00053 +00054 static bool debug = false; +00055 +00056 static char host [MAX_BUFF_SIZE]; +00057 +00058 std :: vector <FILE *> files; +00059 00060 -00061 debug = __dbg; -00062 gethostname (host, MAX_BUFF_SIZE); -00063 } -00064 -00065 extern int getNodeRank (); -00066 -00067 void initDebugging () { -00068 -00069 mkdir (DEBUG_PATH, S_IRWXU); -00070 // files.push_back (stdout); -00071 char buff [MAX_BUFF_SIZE]; -00072 sprintf (buff, "%s/%d", DEBUG_PATH, getNodeRank ()); -00073 files.push_back (fopen (buff, "w")); -00074 } -00075 -00076 void endDebugging () { -00077 -00078 for (unsigned i = 0; i < files.size (); i ++) -00079 if (files [i] != stdout) -00080 fclose (files [i]); -00081 } +00061 void setDebugMode (bool __dbg) +00062 { +00063 +00064 debug = __dbg; +00065 gethostname (host, MAX_BUFF_SIZE); +00066 } +00067 +00068 extern int getNodeRank (); +00069 +00070 void initDebugging () +00071 { +00072 +00073 mkdir (DEBUG_PATH, S_IRWXU); +00074 // files.push_back (stdout); +00075 char buff [MAX_BUFF_SIZE]; +00076 sprintf (buff, "%s/%d", DEBUG_PATH, getNodeRank ()); +00077 files.push_back (fopen (buff, "w")); +00078 } +00079 +00080 void endDebugging () +00081 { 00082 -00083 void printDebugMessage (const char * __mess) { -00084 -00085 if (debug) { -00086 -00087 char buff [MAX_BUFF_SIZE]; -00088 time_t t = time (0); -00089 -00090 /* Date */ -00091 sprintf (buff, "[%s][%s: ", host, ctime (& t)); -00092 * strchr (buff, '\n') = ']'; -00093 for (unsigned i = 0; i < files.size (); i ++) -00094 fprintf (files [i], buff); -00095 -00096 /* Message */ -00097 sprintf (buff, "%s", __mess); -00098 -00099 for (unsigned i = 0; i < files.size (); i ++) { -00100 fputs (buff, files [i]); -00101 fputs ("\n", files [i]); -00102 fflush (files [i]); -00103 } -00104 } -00105 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00083 for (unsigned i = 0; i < files.size (); i ++) +00084 if (files [i] != stdout) +00085 fclose (files [i]); +00086 files.clear(); +00087 } +00088 +00089 void printDebugMessage (const char * __mess) +00090 { +00091 +00092 if (debug) +00093 { +00094 +00095 char buff [MAX_BUFF_SIZE]; +00096 char localTime [MAX_BUFF_SIZE]; +00097 time_t t = time (0); +00098 +00099 /* Date */ +00100 strcpy( localTime, ctime (& t) ); +00101 localTime[ strlen( localTime )-1 ] = ']'; +00102 sprintf (buff, "[%s][%s: ", host, localTime ); +00103 +00104 for (unsigned i = 0; i < files.size (); i ++) +00105 fprintf (files [i], buff); +00106 +00107 /* Message */ +00108 sprintf (buff, "%s", __mess); +00109 +00110 for (unsigned i = 0; i < files.size (); i ++) +00111 { +00112 fputs (buff, files [i]); +00113 fputs ("\n", files [i]); +00114 fflush (files [i]); +00115 } +00116 } +00117 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8h-source.html
index aa8049514..2e318ec25 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__debug_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_debug.h
00001 /* 00002 * <peo_debug.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -72,7 +72,7 @@ 00048 text-file in a subdirectory) */ 00049 00050 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8cpp-source.html
index 59534a903..259176bfd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_fin.cpp
00001 /* 00002 * <peo_fin.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,18 +63,18 @@ 00039 #include "runner.h" 00040 #include "rmc.h" 00041 -00042 void peo :: finalize () { -00043 -00044 printDebugMessage ("waiting for the termination of all threads"); -00045 -00046 joinRunners (); -00047 +00042 void peo :: finalize () +00043 { +00044 +00045 printDebugMessage ("waiting for the termination of all threads"); +00046 +00047 joinRunners (); 00048 finalizeRMC (); 00049 00050 printDebugMessage ("this is the end"); 00051 endDebugging (); 00052 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8h-source.html
index 3b51acf47..242d572c2 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__fin_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_fin.h
00001 /* 00002 * <peo_fin.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,13 +61,14 @@ 00037 #ifndef __peo_finalize_h 00038 #define __peo_finalize_h 00039 -00040 namespace peo { -00041 -00042 extern void finalize (); -00043 } -00044 -00045 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 namespace peo +00041 { +00042 +00043 extern void finalize (); +00044 } +00045 +00046 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8cpp-source.html
index aa826f960..c318a036e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_init.cpp
00001 /* 00002 * <peo_init.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,32 +62,69 @@ 00038 00039 #include "peo_init.h" 00040 #include "peo_param.h" -00041 #include "peo_debug.h" -00042 #include "rmc.h" -00043 -00044 namespace peo { +00041 +00042 #include "peo_debug.h" +00043 #include "rmc.h" +00044 #include "runner.h" 00045 -00046 int * argc; -00047 -00048 char * * * argv; +00046 +00047 extern void initCommunicableEnv (); +00048 extern void initBuffers (); 00049 -00050 void init (int & __argc, char * * & __argv) { -00051 -00052 argc = & __argc; -00053 -00054 argv = & __argv; -00055 -00056 /* Initializing the the Resource Management and Communication */ -00057 initRMC (__argc, __argv); +00050 extern void initThreadsEnv (); +00051 extern void initReactiveThreadsEnv (); +00052 +00053 extern void initRunnersEnv (); +00054 extern void initWorkersEnv (); +00055 +00056 extern void initScheduler (); +00057 extern void initSynchron (); 00058 -00059 /* Loading the common parameters */ -00060 loadParameters (__argc, __argv); -00061 -00062 /* */ -00063 initDebugging (); -00064 } -00065 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00059 +00060 static void initExecutionEnv() +00061 { +00062 +00063 initCommunicableEnv (); +00064 initBuffers (); +00065 initScheduler(); +00066 initSynchron (); +00067 +00068 initThreadsEnv (); +00069 initReactiveThreadsEnv (); +00070 +00071 initRunnersEnv (); +00072 initWorkersEnv (); +00073 } +00074 +00075 +00076 namespace peo +00077 { +00078 +00079 int * argc; +00080 +00081 char * * * argv; +00082 +00083 void init (int & __argc, char * * & __argv) +00084 { +00085 +00086 argc = & __argc; +00087 +00088 argv = & __argv; +00089 +00090 /* Initializing the execution environment */ +00091 initExecutionEnv(); +00092 +00093 /* Loading the common parameters */ +00094 loadParameters (__argc, __argv); +00095 +00096 /* Initializing the the Resource Management and Communication */ +00097 initRMC ( *peo::argc, *peo::argv); +00098 +00099 /* */ +00100 initDebugging (); +00101 } +00102 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8h-source.html
index 23a8d401f..e579f9cf8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__init_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_init.h
00001 /* 00002 * <peo_init.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,17 +61,18 @@ 00037 #ifndef __peo_init_h 00038 #define __peo_init_h 00039 -00040 namespace peo { -00041 -00042 extern int * argc; -00043 -00044 extern char * * * argv; -00045 -00046 extern void init (int & __argc, char * * & __argv); -00047 } -00048 -00049 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 namespace peo +00041 { +00042 +00043 extern int * argc; +00044 +00045 extern char * * * argv; +00046 +00047 extern void init (int & __argc, char * * & __argv); +00048 } +00049 +00050 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8cpp-source.html
index e96644b1a..2e2975d98 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_param.cpp
00001 /* 00002 * <peo_param.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,18 +64,18 @@ 00040 #include "peo_debug.h" 00041 00042 -00043 -00044 void peo :: loadParameters (int & __argc, char * * & __argv) { +00043 void peo :: loadParameters (int & __argc, char * * & __argv) +00044 { 00045 -00046 eoParser parser (__argc, __argv); +00046 eoParser parser (__argc, __argv); 00047 00048 /* Debug */ 00049 eoValueParam <std :: string> debug_param ("false", "debug", "?"); -00050 parser.processParam (debug_param); -00051 if (debug_param.value () == "true") +00050 parser.processParam (debug_param); +00051 if (debug_param.value () == "true") 00052 setDebugMode (); 00053 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8h-source.html
index c8adfbebb..b3aebde1b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__param_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_param.h
00001 /* 00002 * <peo_param.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,13 +61,14 @@ 00037 #ifndef __peo_param_h 00038 #define __peo_param_h 00039 -00040 namespace peo { -00041 -00042 extern void loadParameters (int & __argc, char * * & __argv); -00043 } -00044 -00045 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 namespace peo +00041 { +00042 +00043 extern void loadParameters (int & __argc, char * * & __argv); +00044 } +00045 +00046 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8cpp-source.html
index aeac16030..1fd14f7d1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_run.cpp
00001 /* 00002 * <peo_run.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -58,18 +58,19 @@ 00034 * 00035 */ 00036 -00037 #include "peo_init.h" -00038 #include "peo_run.h" -00039 #include "rmc.h" -00040 #include "runner.h" +00037 #include "peo_run.h" +00038 #include "rmc.h" +00039 #include "runner.h" +00040 00041 -00042 void peo :: run () { -00043 -00044 startRunners (); -00045 -00046 runRMC (); -00047 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00042 void peo :: run () +00043 { +00044 +00045 startRunners (); +00046 +00047 runRMC (); +00048 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8h-source.html
index d694de425..19043367f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/peo__run_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +peo_run.h
00001 /* 00002 * <peo_run.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,13 +61,14 @@ 00037 #ifndef __peo_run_h 00038 #define __peo_run_h 00039 -00040 namespace peo { -00041 -00042 extern void run (); -00043 } -00044 -00045 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 namespace peo +00041 { +00042 +00043 extern void run (); +00044 } +00045 +00046 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8cpp-source.html
index 8f4efaaab..57c299471 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +reac_thread.cpp
00001 /* 00002 * <reac_thread.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,29 +64,47 @@ 00040 00041 static std :: vector <ReactiveThread *> reac_threads; 00042 -00043 ReactiveThread :: ReactiveThread () { -00044 -00045 reac_threads.push_back (this); -00046 sem_init (& sem, 0, 0); -00047 } -00048 -00049 void ReactiveThread :: sleep () { +00043 +00044 ReactiveThread :: ReactiveThread () +00045 { +00046 +00047 reac_threads.push_back (this); +00048 sem_init (& sem, 0, 0); +00049 } 00050 -00051 sem_wait (& sem); -00052 } +00051 void ReactiveThread :: sleep () +00052 { 00053 -00054 void ReactiveThread :: wakeUp () { -00055 -00056 sem_post (& sem); -00057 } -00058 -00059 void stopReactiveThreads () { -00060 -00061 the_end = true; -00062 for (unsigned i = 0; i < reac_threads.size (); i ++) -00063 reac_threads [i] -> wakeUp (); -00064 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00054 sem_wait (& sem); +00055 } +00056 +00057 void ReactiveThread :: wakeUp () +00058 { +00059 +00060 sem_post (& sem); +00061 } +00062 +00063 void initReactiveThreadsEnv () +00064 { +00065 +00066 the_end = false; +00067 reac_threads.clear (); +00068 } +00069 +00070 void stopReactiveThreads () +00071 { +00072 +00073 the_end = true; +00074 for (unsigned i = 0; i < reac_threads.size (); i ++) +00075 reac_threads [i] -> wakeUp (); +00076 reac_threads.clear (); +00077 } +00078 +00079 bool theEnd () +00080 { +00081 return the_end; +00082 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8h-source.html
index d7b48b719..7b62aacc9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/reac__thread_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +reac_thread.h
00001 /* 00002 * <reac_thread.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,27 +65,30 @@ 00041 00042 #include "thread.h" 00043 -00044 class ReactiveThread : public Thread { -00045 -00046 public: +00044 +00045 class ReactiveThread : public Thread +00046 { 00047 -00048 /* Ctor */ -00049 ReactiveThread (); -00050 -00051 void sleep (); -00052 -00053 void wakeUp (); -00054 -00055 private: +00048 public: +00049 +00050 /* Ctor */ +00051 ReactiveThread (); +00052 +00053 void sleep (); +00054 +00055 void wakeUp (); 00056 -00057 sem_t sem; -00058 -00059 }; -00060 -00061 extern void stopReactiveThreads (); -00062 -00063 #endif /*THREAD_H_*/ -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00057 private: +00058 +00059 sem_t sem; +00060 }; +00061 +00062 extern void initReactiveThreadsEnv (); +00063 +00064 extern void stopReactiveThreads (); +00065 +00066 #endif /*REAC_THREAD_H_*/ +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/recv_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/recv_8cpp-source.html
index 4062ac302..c7d917e10 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/recv_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/recv_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +recv.cpp
00001 /* 00002 * <recv.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,107 +62,123 @@ 00038 #include "tags.h" 00039 #include "worker.h" 00040 #include "scheduler.h" -00041 #include "mess.h" -00042 #include "node.h" -00043 #include "../../core/runner.h" -00044 #include "../../core/cooperative.h" -00045 #include "../../core/peo_debug.h" -00046 -00047 void receiveMessages () { -00048 -00049 cleanBuffers (); -00050 -00051 do { +00041 #include "synchron.h" +00042 #include "mess.h" +00043 #include "node.h" +00044 #include "../../core/runner.h" +00045 #include "../../core/cooperative.h" +00046 #include "../../core/peo_debug.h" +00047 +00048 void receiveMessages () +00049 { +00050 +00051 cleanBuffers (); 00052 -00053 if (! atLeastOneActiveThread ()) { -00054 // printDebugMessage ("debut wait"); -00055 waitMessage (); -00056 //printDebugMessage ("fin wait"); -00057 } -00058 -00059 int src, tag; -00060 -00061 while (probeMessage (src, tag)) { -00062 -00063 receiveMessage (src, tag); -00064 initMessage (); -00065 /* -00066 char b [1000]; -00067 sprintf (b, "traitement recv %d\n", tag); -00068 printDebugMessage (b); -00069 */ -00070 -00071 switch (tag) { -00072 -00073 case RUNNER_STOP_TAG: -00074 unpackTerminationOfRunner (); -00075 wakeUpCommunicator (); -00076 break; -00077 -00078 case COOP_TAG: -00079 // printDebugMessage ("reception de message de cooperation"); -00080 COOP_ID coop_id; -00081 unpack (coop_id); -00082 getCooperative (coop_id) -> unpack (); -00083 break; -00084 -00085 case SCHED_REQUEST_TAG: -00086 unpackResourceRequest (); -00087 break; -00088 -00089 case SCHED_RESULT_TAG: -00090 { -00091 /* Unpacking the resource */ -00092 SERVICE_ID serv_id; -00093 unpack (serv_id); -00094 Service * serv = getService (serv_id); -00095 int dest; -00096 unpack (dest); -00097 WORKER_ID worker_id; -00098 unpack (worker_id); +00053 do +00054 { +00055 +00056 if (! atLeastOneActiveThread ()) +00057 { +00058 +00059 waitMessage (); +00060 } +00061 +00062 int src, tag; +00063 +00064 while (probeMessage (src, tag)) +00065 { +00066 +00067 receiveMessage (src, tag); +00068 initMessage (); +00069 +00070 switch (tag) +00071 { +00072 +00073 case RUNNER_STOP_TAG: +00074 unpackTerminationOfRunner (); +00075 break; +00076 +00077 case SYNCHRONIZE_REQ_TAG: +00078 unpackSynchronRequest (); +00079 break; +00080 +00081 case SYNCHRONIZED_TAG: +00082 { +00083 RUNNER_ID runner_id; +00084 unpack (runner_id); +00085 +00086 COOP_ID coop_id; +00087 unpack (coop_id); +00088 +00089 getCooperative (coop_id) -> notifySynchronized (); +00090 break; +00091 } +00092 +00093 case COOP_TAG: +00094 COOP_ID coop_id; +00095 unpack (coop_id); +00096 getCooperative (coop_id) -> unpack (); +00097 getCooperative (coop_id) -> notifyReceiving (); +00098 break; 00099 -00100 /* Going back ... */ -00101 initMessage (); -00102 pack (worker_id); -00103 pack (serv_id); -00104 serv -> packData (); -00105 serv -> notifySendingData (); -00106 sendMessage (dest, TASK_DATA_TAG); -00107 break; -00108 } -00109 -00110 case TASK_DATA_TAG: -00111 { -00112 WORKER_ID worker_id; -00113 unpack (worker_id); -00114 Worker * worker = getWorker (worker_id); -00115 worker -> setSource (src); -00116 worker -> unpackData (); -00117 worker -> wakeUp (); -00118 break; -00119 } -00120 -00121 case TASK_RESULT_TAG: -00122 { -00123 SERVICE_ID serv_id; -00124 unpack (serv_id); -00125 Service * serv = getService (serv_id); -00126 serv -> unpackResult (); -00127 break; -00128 } -00129 -00130 case TASK_DONE_TAG: -00131 unpackTaskDone (); -00132 break; -00133 -00134 default: -00135 ; -00136 }; -00137 } -00138 -00139 } while (! atLeastOneActiveThread () && atLeastOneActiveRunner () /*&& ! allResourcesFree ()*/); -00140 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00100 case SCHED_REQUEST_TAG: +00101 unpackResourceRequest (); +00102 break; +00103 +00104 case SCHED_RESULT_TAG: +00105 { +00106 /* Unpacking the resource */ +00107 SERVICE_ID serv_id; +00108 unpack (serv_id); +00109 Service * serv = getService (serv_id); +00110 int dest; +00111 unpack (dest); +00112 WORKER_ID worker_id; +00113 unpack (worker_id); +00114 +00115 /* Going back ... */ +00116 initMessage (); +00117 pack (worker_id); +00118 pack (serv_id); +00119 serv -> packData (); +00120 serv -> notifySendingData (); +00121 sendMessage (dest, TASK_DATA_TAG); +00122 break; +00123 } +00124 +00125 case TASK_DATA_TAG: +00126 { +00127 WORKER_ID worker_id; +00128 unpack (worker_id); +00129 Worker * worker = getWorker (worker_id); +00130 worker -> setSource (src); +00131 worker -> unpackData (); +00132 worker -> wakeUp (); +00133 break; +00134 } +00135 +00136 case TASK_RESULT_TAG: +00137 { +00138 SERVICE_ID serv_id; +00139 unpack (serv_id); +00140 Service * serv = getService (serv_id); +00141 serv -> unpackResult (); +00142 break; +00143 } +00144 +00145 case TASK_DONE_TAG: +00146 unpackTaskDone (); +00147 break; +00148 +00149 default: +00150 ; +00151 }; +00152 } +00153 +00154 } +00155 while ( ! atLeastOneActiveThread () && atLeastOneActiveRunner () /*&& ! allResourcesFree ()*/ ); +00156 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/recv_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/recv_8h-source.html
index fa8af7233..767230663 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/recv_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/recv_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +recv.h
00001 /* 00002 * <recv.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,7 +64,7 @@ 00040 extern void receiveMessages (); 00041 00042 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8cpp-source.html
index f6b67ce85..b9c7ae8d8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +ring_topo.cpp
00001 /* 00002 * <ring_topo.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,20 +62,22 @@ 00038 00039 void RingTopology :: setNeighbors (Cooperative * __mig, 00040 std :: vector <Cooperative *> & __from, -00041 std :: vector <Cooperative *> & __to) { -00042 __from.clear () ; -00043 __to.clear () ; -00044 -00045 int len = mig.size () ; -00046 -00047 for (int i = 0 ; i < len ; i ++) -00048 if (mig [i] == __mig) { -00049 __from.push_back (mig [(i - 1 + len) % len]) ; -00050 __to.push_back (mig [(i + 1) % len]) ; -00051 break; -00052 } -00053 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00041 std :: vector <Cooperative *> & __to) +00042 { +00043 __from.clear () ; +00044 __to.clear () ; +00045 +00046 int len = mig.size () ; +00047 +00048 for (int i = 0 ; i < len ; i ++) +00049 if (mig [i] == __mig) +00050 { +00051 __from.push_back (mig [(i - 1 + len) % len]) ; +00052 __to.push_back (mig [(i + 1) % len]) ; +00053 break; +00054 } +00055 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8h-source.html
index 2d19ad101..2ee51b896 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/ring__topo_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +ring_topo.h
00001 /* 00002 * <ring_topo.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,18 +63,19 @@ 00039 00040 #include "topology.h" 00041 -00042 class RingTopology : public Topology { -00043 -00044 public : -00045 -00046 void setNeighbors (Cooperative * __mig, -00047 std :: vector <Cooperative *> & __from, -00048 std :: vector <Cooperative *> & __to); -00049 -00050 }; -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00042 class RingTopology : public Topology +00043 { +00044 +00045 public : +00046 +00047 void setNeighbors (Cooperative * __mig, +00048 std :: vector <Cooperative *> & __from, +00049 std :: vector <Cooperative *> & __to); +00050 +00051 }; +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html
index cf9389486..e40b7fb08 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +runner.cpp
00001 /* 00002 * <runner.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,29 +61,33 @@ 00037 #include "../../core/messaging.h" 00038 #include "../../core/runner.h" 00039 #include "node.h" -00040 #include "send.h" -00041 #include "tags.h" -00042 #include "schema.h" -00043 -00044 bool Runner :: isLocal () { +00040 #include "mess.h" +00041 #include "send.h" +00042 #include "tags.h" +00043 #include "schema.h" +00044 00045 -00046 for (unsigned i = 0; i < my_node -> id_run.size (); i ++) -00047 if (my_node -> id_run [i] == id) -00048 return true; -00049 return false; -00050 } -00051 -00052 void Runner :: packTermination () { -00053 -00054 pack (id); -00055 } -00056 -00057 void Runner :: terminate () { -00058 -00059 sendToAll (this, RUNNER_STOP_TAG); -00060 } -00061 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00046 bool Runner :: isAssignedLocally () +00047 { +00048 +00049 for (unsigned i = 0; i < my_node -> id_run.size (); i ++) +00050 if (my_node -> id_run [i] == def_id) +00051 return true; +00052 return false; +00053 } +00054 +00055 void Runner :: terminate () +00056 { +00057 +00058 sendToAll (this, RUNNER_STOP_TAG); +00059 } +00060 +00061 void Runner :: packTermination () +00062 { +00063 +00064 pack (def_id); +00065 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html
index d24a7dccb..72736edec 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +service.cpp
00001 /* 00002 * <service.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,22 +65,24 @@ 00041 #include "send.h" 00042 #include "scheduler.h" 00043 -00044 void Service :: requestResourceRequest (unsigned __how_many) { -00045 -00046 num_sent_rr = __how_many; -00047 for (unsigned i = 0; i < __how_many; i ++) -00048 send (this, my_node -> rk_sched, SCHED_REQUEST_TAG); -00049 } -00050 -00051 void Service :: packResourceRequest () { -00052 -00053 SCHED_REQUEST req; -00054 req.first = getNodeRank (); -00055 req.second = getKey (); -00056 // printf ("demande de ressource pour %d\n", req.second); -00057 :: pack (req); -00058 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 void Service :: requestResourceRequest (unsigned __how_many) +00045 { +00046 +00047 num_sent_rr = __how_many; +00048 for (unsigned i = 0; i < __how_many; i ++) +00049 send (this, my_node -> rk_sched, SCHED_REQUEST_TAG); +00050 } +00051 +00052 void Service :: packResourceRequest () +00053 { +00054 +00055 SCHED_REQUEST req; +00056 req.first = getNodeRank (); +00057 req.second = getKey (); +00058 +00059 :: pack (req); +00060 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8cpp-source.html
index d12de1681..9acbc1a97 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +rmc.cpp
00001 /* 00002 * <rmc.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,37 +66,54 @@ 00042 #include "../../core/peo_debug.h" 00043 00044 static std :: vector <pthread_t *> ll_threads; /* Low level threads */ -00045 -00046 void runRMC () { +00045 static std :: vector <Worker *> worker_threads; /* Worker threads */ +00046 static Communicator* communicator_thread = NULL; /* Communicator thread */ 00047 -00048 /* Worker(s) ? */ -00049 for (unsigned i = 0; i < my_node -> num_workers; i ++) -00050 addThread (new Worker, ll_threads); +00048 +00049 void runRMC () +00050 { 00051 -00052 wakeUpCommunicator (); -00053 } -00054 -00055 void initRMC (int & __argc, char * * & __argv) { -00056 -00057 /* Communication */ -00058 initCommunication (); -00059 addThread (new Communicator (& __argc, & __argv), ll_threads); -00060 waitNodeInitialization (); -00061 initSending (); -00062 -00063 /* Scheduler */ -00064 if (isScheduleNode ()) -00065 initScheduler (); -00066 -00068 } -00069 -00070 void finalizeRMC () { +00052 /* Worker(s) ? */ +00053 for (unsigned i = 0; i < my_node -> num_workers; i ++) +00054 { +00055 worker_threads.push_back (new Worker); +00056 addThread (worker_threads.back(), ll_threads); +00057 } +00058 +00059 wakeUpCommunicator (); +00060 } +00061 +00062 void initRMC (int & __argc, char * * & __argv) +00063 { +00064 +00065 /* Communication */ +00066 initCommunication (); +00067 communicator_thread = new Communicator (& __argc, & __argv); +00068 addThread (communicator_thread, ll_threads); +00069 waitNodeInitialization (); +00070 initSending (); 00071 -00072 printDebugMessage ("before join threads RMC"); -00073 joinThreads (ll_threads); -00074 printDebugMessage ("after join threads RMC"); +00072 /* Scheduler */ +00073 if (isScheduleNode ()) +00074 initScheduler (); 00075 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00076 +00077 void finalizeRMC () +00078 { +00079 +00080 printDebugMessage ("before join threads RMC"); +00081 +00082 joinThreads (ll_threads); +00083 for (unsigned i = 0; i < worker_threads.size(); i++ ) +00084 { +00085 delete worker_threads [i]; +00086 } +00087 worker_threads.clear (); +00088 delete communicator_thread; +00089 +00090 printDebugMessage ("after join threads RMC"); +00091 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8h-source.html
index 6e2d24667..c66c32f59 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/rmc_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +rmc.h
00001 /* 00002 * <rmc.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,12 +63,12 @@ 00039 00040 extern void initRMC (int & __argc, char * * & __argv); 00041 -00042 extern void runRMC (); /* Resource Management and Communication */ +00042 extern void runRMC (); /* Resource Management and Communication */ 00043 00044 extern void finalizeRMC (); 00045 00046 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route_8cpp-source.html
index 9937479a9..664867e25 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +route.cpp
00001 /* 00002 * <route.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,18 +60,19 @@ 00036 00037 #include "route.h" 00038 -00039 unsigned length (const Route & __route) { -00040 -00041 unsigned len = 0 ; -00042 -00043 for (unsigned i = 0; i < numNodes; i ++) -00044 len += distance (__route [i], __route [(i + 1) % numNodes]) ; -00045 -00046 return len; -00047 } -00048 +00039 unsigned length (const Route & __route) +00040 { +00041 +00042 unsigned len = 0 ; +00043 +00044 for (unsigned i = 0; i < numNodes; i ++) +00045 len += distance (__route [i], __route [(i + 1) % numNodes]) ; +00046 +00047 return len; +00048 } 00049 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00050 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route_8h-source.html
index b5139e667..d5c4f16e2 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +route.h
00001 /* 00002 * <route.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,12 +65,12 @@ 00041 00042 #include "node.h" 00043 -00044 typedef eoVector <int, Node> Route; +00044 typedef eoVector <int, Node> Route; 00045 -00046 unsigned length (const Route & __route); +00046 unsigned length (const Route & __route); 00047 00048 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8cpp-source.html
index 26cded3dd..f92c442ec 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +route_eval.cpp
00001 /* 00002 * <route_eval.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,11 +60,11 @@ 00036 00037 #include "route_eval.h" 00038 -00039 void RouteEval :: operator () (Route & __route) { -00040 -00041 __route.fitness (- (int) length (__route)); +00039 void RouteEval :: operator () (Route & __route) +00040 { +00041 __route.fitness (- (int) length (__route)); 00042 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8h-source.html
index 0fcfb21fb..6d8894316 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route__eval_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +route_eval.h
00001 /* 00002 * <route_eval.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,15 +65,16 @@ 00041 00042 #include "route.h" 00043 -00044 class RouteEval : public eoEvalFunc <Route> { -00045 -00046 public : -00047 -00048 void operator () (Route & __route) ; -00049 } ; -00050 -00051 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 class RouteEval : public eoEvalFunc <Route> +00045 { +00046 +00047 public : +00048 +00049 void operator () (Route & __route) ; +00050 } ; +00051 +00052 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8cpp-source.html
index 824282875..69971f59f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +route_init.cpp
00001 /* 00002 * <route_init.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,17 +63,18 @@ 00039 #include "route_init.h" 00040 #include "node.h" 00041 -00042 void RouteInit :: operator () (Route & __route) { -00043 -00044 __route.clear (); -00045 -00046 for (unsigned i = 0 ; i < numNodes ; i ++) -00047 __route.push_back (i); -00048 -00049 for (unsigned i = 0 ; i < numNodes ; i ++) -00050 std :: swap (__route [i], __route [rng.random (numNodes)]); -00051 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00042 void RouteInit :: operator () (Route & __route) +00043 { +00044 +00045 __route.clear (); +00046 +00047 for (unsigned i = 0 ; i < numNodes ; i ++) +00048 __route.push_back (i); +00049 +00050 for (unsigned i = 0 ; i < numNodes ; i ++) +00051 std :: swap (__route [i], __route [rng.random (numNodes)]); +00052 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8h-source.html
index 451e81a9a..c68974484 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/route__init_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +route_init.h
00001 /* 00002 * <route_init.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,15 +65,16 @@ 00041 00042 #include "route.h" 00043 -00044 class RouteInit : public eoInit <Route> { -00045 -00046 public : -00047 -00048 void operator () (Route & __route); -00049 } ; -00050 -00051 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 class RouteInit : public eoInit <Route> +00045 { +00046 +00047 public : +00048 +00049 void operator () (Route & __route); +00050 } ; +00051 +00052 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/runner_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/runner_8h-source.html
index 3975d3624..e0736f743 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/runner_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/runner_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +runner.h
00001 /* 00002 * <runner.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,49 +66,69 @@ 00042 #include "communicable.h" 00043 #include "thread.h" 00044 -00045 typedef unsigned RUNNER_ID; -00046 -00047 class Runner : public Communicable, public Thread { +00045 +00046 typedef unsigned RUNNER_ID; +00047 00048 -00049 public : -00050 -00051 Runner (); -00052 -00053 void start (); -00054 -00055 void waitStarting (); -00056 -00057 bool isLocal (); -00058 -00059 void terminate (); -00060 -00061 virtual void run () = 0; -00062 -00063 RUNNER_ID getID (); -00064 -00065 void packTermination (); -00066 -00067 void notifySendingTermination (); -00068 -00069 private : -00070 -00071 sem_t sem_start; -00072 -00073 unsigned id; -00074 }; +00049 class Runner : public Communicable, public Thread +00050 { +00051 +00052 public : +00053 +00054 Runner (); +00055 +00056 RUNNER_ID getDefinitionID (); +00057 +00058 RUNNER_ID getExecutionID (); +00059 +00060 void setExecutionID (const RUNNER_ID& execution_id); +00061 +00062 bool isAssignedLocally (); +00063 +00064 void waitStarting (); +00065 +00066 void waitContextInitialization (); +00067 +00068 void start (); +00069 +00070 virtual void run () = 0; +00071 +00072 void terminate (); +00073 +00074 void notifyContextInitialized (); 00075 -00076 extern bool atLeastOneActiveRunner (); +00076 void notifySendingTermination (); 00077 -00078 extern void unpackTerminationOfRunner (); +00078 void packTermination (); 00079 -00080 extern Runner * getRunner (RUNNER_ID __key); +00080 private : 00081 -00082 extern void startRunners (); -00083 -00084 extern void joinRunners (); -00085 -00086 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00082 sem_t sem_start; +00083 sem_t sem_cntxt; +00084 +00085 unsigned def_id; +00086 unsigned exec_id; +00087 }; +00088 +00089 +00090 extern void initRunnersEnv (); +00091 +00092 extern Runner * getRunner (RUNNER_ID __key); +00093 +00094 extern void initializeContext (); +00095 +00096 extern void startRunners (); +00097 +00098 extern void joinRunners (); +00099 +00100 extern bool atLeastOneActiveRunner (); +00101 +00102 extern unsigned numberOfActiveRunners (); +00103 +00104 extern void unpackTerminationOfRunner (); +00105 +00106 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8cpp-source.html
index 20dc2624d..6ac212010 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +scheduler.cpp
00001 /* 00002 * <scheduler.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -71,64 +71,82 @@ 00047 00048 static unsigned initNumberOfRes = 0; 00049 -00050 void initScheduler () { -00051 -00052 for (unsigned i = 0; i < the_schema.size (); i ++) { -00053 -00054 const Node & node = the_schema [i]; -00055 -00056 if (node.rk_sched == my_node -> rk) -00057 for (unsigned j = 0; j < node.num_workers; j ++) -00058 resources.push (std :: pair <RANK_ID, WORKER_ID> (i, j + 1)); -00059 } -00060 initNumberOfRes = resources.size (); -00061 } -00062 -00063 bool allResourcesFree () { -00064 -00065 return resources.size () == initNumberOfRes; -00066 } -00067 -00068 static void update () { -00069 -00070 unsigned num_alloc = std :: min (resources.size (), requests.size ()); -00071 -00072 for (unsigned i = 0; i < num_alloc; i ++) { -00073 -00074 SCHED_REQUEST req = requests.front (); -00075 requests.pop (); -00076 -00077 SCHED_RESOURCE res = resources.front (); -00078 resources.pop (); -00079 -00080 printDebugMessage ("allocating a resource."); -00081 initMessage (); -00082 pack (req.second); -00083 pack (res); -00084 sendMessage (req.first, SCHED_RESULT_TAG); -00085 } -00086 } -00087 -00088 void unpackResourceRequest () { -00089 -00090 printDebugMessage ("queuing a resource request."); -00091 SCHED_REQUEST req; -00092 unpack (req); -00093 requests.push (req); -00094 update (); -00095 } -00096 -00097 void unpackTaskDone () { -00098 -00099 printDebugMessage ("I'm notified a worker is now idle."); -00100 SCHED_RESOURCE res; -00101 unpack (res); -00102 resources.push (res); -00103 if (resources.size () == initNumberOfRes) -00104 printDebugMessage ("all the resources are now free."); -00105 update (); -00106 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00050 extern void wakeUpCommunicator(); +00051 +00052 void initScheduler () +00053 { +00054 +00055 resources = std :: queue <SCHED_RESOURCE> (); +00056 requests = std :: queue <SCHED_REQUEST> (); +00057 initNumberOfRes = 0; +00058 +00059 for (unsigned i = 0; i < the_schema.size (); i ++) +00060 { +00061 +00062 const Node & node = the_schema [i]; +00063 +00064 if (node.rk_sched == my_node -> rk) +00065 for (unsigned j = 0; j < node.num_workers; j ++) +00066 resources.push (std :: pair <RANK_ID, WORKER_ID> (i, j + 1)); +00067 } +00068 initNumberOfRes = resources.size (); +00069 } +00070 +00071 bool allResourcesFree () +00072 { +00073 return resources.size () == initNumberOfRes; +00074 } +00075 +00076 unsigned numResourcesFree () +00077 { +00078 return resources.size (); +00079 } +00080 +00081 static void update () +00082 { +00083 +00084 unsigned num_alloc = std :: min (resources.size (), requests.size ()); +00085 +00086 for (unsigned i = 0; i < num_alloc; i ++) +00087 { +00088 +00089 SCHED_REQUEST req = requests.front (); +00090 requests.pop (); +00091 +00092 SCHED_RESOURCE res = resources.front (); +00093 resources.pop (); +00094 +00095 printDebugMessage ("allocating a resource."); +00096 initMessage (); +00097 pack (req.second); +00098 pack (res); +00099 sendMessage (req.first, SCHED_RESULT_TAG); +00100 } +00101 } +00102 +00103 void unpackResourceRequest () +00104 { +00105 +00106 printDebugMessage ("queuing a resource request."); +00107 SCHED_REQUEST req; +00108 unpack (req); +00109 requests.push (req); +00110 update (); +00111 } +00112 +00113 void unpackTaskDone () +00114 { +00115 +00116 printDebugMessage ("I'm notified a worker is now idle."); +00117 SCHED_RESOURCE res; +00118 unpack (res); +00119 resources.push (res); +00120 if (resources.size () == initNumberOfRes) +00121 printDebugMessage ("all the resources are now free."); +00122 update (); +00123 wakeUpCommunicator(); +00124 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8h-source.html
index b012f4aa7..6ffcfcc81 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/scheduler_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +scheduler.h
00001 /* 00002 * <scheduler.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -77,12 +77,14 @@ 00053 extern void unpackResourceRequest (); 00054 00055 /* Being known a worker is now idle :-) */ -00056 extern void unpackTaskDone (); +00056 extern void unpackTaskDone (); 00057 00058 extern bool allResourcesFree (); 00059 -00060 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00060 extern unsigned numResourcesFree (); +00061 +00062 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/schema_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/schema_8cpp-source.html
index 27e89390c..0eafe3e2c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/schema_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/schema_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +schema.cpp
00001 /* 00002 * <schema.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -58,8 +58,8 @@ 00034 * 00035 */ 00036 -00037 #include <iostream> -00038 #include <assert.h> +00037 #include <set> +00038 #include <cassert> 00039 00040 #include "schema.h" 00041 #include "xml_parser.h" @@ -67,125 +67,169 @@ 00043 #include "node.h" 00044 #include "../../core/peo_debug.h" 00045 -00046 std :: vector <Node> the_schema; -00047 -00048 Node * my_node; -00049 -00050 RANK_ID getRankOfRunner (RUNNER_ID __key) { -00051 -00052 for (unsigned i = 0; i < the_schema.size (); i ++) -00053 for (unsigned j = 0; j < the_schema [i].id_run.size (); j ++) -00054 if (the_schema [i].id_run [j] == __key) -00055 return the_schema [i].rk; -00056 assert (false); -00057 return 0; -00058 } -00059 -00060 static void loadNode (int __rk_sched) { -00061 -00062 Node node; -00063 -00064 node.rk_sched = __rk_sched; -00065 -00066 /* ATT: name*/ -00067 node.rk = getRankFromName (getAttributeValue ("name")); -00068 /* ATT: num_workers */ -00069 node.num_workers = atoi (getAttributeValue ("num_workers").c_str ()); -00070 -00071 while (true) { -00072 -00073 /* TAG: <runner> | </node> */ -00074 std :: string name = getNextNode (); -00075 assert (name == "runner" || name == "node"); -00076 if (name == "runner") { -00077 /* TAG: </node> */ -00078 node.id_run.push_back (atoi (getNextNode ().c_str ())); -00079 /* TAG: </runner> */ -00080 assert (getNextNode () == "runner"); -00081 } -00082 else { -00083 /* TAG: </node> */ -00084 the_schema.push_back (node); -00085 break; -00086 } -00087 } -00088 } -00089 -00090 static void loadGroup () { -00091 -00092 std :: string name; -00093 -00094 /* ATT: scheduler*/ -00095 int rk_sched = getRankFromName (getAttributeValue ("scheduler")); -00096 -00097 while (true) { -00098 -00099 /* TAG: <node> | </group> */ -00100 name = getNextNode (); -00101 assert (name == "node" || name == "group"); -00102 if (name == "node") -00103 /* TAG: <node> */ -00104 loadNode (rk_sched); -00105 else -00106 /* TAG: </group> */ -00107 break; -00108 } -00109 } -00110 -00111 bool isScheduleNode () { -00112 -00113 return my_node -> rk == my_node -> rk_sched; -00114 } -00115 -00116 void loadSchema (const char * __filename) { -00117 -00118 openXMLDocument (__filename); -00119 -00120 std :: string name; -00121 -00122 /* TAG: <schema> */ -00123 name = getNextNode (); -00124 assert (name == "schema"); -00125 -00126 while (true) { +00046 +00047 std :: vector <Node> the_schema; +00048 +00049 Node * my_node; +00050 +00051 static unsigned maxSpecifiedRunnerID = 0; +00052 +00053 +00054 RANK_ID getRankOfRunner (RUNNER_ID __key) +00055 { +00056 +00057 for (unsigned i = 0; i < the_schema.size (); i ++) +00058 for (unsigned j = 0; j < the_schema [i].id_run.size (); j ++) +00059 if (the_schema [i].id_run [j] == __key) +00060 return the_schema [i].rk; +00061 assert (false); +00062 return 0; +00063 } +00064 +00065 static void loadNode (int __rk_sched) +00066 { +00067 +00068 Node node; +00069 +00070 node.rk_sched = __rk_sched; +00071 +00072 /* ATT: name*/ +00073 node.rk = getRankFromName (getAttributeValue ("name")); +00074 /* ATT: num_workers */ +00075 node.num_workers = atoi (getAttributeValue ("num_workers").c_str ()); +00076 +00077 while (true) +00078 { +00079 +00080 /* TAG: <runner> | </node> */ +00081 std :: string name = getNextNode (); +00082 assert (name == "runner" || name == "node"); +00083 if (name == "runner") +00084 { +00085 /* TAG: </node> */ +00086 node.id_run.push_back (atoi (getNextNode ().c_str ())); +00087 if ( node.id_run.back() > maxSpecifiedRunnerID ) +00088 maxSpecifiedRunnerID = node.id_run.back(); +00089 /* TAG: </runner> */ +00090 assert (getNextNode () == "runner"); +00091 } +00092 else +00093 { +00094 /* TAG: </node> */ +00095 node.execution_id_run = node.id_run; +00096 the_schema.push_back (node); +00097 break; +00098 } +00099 } +00100 } +00101 +00102 static void loadGroup () +00103 { +00104 +00105 std :: string name; +00106 +00107 /* ATT: scheduler*/ +00108 int rk_sched = getRankFromName (getAttributeValue ("scheduler")); +00109 +00110 while (true) +00111 { +00112 +00113 /* TAG: <node> | </group> */ +00114 name = getNextNode (); +00115 assert (name == "node" || name == "group"); +00116 if (name == "node") +00117 /* TAG: <node> */ +00118 loadNode (rk_sched); +00119 else +00120 /* TAG: </group> */ +00121 break; +00122 } +00123 } +00124 +00125 bool isScheduleNode () +00126 { 00127 -00128 /* TAG: <group> | </schema> */ -00129 name = getNextNode (); -00130 assert (name == "group" || name == "schema"); -00131 if (name == "group") -00132 /* TAG: <group> */ -00133 loadGroup (); -00134 else -00135 /* TAG: </schema> */ -00136 break; -00137 } -00138 -00139 /* Looking for my node */ -00140 for (unsigned i = 0; i < the_schema.size (); i ++) -00141 if (the_schema [i].rk == getNodeRank ()) -00142 my_node = & (the_schema [i]); -00143 -00144 /* About me */ -00145 char mess [1000]; -00146 -00147 sprintf (mess, "my rank is %d", my_node -> rk); -00148 printDebugMessage (mess); -00149 if (isScheduleNode ()) -00150 printDebugMessage ("I'am a scheduler"); -00151 for (unsigned i = 0; i < my_node -> id_run.size (); i ++) { -00152 sprintf (mess, "I manage the runner %d", my_node -> id_run [i]); -00153 printDebugMessage (mess); -00154 } -00155 if (my_node -> num_workers) { -00156 -00157 sprintf (mess, "I manage %d worker(s)", my_node -> num_workers); -00158 printDebugMessage (mess); -00159 } -00160 -00161 closeXMLDocument (); -00162 } -00163 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00128 return my_node -> rk == my_node -> rk_sched; +00129 } +00130 +00131 void loadSchema (const char * __filename) +00132 { +00133 +00134 openXMLDocument (__filename); +00135 +00136 std :: string name; +00137 +00138 /* TAG: <schema> */ +00139 name = getNextNode (); +00140 assert (name == "schema"); +00141 +00142 the_schema.clear(); +00143 maxSpecifiedRunnerID = 0; +00144 +00145 while (true) +00146 { +00147 +00148 /* TAG: <group> | </schema> */ +00149 name = getNextNode (); +00150 assert (name == "group" || name == "schema"); +00151 if (name == "group") +00152 /* TAG: <group> */ +00153 loadGroup (); +00154 else +00155 /* TAG: </schema> */ +00156 break; +00157 } +00158 +00159 +00160 std :: set<unsigned> uniqueRunnerIDs; +00161 unsigned nbUniqueIDs = 0; +00162 for (unsigned i = 0; i < the_schema.size (); i ++) +00163 { +00164 for (unsigned j = 0; j < the_schema [i].id_run.size(); j ++) +00165 { +00166 uniqueRunnerIDs.insert( the_schema [i].id_run[j] ); +00167 /* In case a duplicate ID has been found */ +00168 if ( uniqueRunnerIDs.size() == nbUniqueIDs ) +00169 { +00170 the_schema [i].execution_id_run[j] = ++maxSpecifiedRunnerID; +00171 } +00172 nbUniqueIDs = uniqueRunnerIDs.size(); +00173 } +00174 } +00175 +00176 /* Looking for my node */ +00177 for (unsigned i = 0; i < the_schema.size (); i ++) +00178 { +00179 if (the_schema [i].rk == getNodeRank ()) +00180 my_node = & (the_schema [i]); +00181 } +00182 +00183 +00184 /* About me */ +00185 char mess [1000]; +00186 +00187 sprintf (mess, "my rank is %d", my_node -> rk); +00188 printDebugMessage (mess); +00189 +00190 if (isScheduleNode ()) +00191 printDebugMessage ("I'am a scheduler"); +00192 +00193 for (unsigned i = 0; i < my_node -> id_run.size (); i ++) +00194 { +00195 sprintf (mess, "I manage the runner %d", my_node -> id_run [i]); +00196 printDebugMessage (mess); +00197 } +00198 +00199 if (my_node -> num_workers) +00200 { +00201 +00202 sprintf (mess, "I manage %d worker(s)", my_node -> num_workers); +00203 printDebugMessage (mess); +00204 } +00205 +00206 closeXMLDocument (); +00207 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/schema_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/schema_8h-source.html
index b5044a17f..e51e48a4a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/schema_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/schema_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +schema.h
00001 /* 00002 * <schema.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,31 +65,22 @@ 00041 #include <vector> 00042 #include <cassert> 00043 -00044 #include "../../core/runner.h" -00045 -00046 typedef int RANK_ID; +00044 #include "node.h" +00045 #include "../../core/runner.h" +00046 00047 -00048 struct Node { -00049 -00050 RANK_ID rk; /* Rank */ -00051 std :: string name; /* Host name */ -00052 unsigned num_workers; /* Number of parallel workers */ -00053 int rk_sched; /* rank of the scheduler */ -00054 std :: vector <RUNNER_ID> id_run; /* List of runners */ -00055 }; -00056 -00057 extern std :: vector <Node> the_schema; -00058 -00059 extern Node * my_node; -00060 -00061 extern void loadSchema (const char * __filename); -00062 -00063 extern RANK_ID getRankOfRunner (RUNNER_ID __key); -00064 -00065 extern bool isScheduleNode (); -00066 -00067 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00048 extern Node * my_node; +00049 +00050 extern bool isScheduleNode (); +00051 +00052 extern RANK_ID getRankOfRunner (RUNNER_ID __key); +00053 +00054 extern std :: vector <Node> the_schema; +00055 +00056 extern void loadSchema (const char * __filename); +00057 +00058 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/search.idx b/tags/dummy-tag/paradiseo-peo/doc/html/search.idx
index 50b796a59..55e27560b 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/html/search.idx and b/tags/dummy-tag/paradiseo-peo/doc/html/search.idx differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/search.php b/tags/dummy-tag/paradiseo-peo/doc/html/search.php
index 861442bae..1fc391a48 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/search.php
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/search.php
@@ -375,7 +375,7 @@ main();
?>
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/send_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/send_8cpp-source.html
index 80d5342f7..be50f8e54 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/send_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/send_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +send.cpp
00001 /* 00002 * <send.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -73,100 +73,134 @@ 00049 00050 #define TO_ALL -1 00051 -00052 typedef struct { -00053 -00054 Communicable * comm; -00055 int to; -00056 int tag; -00057 -00058 } SEND_REQUEST; -00059 -00060 static std :: queue <SEND_REQUEST> mess; -00061 -00062 static sem_t sem_send; +00052 +00053 typedef struct +00054 { +00055 +00056 Communicable * comm; +00057 int to; +00058 int tag; +00059 +00060 } +00061 SEND_REQUEST; +00062 00063 -00064 void initSending () { +00064 static std :: queue <SEND_REQUEST> mess; 00065 -00066 sem_init (& sem_send, 0, 1); -00067 } -00068 -00069 void send (Communicable * __comm, int __to, int __tag) { +00066 static sem_t sem_send; +00067 +00068 static bool contextInitialized = false; +00069 00070 -00071 SEND_REQUEST req; -00072 req.comm = __comm; -00073 req.to = __to; -00074 req.tag = __tag; +00071 void initSending () +00072 { +00073 +00074 static bool initializedSemaphore = false; 00075 -00076 sem_wait (& sem_send); -00077 mess.push (req); -00078 sem_post (& sem_send); -00079 wakeUpCommunicator (); -00080 } -00081 -00082 void sendToAll (Communicable * __comm, int __tag) { -00083 -00084 send (__comm, TO_ALL, __tag); -00085 } -00086 -00087 void sendMessages () { +00076 mess = std :: queue <SEND_REQUEST> (); +00077 +00078 if (initializedSemaphore) +00079 { +00080 sem_destroy(& sem_send); +00081 } +00082 +00083 sem_init (& sem_send, 0, 1); +00084 initializedSemaphore = true; +00085 +00086 contextInitialized = false; +00087 } 00088 -00089 sem_wait (& sem_send); -00090 -00091 while (! mess.empty ()) { -00092 -00093 SEND_REQUEST req = mess.front (); -00094 /* -00095 char b [1000]; -00096 sprintf (b, "traitement send %d\n", req.tag); -00097 printDebugMessage (b); -00098 */ -00099 -00100 Communicable * comm = req.comm; -00101 -00102 initMessage (); -00103 -00104 switch (req.tag) { +00089 void send (Communicable * __comm, int __to, int __tag) +00090 { +00091 +00092 SEND_REQUEST req; +00093 req.comm = __comm; +00094 req.to = __to; +00095 req.tag = __tag; +00096 +00097 sem_wait (& sem_send); +00098 mess.push (req); +00099 sem_post (& sem_send); +00100 wakeUpCommunicator (); +00101 } +00102 +00103 void sendToAll (Communicable * __comm, int __tag) +00104 { 00105 -00106 case RUNNER_STOP_TAG: -00107 dynamic_cast <Runner *> (comm) -> packTermination (); -00108 dynamic_cast <Runner *> (comm) -> notifySendingTermination (); -00109 break; +00106 send (__comm, TO_ALL, __tag); +00107 } +00108 +00109 extern void initializeContext (); 00110 -00111 case COOP_TAG: -00112 dynamic_cast <Cooperative *> (comm) -> pack (); -00113 dynamic_cast <Cooperative *> (comm) -> notifySending (); -00114 break; -00115 -00116 case SCHED_REQUEST_TAG: -00117 dynamic_cast <Service *> (comm) -> packResourceRequest (); -00118 dynamic_cast <Service *> (comm) -> notifySendingResourceRequest (); -00119 break; -00120 -00121 case TASK_RESULT_TAG: -00122 dynamic_cast <Worker *> (comm) -> packResult (); -00123 dynamic_cast <Worker *> (comm) -> notifySendingResult (); -00124 break; -00125 -00126 case TASK_DONE_TAG: -00127 dynamic_cast <Worker *> (comm) -> packTaskDone (); -00128 dynamic_cast <Worker *> (comm) -> notifySendingTaskDone (); -00129 break; -00130 -00131 default : -00132 break; +00111 void sendMessages () +00112 { +00113 +00114 if (! contextInitialized) +00115 { +00116 contextInitialized = true; +00117 initializeContext(); +00118 } +00119 +00120 sem_wait (& sem_send); +00121 +00122 while (! mess.empty ()) +00123 { +00124 +00125 SEND_REQUEST req = mess.front (); +00126 +00127 Communicable * comm = req.comm; +00128 +00129 initMessage (); +00130 +00131 switch (req.tag) +00132 { 00133 -00134 }; -00135 -00136 if (req.to == TO_ALL) -00137 sendMessageToAll (req.tag); -00138 else -00139 sendMessage (req.to, req.tag); -00140 mess.pop (); -00141 } -00142 -00143 sem_post (& sem_send); -00144 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00134 case RUNNER_STOP_TAG: +00135 dynamic_cast <Runner *> (comm) -> packTermination (); +00136 dynamic_cast <Runner *> (comm) -> notifySendingTermination (); +00137 break; +00138 +00139 case COOP_TAG: +00140 dynamic_cast <Cooperative *> (comm) -> pack (); +00141 dynamic_cast <Cooperative *> (comm) -> notifySending (); +00142 break; +00143 +00144 case SYNCHRONIZE_REQ_TAG: +00145 dynamic_cast <Cooperative *> (comm) -> packSynchronizeReq (); +00146 dynamic_cast <Cooperative *> (comm) -> notifySendingSyncReq (); +00147 break; +00148 +00149 case SCHED_REQUEST_TAG: +00150 dynamic_cast <Service *> (comm) -> packResourceRequest (); +00151 dynamic_cast <Service *> (comm) -> notifySendingResourceRequest (); +00152 break; +00153 +00154 case TASK_RESULT_TAG: +00155 dynamic_cast <Worker *> (comm) -> packResult (); +00156 dynamic_cast <Worker *> (comm) -> notifySendingResult (); +00157 break; +00158 +00159 case TASK_DONE_TAG: +00160 dynamic_cast <Worker *> (comm) -> packTaskDone (); +00161 dynamic_cast <Worker *> (comm) -> notifySendingTaskDone (); +00162 break; +00163 +00164 default : +00165 break; +00166 +00167 }; +00168 +00169 if (req.to == TO_ALL) +00170 sendMessageToAll (req.tag); +00171 else +00172 sendMessage (req.to, req.tag); +00173 +00174 mess.pop (); +00175 } +00176 +00177 sem_post (& sem_send); +00178 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/send_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/send_8h-source.html
index 53b935c60..34a170c67 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/send_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/send_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +send.h
00001 /* 00002 * <send.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -72,7 +72,7 @@ 00048 extern void sendMessages (); 00049 00050 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/service_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/service_8h-source.html
index a5a83054b..6b47fef5a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/service_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/service_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +service.h
00001 /* 00002 * <service.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,43 +64,45 @@ 00040 #include "communicable.h" 00041 #include "thread.h" 00042 -00043 typedef unsigned SERVICE_ID; -00044 -00045 class Service : public Communicable { -00046 -00047 public : +00043 +00044 typedef unsigned SERVICE_ID; +00045 +00046 class Service : public Communicable +00047 { 00048 -00049 void setOwner (Thread & __owner); -00050 -00051 Thread * getOwner (); +00049 public : +00050 +00051 void setOwner (Thread & __owner); 00052 -00053 void requestResourceRequest (unsigned __how_many = 1); -00054 void packResourceRequest (); -00055 -00056 virtual void packData (); -00057 virtual void unpackData (); -00058 -00059 virtual void execute (); -00060 -00061 virtual void packResult (); -00062 virtual void unpackResult (); -00063 -00064 virtual void notifySendingData (); -00065 virtual void notifySendingResourceRequest (); -00066 virtual void notifySendingAllResourceRequests (); -00067 -00068 private : +00053 Thread * getOwner (); +00054 +00055 void requestResourceRequest (unsigned __how_many = 1); +00056 void packResourceRequest (); +00057 +00058 virtual void packData (); +00059 virtual void unpackData (); +00060 +00061 virtual void execute (); +00062 +00063 virtual void packResult (); +00064 virtual void unpackResult (); +00065 +00066 virtual void notifySendingData (); +00067 virtual void notifySendingResourceRequest (); +00068 virtual void notifySendingAllResourceRequests (); 00069 -00070 Thread * owner; /* Owner thread (i.e. 'uses' that service) */ +00070 private : 00071 -00072 unsigned num_sent_rr; /* Number of RR not really sent (i.e. still in the sending queue)*/ +00072 Thread * owner; /* Owner thread (i.e. 'uses' that service) */ 00073 -00074 }; +00074 unsigned num_sent_rr; /* Number of RR not really sent (i.e. still in the sending queue)*/ 00075 -00076 extern Service * getService (SERVICE_ID __key); +00076 }; 00077 -00078 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00078 extern Service * getService (SERVICE_ID __key); +00079 +00080 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html
index d52cbc6c3..d0afe2e5c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +node.cpp
00001 /* 00002 * <node.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,51 +64,119 @@ 00040 #include <string> 00041 #include <cassert> 00042 -00043 static int rk, sz; /* Rank & size */ +00043 #include "mess.h" 00044 -00045 static std :: map <std :: string, int> name_to_rk; -00046 -00047 static std :: vector <std :: string> rk_to_name; +00045 +00046 class MPIThreadedEnv +00047 { 00048 -00049 int getNodeRank () { +00049 public: 00050 -00051 return rk; -00052 } +00051 static void init ( int * __argc, char * * * __argv ) +00052 { 00053 -00054 int getNumberOfNodes () { -00055 -00056 return sz; -00057 } -00058 -00059 int getRankFromName (const std :: string & __name) { -00060 -00061 return atoi (__name.c_str ()); -00062 } -00063 -00064 void initNode (int * __argc, char * * * __argv) { -00065 -00066 int provided; -00067 MPI_Init_thread (__argc, __argv, MPI_THREAD_FUNNELED, & provided); -00068 assert (provided == MPI_THREAD_FUNNELED); /* The MPI implementation must be multi-threaded. -00069 Yet, only one thread performs the comm. -00070 operations */ -00071 MPI_Comm_rank (MPI_COMM_WORLD, & rk); /* Who ? */ -00072 MPI_Comm_size (MPI_COMM_WORLD, & sz); /* How many ? */ -00073 -00074 char names [sz] [MPI_MAX_PROCESSOR_NAME]; -00075 int len; -00076 -00077 /* Processor names */ -00078 MPI_Get_processor_name (names [0], & len); /* Me */ -00079 MPI_Allgather (names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, MPI_COMM_WORLD); /* Broadcast */ -00080 -00081 for (int i = 0; i < sz; i ++) { -00082 rk_to_name.push_back (names [i]); -00083 name_to_rk [names [i]] = i; -00084 } -00085 } -00086 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00054 static MPIThreadedEnv mpiThreadedEnv( __argc, __argv ); +00055 } +00056 +00057 static void finalize () +00058 { +00059 +00060 static bool finalizedEnvironment = false; +00061 +00062 if (! finalizedEnvironment ) +00063 { +00064 +00065 MPI_Finalize (); +00066 finalizedEnvironment = true; +00067 } +00068 } +00069 +00070 private: +00071 +00072 /* No instance of this class can be created outside its domain! */ +00073 MPIThreadedEnv ( int * __argc, char * * * __argv ) +00074 { +00075 +00076 static bool MPIThreadedEnvInitialized = false; +00077 int provided = 1; +00078 +00079 if (! MPIThreadedEnvInitialized) +00080 { +00081 +00082 MPI_Init_thread (__argc, __argv, MPI_THREAD_FUNNELED, & provided); +00083 +00084 assert (provided == MPI_THREAD_FUNNELED); /* The MPI implementation must be multi-threaded. +00085 Yet, only one thread performs the comm. +00086 operations */ +00087 MPIThreadedEnvInitialized = true; +00088 } +00089 } +00090 +00091 ~MPIThreadedEnv() +00092 { +00093 +00094 finalize (); +00095 } +00096 }; +00097 +00098 +00099 static int rk, sz; /* Rank & size */ +00100 +00101 static std :: map <std :: string, int> name_to_rk; +00102 +00103 static std :: vector <std :: string> rk_to_name; +00104 +00105 +00106 int getNodeRank () +00107 { +00108 +00109 return rk; +00110 } +00111 +00112 int getNumberOfNodes () +00113 { +00114 +00115 return sz; +00116 } +00117 +00118 void collectiveCountOfRunners ( unsigned int* num_local_exec_runners, unsigned int* num_exec_runners ) +00119 { +00120 +00121 MPI_Allreduce( num_local_exec_runners, num_exec_runners, 1, MPI_UNSIGNED, MPI_SUM, MPI_COMM_WORLD ); +00122 } +00123 +00124 int getRankFromName (const std :: string & __name) +00125 { +00126 +00127 return atoi (__name.c_str ()); +00128 } +00129 +00130 void initNode (int * __argc, char * * * __argv) +00131 { +00132 +00133 rk_to_name.clear (); +00134 name_to_rk.clear (); +00135 +00136 MPIThreadedEnv :: init ( __argc, __argv ); +00137 //synchronizeNodes(); +00138 +00139 MPI_Comm_rank (MPI_COMM_WORLD, & rk); /* Who ? */ +00140 MPI_Comm_size (MPI_COMM_WORLD, & sz); /* How many ? */ +00141 +00142 char names [sz] [MPI_MAX_PROCESSOR_NAME]; +00143 int len; +00144 +00145 /* Processor names */ +00146 MPI_Get_processor_name (names [0], & len); /* Me */ +00147 MPI_Allgather (names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, names, MPI_MAX_PROCESSOR_NAME, MPI_CHAR, MPI_COMM_WORLD); /* Broadcast */ +00148 +00149 for (int i = 0; i < sz; i ++) +00150 { +00151 rk_to_name.push_back (names [i]); +00152 name_to_rk [names [i]] = i; +00153 } +00154 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html
index c107521e7..d6f16f321 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +node.h
00001 /* 00002 * <node.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,17 +64,40 @@ 00040 #include <string> 00041 #include <cassert> 00042 -00043 extern int getNodeRank (); /* It gives the rank of the calling process */ +00043 #include "../../core/runner.h" 00044 -00045 extern int getNumberOfNodes (); /* It gives the size of the environment (Total number of nodes) */ +00045 typedef int RANK_ID; 00046 -00047 extern int getRankFromName (const std :: string & __name); /* It gives the rank of the process -00048 expressed by its name */ +00047 struct Node +00048 { 00049 -00050 extern void initNode (int * __argc, char * * * __argv); -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00050 RANK_ID rk; /* Rank */ +00051 std :: string name; /* Host name */ +00052 unsigned num_workers; /* Number of parallel workers */ +00053 int rk_sched; /* rank of the scheduler */ +00054 std :: vector <RUNNER_ID> id_run; /* List of runner def. IDs */ +00055 std :: vector <RUNNER_ID> execution_id_run; /* List of runtime execution runner IDs */ +00056 }; +00057 +00058 extern Node * my_node; +00059 +00060 extern bool isScheduleNode (); +00061 +00062 extern int getNodeRank (); /* It gives the rank of the calling process */ +00063 +00064 extern RANK_ID getRankOfRunner (RUNNER_ID __key); +00065 +00066 extern int getNumberOfNodes (); /* It gives the size of the environment (Total number of nodes) */ +00067 +00068 extern void collectiveCountOfRunners ( unsigned int* num_local_exec_runners, unsigned int* num_exec_runners ); +00069 +00070 extern int getRankFromName (const std :: string & __name); /* It gives the rank of the process +00071 expressed by its name */ +00072 +00073 extern void initNode (int * __argc, char * * * __argv); +00074 +00075 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html
index 4799a4a15..9ae18c17a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +param.cpp
00001 /* 00002 * <param.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -62,16 +62,17 @@ 00038 00039 #include "schema.h" 00040 -00041 void loadRMCParameters (int & __argc, char * * & __argv) { -00042 -00043 eoParser parser (__argc, __argv); -00044 -00045 /* Schema */ -00046 eoValueParam <std :: string> schema_param ("schema.xml", "schema", "?"); -00047 parser.processParam (schema_param); -00048 loadSchema (schema_param.value ().c_str ()); -00049 } -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00041 void loadRMCParameters (int & __argc, char * * & __argv) +00042 { +00043 +00044 eoParser parser (__argc, __argv); +00045 +00046 /* Schema */ +00047 eoValueParam <std :: string> schema_param ("schema.xml", "schema", "?"); +00048 parser.processParam (schema_param); +00049 loadSchema (schema_param.value ().c_str ()); +00050 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html
index 5de9ceb5d..a7fe667bc 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +param.h
00001 /* 00002 * <param.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,7 +64,7 @@ 00040 extern void loadRMCParameters (int & __argc, char * * & __argv); 00041 00042 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/structNode-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/structNode-members.html
index 607b10646..0b03bd7b7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/structNode-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/structNode-members.html
@@ -1,6 +1,6 @@
-| execution_id_run | Node | |
| id_run | Node | |
| name | Node | |
| num_workers | Node | |
| rk | Node | |
| rk_sched | Node |
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/structNode.html b/tags/dummy-tag/paradiseo-peo/doc/html/structNode.html
index feca8d02e..a428e00e7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/structNode.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/structNode.html
@@ -1,6 +1,6 @@
-
-Definition at line 20 of file schema.h.
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST-members.html b/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST-members.html
index e3d9f7ca9..0d1c6edcd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST-members.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST-members.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST.html b/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST.html
index 307bc5ff4..6906326b3 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/structSEND__REQUEST.html
@@ -1,6 +1,6 @@
-
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/tags_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/tags_8h-source.html
index 5527f749f..3910c18bb 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/tags_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/tags_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +tags.h
00001 /* 00002 * <tags.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,15 +66,17 @@ 00042 #define COOP_TAG 14 00043 00044 #define SCHED_REQUEST_TAG 16 -00045 -00046 #define SCHED_RESULT_TAG 17 -00047 #define TASK_DATA_TAG 18 -00048 -00049 #define TASK_RESULT_TAG 19 -00050 #define TASK_DONE_TAG 20 -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00045 #define SCHED_RESULT_TAG 17 +00046 +00047 #define TASK_DATA_TAG 18 +00048 #define TASK_RESULT_TAG 19 +00049 #define TASK_DONE_TAG 20 +00050 +00051 #define SYNCHRONIZE_REQ_TAG 1000 +00052 #define SYNCHRONIZED_TAG 1001 +00053 +00054 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/thread_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/thread_8cpp-source.html
index 766870290..1b82351f9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/thread_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/thread_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +thread.cpp
00001 /* 00002 * <thread.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,72 +66,83 @@ 00042 00043 unsigned num_act = 0; 00044 -00045 Thread :: Thread () { -00046 -00047 threads.push_back (this); -00048 act = false; -00049 } -00050 -00051 Thread :: ~ Thread () { +00045 +00046 Thread :: Thread () +00047 { +00048 +00049 threads.push_back (this); +00050 act = false; +00051 } 00052 -00053 /* Nothing ! */ -00054 } +00053 Thread :: ~ Thread () +00054 { 00055 -00056 extern int getNodeRank (); -00057 -00058 void Thread :: setActive () { -00059 -00060 if (! act ) { +00056 /* Nothing ! */ +00057 } +00058 +00059 void Thread :: setActive () +00060 { 00061 -00062 act = true; -00063 num_act ++; -00064 // if (getNodeRank () == 1) -00065 // printf ("On passe a %d\n", num_act); -00066 } -00067 } -00068 -00069 void Thread :: setPassive () { -00070 -00071 if (act) { +00062 if (! act) +00063 { +00064 +00065 act = true; +00066 num_act ++; +00067 } +00068 } +00069 +00070 void Thread :: setPassive () +00071 { 00072 -00073 act = false; -00074 num_act --; -00075 // if (getNodeRank () == 1) -00076 // printf ("On passe a %d\n", num_act); -00077 -00078 } +00073 if (act) +00074 { +00075 +00076 act = false; +00077 num_act --; +00078 } 00079 } 00080 -00081 bool atLeastOneActiveThread () { -00082 -00083 return num_act; -00084 } -00085 -00086 unsigned numberOfActiveThreads () { +00081 void initThreadsEnv () +00082 { +00083 +00084 threads.clear (); +00085 num_act = 0; +00086 } 00087 -00088 return num_act; -00089 } +00088 bool atLeastOneActiveThread () +00089 { 00090 -00091 static void * launch (void * __arg) { -00092 -00093 Thread * thr = (Thread *) __arg; -00094 thr -> start (); -00095 return 0; -00096 } -00097 -00098 void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads) { +00091 return num_act; +00092 } +00093 +00094 static void * launch (void * __arg) +00095 { +00096 +00097 Thread * thr = (Thread *) __arg; +00098 thr -> start (); 00099 -00100 pthread_t * ll_thr = new pthread_t; -00101 __ll_threads.push_back (ll_thr); -00102 pthread_create (ll_thr, 0, launch, __hl_thread); -00103 } -00104 -00105 void joinThreads (std :: vector <pthread_t *> & __threads) { -00106 -00107 for (unsigned i = 0; i < __threads.size (); i ++) -00108 pthread_join (* __threads [i], 0); +00100 return 0; +00101 } +00102 +00103 void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads) +00104 { +00105 +00106 pthread_t * ll_thr = new pthread_t; +00107 __ll_threads.push_back (ll_thr); +00108 pthread_create (ll_thr, 0, launch, __hl_thread); 00109 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00110 +00111 void joinThreads (std :: vector <pthread_t *> & __threads) +00112 { +00113 +00114 for (unsigned i = 0; i < __threads.size (); i ++) +00115 { +00116 pthread_join (* __threads [i], 0); +00117 delete __threads [i]; +00118 } +00119 __threads.clear(); +00120 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/thread_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/thread_8h-source.html
index 0ed667519..f59daaa84 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/thread_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/thread_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +thread.h
00001 /* 00002 * <thread.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,42 +63,42 @@ 00039 00040 #include <vector> 00041 -00042 /* A high-level thread */ -00043 -00044 class Thread { -00045 -00046 public: -00047 -00048 /* Ctor */ -00049 Thread (); -00050 -00051 /* Dtor */ -00052 virtual ~ Thread (); -00053 -00054 /* Go ! */ -00055 virtual void start () = 0; -00056 -00057 void setActive ();/* It means the current process is going to send messages soon */ -00058 void setPassive ();/* The current process is not going to perform send operations -00059 (but it may receive messages) */ -00060 -00061 private : -00062 -00063 bool act; -00064 }; -00065 -00066 extern void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads); -00067 -00068 extern void joinThreads (std :: vector <pthread_t *> & __ll_threads); -00069 -00070 extern bool atLeastOneActiveThread (); /* It returns 'true' iff at least one process is going -00071 to send messages */ -00072 -00073 extern unsigned numberOfActiveThreads (); -00074 +00042 +00043 /* A high-level thread */ +00044 class Thread +00045 { +00046 +00047 public: +00048 +00049 /* Ctor */ +00050 Thread (); +00051 +00052 /* Dtor */ +00053 virtual ~ Thread (); +00054 +00055 /* Go ! */ +00056 virtual void start () = 0; +00057 +00058 void setActive ();/* It means the current process is going to send messages soon */ +00059 void setPassive ();/* The current process is not going to perform send operations +00060 (but it may receive messages) */ +00061 +00062 private : +00063 +00064 bool act; +00065 }; +00066 +00067 extern void initThreadsEnv (); +00068 +00069 extern void addThread (Thread * __hl_thread, std :: vector <pthread_t *> & __ll_threads); +00070 +00071 extern void joinThreads (std :: vector <pthread_t *> & __ll_threads); +00072 +00073 extern bool atLeastOneActiveThread (); /* It returns 'true' iff at least one process is going +00074 to send messages */ 00075 00076 #endif /*THREAD_H_*/ -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/topology_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/topology_8cpp-source.html
index d7bb2dd7c..f5e2be463 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/topology_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/topology_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +topology.cpp
00001 /* 00002 * <topology.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,17 +60,24 @@ 00036 00037 #include "topology.h" 00038 -00039 Topology :: ~ Topology () { -00040 -00041 /* Nothing ! */ -00042 } -00043 -00044 void Topology :: add (Cooperative & __mig) { -00045 -00046 mig.push_back (& __mig) ; -00047 } -00048 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00039 Topology :: ~ Topology () +00040 { +00041 +00042 /* Nothing ! */ +00043 } +00044 +00045 void Topology :: add (Cooperative & __mig) +00046 { +00047 +00048 mig.push_back (& __mig) ; +00049 } +00050 +00051 Topology :: operator std :: vector <Cooperative *>& () +00052 { +00053 +00054 return mig; +00055 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/topology_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/topology_8h-source.html
index 6bc3277cd..45002fef0 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/topology_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/topology_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +topology.h
00001 /* 00002 * <topology.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,25 +65,28 @@ 00041 00042 #include "cooperative.h" 00043 -00044 class Topology { -00045 -00046 public: -00047 -00048 virtual ~Topology (); -00049 -00050 void add (Cooperative & __mig); -00051 -00052 virtual void setNeighbors (Cooperative * __mig, -00053 std :: vector <Cooperative *> & __from, -00054 std :: vector <Cooperative *> & __to) = 0; -00055 -00056 protected: -00057 -00058 std :: vector <Cooperative *> mig ; -00059 }; +00044 class Topology +00045 { +00046 +00047 public: +00048 +00049 virtual ~Topology (); +00050 +00051 void add (Cooperative & __mig); +00052 +00053 virtual void setNeighbors (Cooperative * __mig, +00054 std :: vector <Cooperative *> & __from, +00055 std :: vector <Cooperative *> & __to) = 0; +00056 +00057 operator std :: vector <Cooperative *>& (); +00058 +00059 protected: 00060 -00061 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00061 std :: vector <Cooperative *> mig; +00062 }; +00063 +00064 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/tree.html b/tags/dummy-tag/paradiseo-peo/doc/html/tree.html
index 560832a67..cf91a26ca 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/tree.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/tree.html
@@ -61,159 +61,197 @@
![]()
![]()
peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
![]()
![]()
peoEvalFunc< EOT, FitT, FunctionArg >
![]()
![]()
peoMultiStart< EntityType >::AbstractAggregationAlgorithm
![]()
![]()
peoMultiStart< EntityType >::AbstractAlgorithm
![]()
![]()
peoMultiStart< EntityType >::AbstractDataType
![]()
![]()
peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
![]()
![]()
peoMultiStart< EntityType >::Algorithm< AlgorithmType >
![]()
![]()
peoMultiStart< EntityType >::DataType< Type >
![]()
![]()
peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >
![]()
![]()
peoMultiStart< EntityType >::NoAggregationFunction
![]()
![]()
peoParallelAlgorithmWrapper::AbstractAlgorithm
![]()
![]()
peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
![]()
![]()
peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void >
![]()
![]()
peoSynchronousMultiStart< EntityType >
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractAggregationAlgorithm
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractAlgorithm
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractDataType
![]()
![]()
peoSynchronousMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
![]()
![]()
peoSynchronousMultiStart< EntityType >::Algorithm< AlgorithmType >
![]()
![]()
peoSynchronousMultiStart< EntityType >::DataType< Type >
![]()
![]()
peoSynchronousMultiStart< EntityType >::NoAggregationFunction
![]()
![]()
peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
![]()
![]()
peoWorstPositionReplacement< POT >
![]()
![]()
peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
![]()
![]()
peoWrapper::Algorithm< AlgorithmType, void >
![]()
![]()
peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >
![]()
![]()
eoFunctorBase [external]
![]()
![]()
peoAggEvalFunc< eoVector< int, Node > >
![]()
![]()
peoEvalFunc< EOT, FitT, FunctionArg >
![]()
![]()
peoMultiStart< EntityType >::AbstractAggregationAlgorithm
![]()
![]()
![]()
eoBF< A1, A2, R > [external]
![]()
![]()
![]()
eoF< void > [external]
![]()
![]()
![]()
![]()
eoUpdater [external]
![]()
![]()
![]()
eoUF< A1, R > [external]
![]()
![]()
![]()
![]()
eoTransform< EOT > [external]
![]()
![]()
![]()
peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
![]()
![]()
peoParallelAlgorithmWrapper::AbstractAlgorithm
![]()
![]()
![]()
peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
![]()
![]()
![]()
peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void >
![]()
![]()
peoMultiStart< EntityType >::AbstractAlgorithm
![]()
![]()
![]()
peoMultiStart< EntityType >::Algorithm< AlgorithmType >
![]()
![]()
![]()
peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractAggregationAlgorithm
![]()
![]()
![]()
peoSynchronousMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
![]()
![]()
![]()
peoSynchronousMultiStart< EntityType >::NoAggregationFunction
![]()
![]()
peoMultiStart< EntityType >::AbstractDataType
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractAlgorithm
![]()
![]()
![]()
peoSynchronousMultiStart< EntityType >::Algorithm< AlgorithmType >
![]()
![]()
peoWorstPositionReplacement< POT >
![]()
![]()
![]()
peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
![]()
![]()
![]()
peoWrapper::Algorithm< AlgorithmType, void >
![]()
![]()
![]()
peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >
![]()
![]()
peoSynchronousMultiStart< EntityType >::AbstractDataType
![]()
![]()
![]()
peoSynchronousMultiStart< EntityType >::DataType< Type >
![]()
![]()
city_swap.cpp
![]()
![]()
city_swap.h
![]()
![]()
comm.cpp
![]()
![]()
comm.h
![]()
![]()
communicable.cpp
![]()
![]()
communicable.h
![]()
![]()
coop.cpp
![]()
![]()
complete_topo.cpp
![]()
![]()
complete_topo.h
![]()
![]()
cooperative.cpp
![]()
![]()
cooperative.h
![]()
![]()
data.cpp
![]()
![]()
data.h
![]()
![]()
display.h
![]()
![]()
display_best_route.cpp
![]()
![]()
display_best_route.h
![]()
![]()
doclsn.h
![]()
![]()
edge_xover.cpp
![]()
![]()
edge_xover.h
![]()
![]()
eoPop_comm.h
![]()
![]()
eoVector_comm.h
![]()
![]()
exampleA.cpp
![]()
![]()
exampleB.cpp
![]()
![]()
exampleC.cpp
![]()
![]()
exampleD.cpp
![]()
![]()
exampleE.cpp
![]()
![]()
Lesson1/main.cpp
![]()
![]()
Lesson2/main.cpp
![]()
![]()
Lesson3/main.cpp
![]()
![]()
LessonParallelAlgorithm/main.cpp
![]()
![]()
eoPop_mesg.h
![]()
![]()
eoVector_mesg.h
![]()
![]()
Lesson1/mainEA.cpp
![]()
![]()
Lesson2/mainEA.cpp
![]()
![]()
Lesson3/mainEA.cpp
![]()
![]()
mainEALS.cpp
![]()
![]()
Lesson1/mainPSO.cpp
![]()
![]()
Lesson3/mainPSO.cpp
![]()
![]()
merge_route_eval.cpp
![]()
![]()
merge_route_eval.h
![]()
![]()
mess.cpp
![]()
![]()
peo_run.h
![]()
![]()
peoAggEvalFunc.h
![]()
![]()
peoAsyncIslandMig.h
![]()
![]()
peoEA.h
![]()
![]()
peoData.h
![]()
![]()
peoEvalFunc.h
![]()
![]()
peoMoeoPopEval.h
![]()
![]()
peoMultiStart.h
![]()
![]()
peoNoAggEvalFunc.h
![]()
![]()
peoParallelAlgorithmWrapper.h
![]()
![]()
peoParaPopEval.h
![]()
![]()
peoParaSGATransform.h
![]()
![]()
peoPopEval.h
![]()
![]()
peoSeqPopEval.h
![]()
![]()
peoSeqTransform.h
![]()
![]()
peoSynchronousMultiStart.h
![]()
![]()
peoPSO.h
![]()
![]()
peoSyncIslandMig.h
![]()
![]()
peoSyncMultiStart.h
![]()
![]()
peoTransform.h
![]()
![]()
peoWrapper.h
![]()
![]()
random_topo.cpp
![]()
![]()
random_topo.h
![]()
![]()
reac_thread.cpp
![]()
![]()
reac_thread.h
![]()
![]()
README
![]()
![]()
core/service.cpp
![]()
![]()
rmc/mpi/service.cpp
![]()
![]()
service.h
![]()
![]()
t-peo.cpp
![]()
![]()
star_topo.cpp
![]()
![]()
star_topo.h
![]()
![]()
synchron.cpp
![]()
![]()
synchron.h
![]()
![]()
t-EAAsyncIsland.cpp
![]()
![]()
t-EASyncIsland.cpp
![]()
![]()
t-Mpdallexit.cpp
![]()
![]()
t-Mpdboot.cpp
![]()
![]()
t-MultiStart.cpp
![]()
![]()
t-ParallelEval.cpp
![]()
![]()
t-ParallelTransform.cpp
![]()
![]()
t-PSOGlobalBest.cpp
![]()
![]()
t-PSOSelect.cpp
![]()
![]()
t-PSOWorstPosition.cpp
![]()
![]()
tags.h
![]()
![]()
thread.cpp
![]()
![]()
thread.h
00001 /* +node.cpp
00001 /* 00002 * <node.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -71,63 +71,66 @@ 00047 00048 double X_min = MAXDOUBLE, X_max = MINDOUBLE, Y_min = MAXDOUBLE, Y_max = MINDOUBLE; 00049 -00050 void loadNodes (FILE * __f) { -00051 -00052 /* Coord */ -00053 -00054 X_coord = new double [numNodes]; -00055 -00056 Y_coord = new double [numNodes]; -00057 -00058 unsigned num; -00059 -00060 for (unsigned i = 0; i < numNodes; i ++) { -00061 -00062 fscanf (__f, "%u%lf%lf", & num, X_coord + i, Y_coord + i); -00063 -00064 if (X_coord [i] < X_min) -00065 X_min = X_coord [i]; -00066 if (X_coord [i] > X_max) -00067 X_max = X_coord [i]; -00068 if (Y_coord [i] < Y_min) -00069 Y_min = Y_coord [i]; -00070 if (Y_coord [i] > Y_max) -00071 Y_max = Y_coord [i]; -00072 } -00073 -00074 /* Allocation */ -00075 /* -00076 dist = new unsigned * [numNodes]; -00077 -00078 for (unsigned i = 0; i < numNodes; i ++) -00079 dist [i] = new unsigned [numNodes]; -00080 */ -00081 /* Computation of the distances */ -00082 -00083 /* -00084 for (unsigned i = 0; i < numNodes; i ++) { -00085 -00086 dist [i] [i] = 0; +00050 void loadNodes (FILE * __f) +00051 { +00052 +00053 /* Coord */ +00054 +00055 X_coord = new double [numNodes]; +00056 +00057 Y_coord = new double [numNodes]; +00058 +00059 unsigned num; +00060 +00061 for (unsigned i = 0; i < numNodes; i ++) +00062 { +00063 +00064 fscanf (__f, "%u%lf%lf", & num, X_coord + i, Y_coord + i); +00065 +00066 if (X_coord [i] < X_min) +00067 X_min = X_coord [i]; +00068 if (X_coord [i] > X_max) +00069 X_max = X_coord [i]; +00070 if (Y_coord [i] < Y_min) +00071 Y_min = Y_coord [i]; +00072 if (Y_coord [i] > Y_max) +00073 Y_max = Y_coord [i]; +00074 } +00075 +00076 /* Allocation */ +00077 /* +00078 dist = new unsigned * [numNodes]; +00079 +00080 for (unsigned i = 0; i < numNodes; i ++) +00081 dist [i] = new unsigned [numNodes]; +00082 */ +00083 /* Computation of the distances */ +00084 +00085 /* +00086 for (unsigned i = 0; i < numNodes; i ++) { 00087 -00088 for (unsigned j = 0; j < numNodes; j ++) { -00089 -00090 double dx = X_coord [i] - X_coord [j], dy = Y_coord [i] - Y_coord [j]; -00091 -00092 dist [i] [j] = dist [j] [i] = (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; -00093 } -00094 }*/ -00095 } -00096 -00097 unsigned distance (Node __from, Node __to) { +00088 dist [i] [i] = 0; +00089 +00090 for (unsigned j = 0; j < numNodes; j ++) { +00091 +00092 double dx = X_coord [i] - X_coord [j], dy = Y_coord [i] - Y_coord [j]; +00093 +00094 dist [i] [j] = dist [j] [i] = (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; +00095 } +00096 }*/ +00097 } 00098 -00099 // return dist [__from] [__to]; -00100 -00101 double dx = X_coord [__from] - X_coord [__to], dy = Y_coord [__from] - Y_coord [__to]; -00102 -00103 return (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; -00104 } +00099 unsigned distance (Node __from, Node __to) +00100 { +00101 +00102 // return dist [__from] [__to]; +00103 +00104 double dx = X_coord [__from] - X_coord [__to], dy = Y_coord [__from] - Y_coord [__to]; 00105 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00106 return (unsigned) (sqrt (dx * dx + dy * dy) + 0.5) ; +00107 } +00108 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html
index c8d476ad7..8fbef4d94 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +node.h
00001 /* 00002 * <node.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,7 +63,7 @@ 00039 00040 #include <stdio.h> 00041 -00042 typedef unsigned Node; +00042 typedef unsigned Node; 00043 00044 extern double X_min, X_max, Y_min, Y_max; 00045 @@ -73,10 +73,10 @@ 00049 00050 extern void loadNodes (FILE * __f); 00051 -00052 extern unsigned distance (Node __from, Node __to); +00052 extern unsigned distance (Node __from, Node __to); 00053 00054 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html
index 2200d9b71..4aa77efbf 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +param.cpp
00001 /* 00002 * <param.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -63,17 +63,18 @@ 00039 #include "data.h" 00040 #include "opt_route.h" 00041 -00042 void loadParameters (int __argc, char * * __argv) { -00043 -00044 eoParser parser (__argc, __argv); -00045 -00046 loadData (parser); -00047 -00048 loadOptimumRoute (parser); -00049 } -00050 +00042 void loadParameters (int __argc, char * * __argv) +00043 { +00044 +00045 eoParser parser (__argc, __argv); +00046 +00047 loadData (parser); +00048 +00049 loadOptimumRoute (parser); +00050 } 00051 -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +00052 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html
index 1d8690989..da3642a38 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +param.h
00001 /* 00002 * <param.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,7 +64,7 @@ 00040 extern void loadParameters (int __argc, char * * __argv); 00041 00042 #endif -
Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8cpp-source.html
index ddf4275dc..c047c3f4a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt.cpp
00001 /* 00002 * <two_opt.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,17 +60,19 @@ 00036 00037 #include "two_opt.h" 00038 -00039 void TwoOpt :: operator () (Route & __route) { -00040 -00041 unsigned i = 0; -00042 -00043 while ((2 * i) < (second - first)) { -00044 -00045 std :: swap (__route [first + i], __route [second - i]); -00046 i ++; -00047 } -00048 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00039 void TwoOpt :: operator () (Route & __route) +00040 { +00041 +00042 unsigned i = 0; +00043 +00044 while ((2 * i) < (second - first)) +00045 { +00046 +00047 std :: swap (__route [first + i], __route [second - i]); +00048 i ++; +00049 } +00050 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8h-source.html
index 629e5011a..fd4ded1b7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt.h
00001 /* 00002 * <two_opt.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -66,16 +66,17 @@ 00042 00043 #include "route.h" 00044 -00045 class TwoOpt : public moMove <Route>, public std :: pair <unsigned, unsigned> { -00046 -00047 public : -00048 -00049 void operator () (Route & __route); -00050 -00051 } ; -00052 -00053 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00045 class TwoOpt : public moMove <Route>, public std :: pair <unsigned, unsigned> +00046 { +00047 +00048 public : +00049 +00050 void operator () (Route & __route); +00051 +00052 } ; +00053 +00054 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html
index 2a3fceadf..771cbbe81 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_incr_eval.cpp
00001 /* 00002 * <two_opt_incr_eval.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,20 +61,21 @@ 00037 #include "two_opt_incr_eval.h" 00038 #include "node.h" 00039 -00040 int TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) { -00041 -00042 /* From */ -00043 Node v1 = __route [__move.first], v1_left = __route [(__move.first - 1 + numNodes) % numNodes]; -00044 -00045 /* To */ -00046 Node v2 = __route [__move.second], v2_right = __route [(__move.second + 1) % numNodes]; -00047 -00048 if (v1 == v2 || v2_right == v1) -00049 return __route.fitness (); -00050 else -00051 return __route.fitness () - distance (v1_left, v2) - distance (v1, v2_right) + distance (v1_left, v1) + distance (v2, v2_right); -00052 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 int TwoOptIncrEval :: operator () (const TwoOpt & __move, const Route & __route) +00041 { +00042 +00043 /* From */ +00044 Node v1 = __route [__move.first], v1_left = __route [(__move.first - 1 + numNodes) % numNodes]; +00045 +00046 /* To */ +00047 Node v2 = __route [__move.second], v2_right = __route [(__move.second + 1) % numNodes]; +00048 +00049 if (v1 == v2 || v2_right == v1) +00050 return __route.fitness (); +00051 else +00052 return __route.fitness () - distance (v1_left, v2) - distance (v1, v2_right) + distance (v1_left, v1) + distance (v2, v2_right); +00053 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html
index 7a25390a2..465fa517a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_incr_eval.h
00001 /* 00002 * <two_opt_incr_eval.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,16 +64,17 @@ 00040 #include <moMoveIncrEval.h> 00041 #include "two_opt.h" 00042 -00043 class TwoOptIncrEval : public moMoveIncrEval <TwoOpt> { -00044 -00045 public : -00046 -00047 int operator () (const TwoOpt & __move, const Route & __route) ; -00048 -00049 } ; -00050 -00051 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00043 class TwoOptIncrEval : public moMoveIncrEval <TwoOpt> +00044 { +00045 +00046 public : +00047 +00048 int operator () (const TwoOpt & __move, const Route & __route) ; +00049 +00050 } ; +00051 +00052 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html
index 4453764a6..3fa362f6b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_init.cpp
00001 /* 00002 * <two_opt_init.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -60,11 +60,12 @@ 00036 00037 #include "two_opt_init.h" 00038 -00039 void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) { -00040 -00041 __move.first = __move.second = 0; -00042 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00039 void TwoOptInit :: operator () (TwoOpt & __move, const Route & __route) +00040 { +00041 +00042 __move.first = __move.second = 0; +00043 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8h-source.html
index 0ce10347e..9606aa267 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__init_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_init.h
00001 /* 00002 * <two_opt_init.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include "two_opt.h" 00043 -00044 class TwoOptInit : public moMoveInit <TwoOpt> { -00045 -00046 public : -00047 -00048 void operator () (TwoOpt & __move, const Route & __route) ; -00049 -00050 } ; -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 class TwoOptInit : public moMoveInit <TwoOpt> +00045 { +00046 +00047 public : +00048 +00049 void operator () (TwoOpt & __move, const Route & __route) ; +00050 +00051 } ; +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html
index d5b5f6eed..92adb2183 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_next.cpp
00001 /* 00002 * <two_opt_next.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,23 +61,26 @@ 00037 #include "two_opt_next.h" 00038 #include "node.h" 00039 -00040 bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) { -00041 -00042 if (__move.first == numNodes - 1 && __move.second == numNodes - 1) -00043 return false; -00044 -00045 else { -00046 -00047 __move.second ++; -00048 if (__move.second == numNodes) { -00049 -00050 __move.first ++; -00051 __move.second = __move.first; -00052 } -00053 return true ; -00054 } -00055 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00040 bool TwoOptNext :: operator () (TwoOpt & __move, const Route & __route) +00041 { +00042 +00043 if (__move.first == numNodes - 1 && __move.second == numNodes - 1) +00044 return false; +00045 +00046 else +00047 { +00048 +00049 __move.second ++; +00050 if (__move.second == numNodes) +00051 { +00052 +00053 __move.first ++; +00054 __move.second = __move.first; +00055 } +00056 return true ; +00057 } +00058 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8h-source.html
index e0b7e9092..d41eba824 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__next_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_next.h
00001 /* 00002 * <two_opt_next.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include "two_opt.h" 00043 -00044 class TwoOptNext : public moNextMove <TwoOpt> { -00045 -00046 public : -00047 -00048 bool operator () (TwoOpt & __move, const Route & __route); -00049 -00050 }; -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 class TwoOptNext : public moNextMove <TwoOpt> +00045 { +00046 +00047 public : +00048 +00049 bool operator () (TwoOpt & __move, const Route & __route); +00050 +00051 }; +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html
index 5ffc4e7c4..f0a3619de 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_rand.cpp
00001 /* 00002 * <two_opt_rand.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -61,17 +61,18 @@ 00037 #include <utils/eoRNG.h> 00038 00039 #include "two_opt_rand.h" -00040 #include "node.h" +00040 #include "node.h" 00041 -00042 void TwoOptRand :: operator () (TwoOpt & __move, const Route & __route) { -00043 -00044 __move.second = rng.random (numNodes); -00045 -00046 __move.first = rng.random (__move.second); -00047 } -00048 +00042 void TwoOptRand :: operator () (TwoOpt & __move, const Route & __route) +00043 { +00044 +00045 __move.second = rng.random (numNodes); +00046 +00047 __move.first = rng.random (__move.second); +00048 } 00049 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00050 +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8h-source.html
index a2c308c36..91ee08a6a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/two__opt__rand_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +two_opt_rand.h
00001 /* 00002 * <two_opt_rand.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,16 +65,17 @@ 00041 00042 #include "two_opt.h" 00043 -00044 class TwoOptRand : public eoMoveRand <TwoOpt> { -00045 -00046 public : -00047 -00048 void operator () (TwoOpt & __move, const Route & __route) ; -00049 -00050 } ; -00051 -00052 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00044 class TwoOptRand : public eoMoveRand <TwoOpt> +00045 { +00046 +00047 public : +00048 +00049 void operator () (TwoOpt & __move, const Route & __route) ; +00050 +00051 } ; +00052 +00053 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/worker_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/worker_8cpp-source.html
index 869d2133f..5041b5bdd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/worker_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/worker_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +worker.cpp
00001 /* 00002 * <worker.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -70,80 +70,111 @@ 00046 00047 static std :: vector <Worker *> key_to_worker (1); /* Vector of registered workers */ 00048 -00049 Worker * getWorker (WORKER_ID __key) { +00049 extern void wakeUpCommunicator (); 00050 -00051 return key_to_worker [__key]; -00052 } +00051 Worker * getWorker (WORKER_ID __key) +00052 { 00053 -00054 Worker :: Worker () { -00055 -00056 toto = false; -00057 id = key_to_worker.size (); -00058 key_to_worker.push_back (this); -00059 } -00060 -00061 void Worker :: packResult () { -00062 -00063 pack (serv_id); -00064 serv -> packResult (); -00065 } -00066 -00067 void Worker :: unpackData () { -00068 -00069 printDebugMessage ("unpacking the ID. of the service."); -00070 unpack (serv_id); -00071 serv = getService (serv_id); -00072 printDebugMessage ("found the service."); -00073 serv -> unpackData (); -00074 printDebugMessage ("unpacking the data."); -00075 setActive (); -00076 } +00054 return key_to_worker [__key]; +00055 } +00056 +00057 Worker :: Worker () +00058 { +00059 +00060 recvAndCompleted = false; +00061 taskAssigned = 0; +00062 id = key_to_worker.size (); +00063 key_to_worker.push_back (this); +00064 +00065 sem_init( &sem_task_done, 0, 0 ); +00066 } +00067 +00068 void Worker :: packResult () +00069 { +00070 +00071 pack (serv_id); +00072 serv -> packResult (); +00073 } +00074 +00075 void Worker :: unpackData () +00076 { 00077 -00078 void Worker :: packTaskDone () { -00079 -00080 pack (getNodeRank ()); -00081 pack (id); -00082 } -00083 -00084 void Worker :: notifySendingResult () { -00085 -00086 /* Notifying the scheduler of the termination */ -00087 toto = true; -00088 wakeUp (); -00089 } +00078 taskAssigned ++; +00079 printDebugMessage ("unpacking the ID. of the service."); +00080 unpack (serv_id); +00081 serv = getService (serv_id); +00082 printDebugMessage ("found the service."); +00083 serv -> unpackData (); +00084 printDebugMessage ("unpacking the data."); +00085 setActive (); +00086 } +00087 +00088 void Worker :: packTaskDone () +00089 { 00090 -00091 void Worker :: notifySendingTaskDone () { -00092 -00093 setPassive (); -00094 } -00095 -00096 void Worker :: setSource (int __rank) { +00091 pack (getNodeRank ()); +00092 pack (id); +00093 } +00094 +00095 void Worker :: notifySendingResult () +00096 { 00097 -00098 src = __rank; -00099 } -00100 -00101 void Worker :: start () { +00098 /* Notifying the scheduler of the termination */ +00099 recvAndCompleted = true; +00100 wakeUp (); +00101 } 00102 -00103 while (true) { -00104 -00105 sleep (); -00106 -00107 if (! atLeastOneActiveRunner ()) -00108 break; -00109 -00110 if (toto) { -00111 send (this, my_node -> rk_sched, TASK_DONE_TAG); -00112 toto = false; -00113 } -00114 else { +00103 void Worker :: notifySendingTaskDone () +00104 { +00105 +00106 sem_post(&sem_task_done); +00107 setPassive (); +00108 } +00109 +00110 void Worker :: setSource (int __rank) +00111 { +00112 +00113 src = __rank; +00114 } 00115 -00116 printDebugMessage ("executing the task."); -00117 serv -> execute (); -00118 send (this, src, TASK_RESULT_TAG); -00119 } -00120 } -00121 } -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00116 void Worker :: start () +00117 { +00118 +00119 while (true) +00120 { +00121 +00122 sleep (); +00123 +00124 if (! atLeastOneActiveRunner () && ! taskAssigned) +00125 break; +00126 +00127 if (recvAndCompleted) +00128 { +00129 send (this, my_node -> rk_sched, TASK_DONE_TAG); +00130 recvAndCompleted = false; +00131 sem_wait(&sem_task_done); +00132 taskAssigned --; +00133 } +00134 else +00135 { +00136 +00137 serv -> execute (); +00138 send (this, src, TASK_RESULT_TAG); +00139 } +00140 } +00141 +00142 printDebugMessage ("Worker finished execution."); +00143 setPassive (); +00144 +00145 wakeUpCommunicator(); +00146 } +00147 +00148 void initWorkersEnv () +00149 { +00150 +00151 key_to_worker.resize (1); +00152 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/worker_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/worker_8h-source.html
index 7b0ee17e7..edd17460c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/worker_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/worker_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +worker.h
00001 /* 00002 * <worker.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -65,42 +65,50 @@ 00041 #include "../../core/reac_thread.h" 00042 #include "../../core/service.h" 00043 -00044 typedef unsigned WORKER_ID; -00045 -00046 class Worker : public Communicable, public ReactiveThread { -00047 -00048 public : +00044 +00045 typedef unsigned WORKER_ID; +00046 +00047 class Worker : public Communicable, public ReactiveThread +00048 { 00049 -00050 Worker (); +00050 public : 00051 -00052 void start (); +00052 Worker (); 00053 -00054 void packResult (); +00054 void start (); 00055 -00056 void unpackData (); +00056 void packResult (); 00057 -00058 void packTaskDone (); +00058 void unpackData (); 00059 -00060 void notifySendingResult (); +00060 void packTaskDone (); 00061 -00062 void notifySendingTaskDone (); -00063 -00064 void setSource (int __rank); -00065 -00066 private : +00062 void notifySendingResult (); +00063 +00064 void notifySendingTaskDone (); +00065 +00066 void setSource (int __rank); 00067 -00068 WORKER_ID id; -00069 SERVICE_ID serv_id; -00070 Service * serv; -00071 int src; -00072 -00073 bool toto; -00074 }; -00075 -00076 extern Worker * getWorker (WORKER_ID __key); +00068 private : +00069 +00070 WORKER_ID id; +00071 SERVICE_ID serv_id; +00072 Service * serv; +00073 int src; +00074 +00075 bool recvAndCompleted; +00076 unsigned taskAssigned; 00077 -00078 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00078 sem_t sem_task_done; +00079 sem_t sem_task_asgn; +00080 }; +00081 +00082 extern void initWorkersEnv (); +00083 +00084 extern Worker * getWorker (WORKER_ID __key); +00085 +00086 #endif +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8cpp-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8cpp-source.html
index d8f7d6632..91a874b09 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8cpp-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8cpp-source.html
@@ -1,6 +1,6 @@
-00001 /* +xml_parser.cpp
00001 /* 00002 * <xml_parser.cpp> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -64,68 +64,74 @@ 00040 00041 static xmlTextReaderPtr reader; 00042 -00043 void openXMLDocument (const char * __filename) { -00044 -00045 reader = xmlNewTextReaderFilename (__filename); -00046 -00047 if (! reader) { -00048 -00049 fprintf (stderr, "unable to open '%s'.\n", __filename); -00050 exit (1); -00051 } -00052 } -00053 -00054 void closeXMLDocument () { +00043 void openXMLDocument (const char * __filename) +00044 { +00045 +00046 reader = xmlNewTextReaderFilename (__filename); +00047 +00048 if (! reader) +00049 { +00050 +00051 fprintf (stderr, "unable to open '%s'.\n", __filename); +00052 exit (1); +00053 } +00054 } 00055 -00056 xmlFreeTextReader (reader); -00057 } +00056 void closeXMLDocument () +00057 { 00058 -00059 std :: string getAttributeValue (const std :: string & __attr) { -00060 -00061 xmlChar * value = xmlTextReaderGetAttribute (reader, (const xmlChar *) __attr.c_str ()); -00062 -00063 std :: string str ((const char *) value); -00064 -00065 xmlFree (value); -00066 -00067 return str; -00068 } -00069 -00070 static bool isSep (const xmlChar * __text) { -00071 -00072 for (unsigned i = 0; i < strlen ((char *) __text); i ++) -00073 if (__text [i] != ' ' && __text [i] != '\t' && __text [i] != '\n') -00074 return false; -00075 return true; -00076 } -00077 -00078 std :: string getNextNode () { -00079 -00080 xmlChar * name, * value; -00081 -00082 do { -00083 xmlTextReaderRead (reader); -00084 name = xmlTextReaderName (reader); -00085 value = xmlTextReaderValue (reader); -00086 // printf ("value = %s\n", value); -00087 } while (! strcmp ((char *) name, "#text") && isSep (value)); -00088 -00089 std :: string str; -00090 -00091 if (strcmp ((char *) name, "#text")) -00092 str.assign ((char *) name); -00093 else -00094 str.assign ((char *) value); -00095 -00096 if (name) -00097 xmlFree (name); -00098 if (value) -00099 xmlFree (value); -00100 -00101 return str; -00102 } -00103 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +00059 xmlFreeTextReader (reader); +00060 } +00061 +00062 std :: string getAttributeValue (const std :: string & __attr) +00063 { +00064 +00065 xmlChar * value = xmlTextReaderGetAttribute (reader, (const xmlChar *) __attr.c_str ()); +00066 +00067 std :: string str ((const char *) value); +00068 +00069 xmlFree (value); +00070 +00071 return str; +00072 } +00073 +00074 static bool isSep (const xmlChar * __text) +00075 { +00076 +00077 for (unsigned i = 0; i < strlen ((char *) __text); i ++) +00078 if (__text [i] != ' ' && __text [i] != '\t' && __text [i] != '\n') +00079 return false; +00080 return true; +00081 } +00082 +00083 std :: string getNextNode () +00084 { +00085 +00086 xmlChar * name, * value; +00087 +00088 do +00089 { +00090 xmlTextReaderRead (reader); +00091 name = xmlTextReaderName (reader); +00092 value = xmlTextReaderValue (reader); +00093 } +00094 while (! strcmp ((char *) name, "#text") && isSep (value)); +00095 +00096 std :: string str; +00097 +00098 if (strcmp ((char *) name, "#text")) +00099 str.assign ((char *) name); +00100 else +00101 str.assign ((char *) value); +00102 +00103 if (name) +00104 xmlFree (name); +00105 if (value) +00106 xmlFree (value); +00107 +00108 return str; +00109 } +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8h-source.html b/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8h-source.html
index 1d76ecd6d..ffeba2b39 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8h-source.html
+++ b/tags/dummy-tag/paradiseo-peo/doc/html/xml__parser_8h-source.html
@@ -1,6 +1,6 @@
-00001 /* +xml_parser.h
00001 /* 00002 * <xml_parser.h> 00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007 00004 * (C) OPAC Team, LIFL, 2002-2007 @@ -72,7 +72,7 @@ 00048 extern std :: string getNextNode (); 00049 00050 #endif -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by +
1.4.7
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/annotated.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/annotated.tex
index c9220430d..be92a3fe9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/annotated.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/annotated.tex
@@ -1,41 +1,69 @@
-\section{Paradis\-EO-PEOMoving\-Objects Class List}
+\section{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Class List}
Here are the classes, structs, unions and interfaces with brief descriptions:\begin{CompactList}
+\item\contentsline{section}{\hyperlink{structAlgorithm}{Algorithm} }{\pageref{structAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{classCitySwap}{City\-Swap} (Its swaps two vertices randomly choosen )}{\pageref{classCitySwap}}{}
\item\contentsline{section}{\hyperlink{classCommunicable}{Communicable} }{\pageref{classCommunicable}}{}
\item\contentsline{section}{\hyperlink{classCommunicator}{Communicator} }{\pageref{classCommunicator}}{}
+\item\contentsline{section}{\hyperlink{classCompleteTopology}{Complete\-Topology} }{\pageref{classCompleteTopology}}{}
+\item\contentsline{section}{\hyperlink{classcontinuator}{continuator} (Abstract class for a continuator within the exchange of data by migration )}{\pageref{classcontinuator}}{}
\item\contentsline{section}{\hyperlink{classCooperative}{Cooperative} }{\pageref{classCooperative}}{}
\item\contentsline{section}{\hyperlink{classDisplayBestRoute}{Display\-Best\-Route} }{\pageref{classDisplayBestRoute}}{}
+\item\contentsline{section}{\hyperlink{classEdgeXover}{Edge\-Xover} (Edge Crossover )}{\pageref{classEdgeXover}}{}
+\item\contentsline{section}{\hyperlink{classeoContinuator}{eo\-Continuator$<$ EOT $>$} (Specific class for a continuator within the exchange of migration of a population )}{\pageref{classeoContinuator}}{}
+\item\contentsline{section}{\hyperlink{classeoReplace}{eo\-Replace$<$ EOT, TYPE $>$} (Specific class for a replacement within the exchange of migration of a population )}{\pageref{classeoReplace}}{}
+\item\contentsline{section}{\hyperlink{classeoSelector}{eo\-Selector$<$ EOT, TYPE $>$} (Specific class for a selector within the exchange of migration of a population )}{\pageref{classeoSelector}}{}
+\item\contentsline{section}{\hyperlink{classeoSyncContinue}{eo\-Sync\-Continue} (Class for a continuator within the exchange of data by synchrone migration )}{\pageref{classeoSyncContinue}}{}
\item\contentsline{section}{\hyperlink{classMergeRouteEval}{Merge\-Route\-Eval} }{\pageref{classMergeRouteEval}}{}
+\item\contentsline{section}{\hyperlink{classMPIThreadedEnv}{MPIThreaded\-Env} }{\pageref{classMPIThreadedEnv}}{}
+\item\contentsline{section}{\hyperlink{structNode}{Node} }{\pageref{structNode}}{}
+\item\contentsline{section}{\hyperlink{classOrderXover}{Order\-Xover} (Order Crossover )}{\pageref{classOrderXover}}{}
+\item\contentsline{section}{\hyperlink{classPartialMappedXover}{Partial\-Mapped\-Xover} (Partial Mapped Crossover )}{\pageref{classPartialMappedXover}}{}
+\item\contentsline{section}{\hyperlink{classPartRouteEval}{Part\-Route\-Eval} (Route Evaluator )}{\pageref{classPartRouteEval}}{}
\item\contentsline{section}{\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the interface for creating aggregate evaluation functions - there are no direct internal functions provided )}{\pageref{classpeoAggEvalFunc}}{}
-\item\contentsline{section}{\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoAsyncIslandMig}}{}
-\item\contentsline{section}{\hyperlink{classpeoEA}{peo\-EA$<$ EOT $>$} (The \hyperlink{classpeoEA}{peo\-EA} class offers an elementary evolutionary algorithm implementation )}{\pageref{classpeoEA}}{}
+\item\contentsline{section}{\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$} (Specific class for a asynchronous migration )}{\pageref{classpeoAsyncIslandMig}}{}
+\item\contentsline{section}{\hyperlink{structpeoEvalFunc}{peo\-Eval\-Func$<$ EOT, Fit\-T, Function\-Arg $>$} (Specific class for evaluation )}{\pageref{structpeoEvalFunc}}{}
+\item\contentsline{section}{\hyperlink{classpeoGlobalBestVelocity}{peo\-Global\-Best\-Velocity$<$ POT $>$} (Specific class for a replacement thanks to the velocity migration of a population of a PSO )}{\pageref{classpeoGlobalBestVelocity}}{}
+\item\contentsline{section}{\hyperlink{classpeoMoeoPopEval}{peo\-Moeo\-Pop\-Eval$<$ EOT $>$} }{\pageref{classpeoMoeoPopEval}}{}
+\item\contentsline{section}{\hyperlink{classpeoMultiStart}{peo\-Multi\-Start$<$ Entity\-Type $>$} (Class allowing the launch of several algorithms )}{\pageref{classpeoMultiStart}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1AbstractAggregationAlgorithm}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Aggregation\-Algorithm} }{\pageref{structpeoMultiStart_1_1AbstractAggregationAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1AbstractAlgorithm}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Algorithm} }{\pageref{structpeoMultiStart_1_1AbstractAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1AbstractDataType}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Data\-Type} }{\pageref{structpeoMultiStart_1_1AbstractDataType}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1AggregationAlgorithm}{peo\-Multi\-Start$<$ Entity\-Type $>$::Aggregation\-Algorithm$<$ Aggregation\-Algorithm\-Type $>$} }{\pageref{structpeoMultiStart_1_1AggregationAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1Algorithm}{peo\-Multi\-Start$<$ Entity\-Type $>$::Algorithm$<$ Algorithm\-Type $>$} }{\pageref{structpeoMultiStart_1_1Algorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1DataType}{peo\-Multi\-Start$<$ Entity\-Type $>$::Data\-Type$<$ Type $>$} }{\pageref{structpeoMultiStart_1_1DataType}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1FunctionAlgorithm}{peo\-Multi\-Start$<$ Entity\-Type $>$::Function\-Algorithm$<$ Algorithm\-Return\-Type, Algorithm\-Data\-Type $>$} }{\pageref{structpeoMultiStart_1_1FunctionAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoMultiStart_1_1NoAggregationFunction}{peo\-Multi\-Start$<$ Entity\-Type $>$::No\-Aggregation\-Function} }{\pageref{structpeoMultiStart_1_1NoAggregationFunction}}{}
\item\contentsline{section}{\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$} (The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothing more than an association between a fitness value and a specified individual )}{\pageref{classpeoNoAggEvalFunc}}{}
-\item\contentsline{section}{\hyperlink{classpeoParallelAlgorithmWrapper}{peo\-Parallel\-Algorithm\-Wrapper} }{\pageref{classpeoParallelAlgorithmWrapper}}{}
-\item\contentsline{section}{\hyperlink{structpeoParallelAlgorithmWrapper_1_1AbstractAlgorithm}{peo\-Parallel\-Algorithm\-Wrapper::Abstract\-Algorithm} }{\pageref{structpeoParallelAlgorithmWrapper_1_1AbstractAlgorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoParallelAlgorithmWrapper_1_1Algorithm}{peo\-Parallel\-Algorithm\-Wrapper::Algorithm$<$ Algorithm\-Type, Algorithm\-Data\-Type $>$} }{\pageref{structpeoParallelAlgorithmWrapper_1_1Algorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoParallelAlgorithmWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}{peo\-Parallel\-Algorithm\-Wrapper::Algorithm$<$ Algorithm\-Type, void $>$} }{\pageref{structpeoParallelAlgorithmWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}}{}
-\item\contentsline{section}{\hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval} represents a wrapper for creating a functor capable of applying in parallel an EO-derived evaluation functor )}{\pageref{classpeoParaPopEval}}{}
-\item\contentsline{section}{\hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform$<$ EOT $>$} }{\pageref{classpeoParaSGATransform}}{}
-\item\contentsline{section}{\hyperlink{classpeoPopEval}{peo\-Pop\-Eval$<$ EOT $>$} (The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors )}{\pageref{classpeoPopEval}}{}
-\item\contentsline{section}{\hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval$<$ EOT $>$} (The \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval} class acts only as a Paradis\-EO specific sequential evaluation functor - a wrapper for incorporating an {\bf eo\-Eval\-Func$<$ EOT $>$}-derived class as evaluation functor )}{\pageref{classpeoSeqPopEval}}{}
-\item\contentsline{section}{\hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform$<$ EOT $>$} (The \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform} represent a wrapper for offering the possibility of using \doxyref{EO} derived transform operators along with the Paradis\-EO evolutionary algorithms )}{\pageref{classpeoSeqTransform}}{}
-\item\contentsline{section}{\hyperlink{classpeoSynchronousMultiStart}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$} }{\pageref{classpeoSynchronousMultiStart}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1AbstractAggregationAlgorithm}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Aggregation\-Algorithm} }{\pageref{structpeoSynchronousMultiStart_1_1AbstractAggregationAlgorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1AbstractAlgorithm}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Algorithm} }{\pageref{structpeoSynchronousMultiStart_1_1AbstractAlgorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1AbstractDataType}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Data\-Type} }{\pageref{structpeoSynchronousMultiStart_1_1AbstractDataType}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1AggregationAlgorithm}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Aggregation\-Algorithm$<$ Aggregation\-Algorithm\-Type $>$} }{\pageref{structpeoSynchronousMultiStart_1_1AggregationAlgorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1Algorithm}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Algorithm$<$ Algorithm\-Type $>$} }{\pageref{structpeoSynchronousMultiStart_1_1Algorithm}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1DataType}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Data\-Type$<$ Type $>$} }{\pageref{structpeoSynchronousMultiStart_1_1DataType}}{}
-\item\contentsline{section}{\hyperlink{structpeoSynchronousMultiStart_1_1NoAggregationFunction}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::No\-Aggregation\-Function} }{\pageref{structpeoSynchronousMultiStart_1_1NoAggregationFunction}}{}
-\item\contentsline{section}{\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig$<$ EOT $>$} (The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e )}{\pageref{classpeoSyncIslandMig}}{}
-\item\contentsline{section}{\hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start$<$ EOT $>$} (The \hyperlink{classpeoSyncMultiStart}{peo\-Sync\-Multi\-Start} class provides the basis for implementing the synchronous multi-start model, for launching several solution-based algorithms in parallel on a specified initial population )}{\pageref{classpeoSyncMultiStart}}{}
-\item\contentsline{section}{\hyperlink{classpeoTransform}{peo\-Transform$<$ EOT $>$} (The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes )}{\pageref{classpeoTransform}}{}
-\item\contentsline{section}{\hyperlink{structRandomExplorationAlgorithm}{Random\-Exploration\-Algorithm} }{\pageref{structRandomExplorationAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{classpeoPopEval}{peo\-Pop\-Eval$<$ EOT $>$} (Parallel evaluation functor wrapper with MOEO )}{\pageref{classpeoPopEval}}{}
+\item\contentsline{section}{\hyperlink{classpeoPSOSelect}{peo\-PSOSelect$<$ POT $>$} (Specific class for a selection of a population of a PSO )}{\pageref{classpeoPSOSelect}}{}
+\item\contentsline{section}{\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$} (Specific class for a synchronous migration )}{\pageref{classpeoSyncIslandMig}}{}
+\item\contentsline{section}{\hyperlink{classpeoTransform}{peo\-Transform$<$ EOT $>$} (Class for a parallel transform )}{\pageref{classpeoTransform}}{}
+\item\contentsline{section}{\hyperlink{classpeoWorstPositionReplacement}{peo\-Worst\-Position\-Replacement$<$ POT $>$} (Specific class for a replacement of a population of a PSO )}{\pageref{classpeoWorstPositionReplacement}}{}
+\item\contentsline{section}{\hyperlink{classpeoWrapper}{peo\-Wrapper} (Specific class for wrapping )}{\pageref{classpeoWrapper}}{}
+\item\contentsline{section}{\hyperlink{structpeoWrapper_1_1AbstractAlgorithm}{peo\-Wrapper::Abstract\-Algorithm} }{\pageref{structpeoWrapper_1_1AbstractAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoWrapper_1_1Algorithm}{peo\-Wrapper::Algorithm$<$ Algorithm\-Type, Algorithm\-Data\-Type $>$} }{\pageref{structpeoWrapper_1_1Algorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}{peo\-Wrapper::Algorithm$<$ Algorithm\-Type, void $>$} }{\pageref{structpeoWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}}{}
+\item\contentsline{section}{\hyperlink{structpeoWrapper_1_1FunctionAlgorithm}{peo\-Wrapper::Function\-Algorithm$<$ Algorithm\-Return\-Type, Algorithm\-Data\-Type $>$} }{\pageref{structpeoWrapper_1_1FunctionAlgorithm}}{}
+\item\contentsline{section}{\hyperlink{structpeoWrapper_1_1FunctionAlgorithm_3_01AlgorithmReturnType_00_01void_01_4}{peo\-Wrapper::Function\-Algorithm$<$ Algorithm\-Return\-Type, void $>$} }{\pageref{structpeoWrapper_1_1FunctionAlgorithm_3_01AlgorithmReturnType_00_01void_01_4}}{}
+\item\contentsline{section}{\hyperlink{classRandomTopology}{Random\-Topology} }{\pageref{classRandomTopology}}{}
\item\contentsline{section}{\hyperlink{classReactiveThread}{Reactive\-Thread} }{\pageref{classReactiveThread}}{}
+\item\contentsline{section}{\hyperlink{classreplacement}{replacement$<$ TYPE $>$} (Abstract class for a replacement within the exchange of data by migration )}{\pageref{classreplacement}}{}
\item\contentsline{section}{\hyperlink{classRingTopology}{Ring\-Topology} }{\pageref{classRingTopology}}{}
+\item\contentsline{section}{\hyperlink{classRouteEval}{Route\-Eval} }{\pageref{classRouteEval}}{}
+\item\contentsline{section}{\hyperlink{classRouteInit}{Route\-Init} }{\pageref{classRouteInit}}{}
\item\contentsline{section}{\hyperlink{classRunner}{Runner} }{\pageref{classRunner}}{}
+\item\contentsline{section}{\hyperlink{classselector}{selector$<$ TYPE $>$} (Abstract class for a selector within the exchange of data by migration )}{\pageref{classselector}}{}
\item\contentsline{section}{\hyperlink{structSEND__REQUEST}{SEND\_\-REQUEST} }{\pageref{structSEND__REQUEST}}{}
\item\contentsline{section}{\hyperlink{classService}{Service} }{\pageref{classService}}{}
+\item\contentsline{section}{\hyperlink{classStarTopology}{Star\-Topology} }{\pageref{classStarTopology}}{}
+\item\contentsline{section}{\hyperlink{structSyncCompare}{Sync\-Compare} }{\pageref{structSyncCompare}}{}
+\item\contentsline{section}{\hyperlink{structSyncEntry}{Sync\-Entry} }{\pageref{structSyncEntry}}{}
\item\contentsline{section}{\hyperlink{classThread}{Thread} }{\pageref{classThread}}{}
\item\contentsline{section}{\hyperlink{classTopology}{Topology} }{\pageref{classTopology}}{}
+\item\contentsline{section}{\hyperlink{classTwoOpt}{Two\-Opt} }{\pageref{classTwoOpt}}{}
+\item\contentsline{section}{\hyperlink{classTwoOptIncrEval}{Two\-Opt\-Incr\-Eval} }{\pageref{classTwoOptIncrEval}}{}
+\item\contentsline{section}{\hyperlink{classTwoOptInit}{Two\-Opt\-Init} }{\pageref{classTwoOptInit}}{}
+\item\contentsline{section}{\hyperlink{classTwoOptNext}{Two\-Opt\-Next} }{\pageref{classTwoOptNext}}{}
+\item\contentsline{section}{\hyperlink{classTwoOptRand}{Two\-Opt\-Rand} }{\pageref{classTwoOptRand}}{}
\item\contentsline{section}{\hyperlink{classWorker}{Worker} }{\pageref{classWorker}}{}
\end{CompactList}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.eps
index bc98683b5..93c81aa32 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 79.3651
+%%BoundingBox: 0 0 500 25.8176
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 6.3 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 19.3667 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 6 def
-/cols 6 def
+/rows 3 def
+/cols 7 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -178,13 +178,12 @@ boxfont setfont
(Runner) cw
(Service) cw
(Worker) cw
-(peoAsyncIslandMig< EOT >) cw
-(peoSyncIslandMig< EOT >) cw
-(peoEA< EOT >) cw
-(peoParallelAlgorithmWrapper) cw
+(peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
+(peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
+(peoWrapper) cw
+(peoMoeoPopEval< EOT >) cw
+(peoMultiStart< EntityType >) cw
(peoPopEval< EOT >) cw
-(peoSynchronousMultiStart< EntityType >) cw
-(peoSyncMultiStart< EOT >) cw
(peoTransform< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
@@ -197,61 +196,54 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (Communicable) 3 5 box
- (Cooperative) 0 4 box
- (Runner) 2 4 box
- (Service) 4 4 box
- (Worker) 5 4 box
- (peoAsyncIslandMig< EOT >) 1 3 box
- (peoSyncIslandMig< EOT >) 1 2 box
- (peoEA< EOT >) 3 3 box
- (peoParallelAlgorithmWrapper) 3 2 box
- (peoPopEval< EOT >) 5 3 box
-5 3 mark
- (peoSynchronousMultiStart< EntityType >) 5 2 box
- (peoSyncMultiStart< EOT >) 5 1 box
- (peoTransform< EOT >) 5 0 box
-5 0 mark
+ (Communicable) 3.25 2 box
+ (Cooperative) 0.5 1 box
+ (Runner) 2 1 box
+ (Service) 4.5 1 box
+ (Worker) 5.5 1 box
+ (peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) 0 0 box
+ (peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) 1 0 box
+ (peoWrapper) 2 0 box
+ (peoMoeoPopEval< EOT >) 3 0 box
+ (peoMultiStart< EntityType >) 4 0 box
+ (peoPopEval< EOT >) 5 0 box
+ (peoTransform< EOT >) 6 0 box
% ----- relations -----
solid
-1 3 4.25 out
+1 3.25 1.25 out
solid
-0 5 5 conn
+0.5 5.5 2 conn
solid
-0 0 4.75 in
+0 0.5 1.75 in
solid
-1 0 3.25 out
+1 0.5 0.25 out
solid
-0 2 4.75 in
+0 1 1 conn
solid
-1 2 3.25 out
+0 2 1.75 in
solid
-0 4 4.75 in
+1 2 0.25 out
solid
-1 4 3.25 out
+0 4.5 1.75 in
solid
-0 5 4.75 in
+1 4.5 0.25 out
solid
-0 0 3.5 hedge
+3 6 1 conn
solid
-0 0 2.5 hedge
+0 5.5 1.75 in
solid
-0 4 2.5 vedge
+0 0 0.75 in
solid
-0 2 3.5 hedge
+0 1 0.75 in
solid
-0 2 2.5 hedge
+0 2 0.75 in
solid
-2 4 2.5 vedge
+0 3 0.75 in
solid
-0 4 3.5 hedge
+0 4 0.75 in
solid
-0 4 2.5 hedge
+0 5 0.75 in
solid
-0 4 1.5 hedge
-solid
-0 4 0.5 hedge
-solid
-4 4 0.5 vedge
+0 6 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.pdf
index 9213c1a3e..98ce8b1e9 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.tex
index 44bcd5647..d818d84b2 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicable.tex
@@ -5,7 +5,7 @@
Inheritance diagram for Communicable::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=2.22222cm]{classCommunicable}
+\includegraphics[height=0.722892cm]{classCommunicable}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
@@ -45,6 +45,14 @@ void \hyperlink{classCommunicable_cb53e6534b947bc889aa181d9dbbd13b}{stop} ()}
void \hyperlink{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}{resume} ()}
\label{classCommunicable_3306a9adb11a0ab5af342c0db9f7bb2a}
+\end{CompactItemize}
+\subsection*{Static Public Attributes}
+\begin{CompactItemize}
+\item
+\hypertarget{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{
+static unsigned \hyperlink{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{num\_\-comm} = 0}
+\label{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}
+
\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
@@ -63,14 +71,6 @@ sem\_\-t \hyperlink{classCommunicable_cf9639312f71a2f348bc1e7789ccbd9d}{sem\_\-l
sem\_\-t \hyperlink{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}{sem\_\-stop}}
\label{classCommunicable_29c53b9191348e0505e3bcba6d8b82b1}
-\end{CompactItemize}
-\subsection*{Static Protected Attributes}
-\begin{CompactItemize}
-\item
-\hypertarget{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{
-static unsigned \hyperlink{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{num\_\-comm} = 0}
-\label{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}
-
\end{CompactItemize}
@@ -79,7 +79,7 @@ static unsigned \hyperlink{classCommunicable_7a6acfdc781a67c9c0ec4f17893f86c3}{n
-Definition at line 44 of file communicable.h.
+Definition at line 45 of file communicable.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicator.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicator.pdf
index 803364617..afedebed2 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicator.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classCommunicator.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.eps
index 60c6b6b94..874f08de1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 166.667
+%%BoundingBox: 0 0 500 90.3614
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,7 +19,7 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 3 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 5.53333 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
@@ -175,8 +175,8 @@ boxfont setfont
1 boundaspect scale
(Cooperative) cw
(Communicable) cw
-(peoAsyncIslandMig< EOT >) cw
-(peoSyncIslandMig< EOT >) cw
+(peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
+(peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -190,8 +190,8 @@ boundx scalefactor div boundy scalefactor div scale
(Cooperative) 0.5 1 box
(Communicable) 0.5 2 box
- (peoAsyncIslandMig< EOT >) 0 0 box
- (peoSyncIslandMig< EOT >) 1 0 box
+ (peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) 0 0 box
+ (peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) 1 0 box
% ----- relations -----
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.pdf
index d7a04b51a..2e8ee7f84 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.tex
index 772edcf01..94011841d 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classCooperative.tex
@@ -5,7 +5,7 @@
Inheritance diagram for Cooperative::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=3cm]{classCooperative}
+\includegraphics[height=2.53012cm]{classCooperative}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
@@ -25,11 +25,31 @@ void \hyperlink{classCooperative_fe7b022567174c8305bc78d8c5749b12}{set\-Owner} (
void \hyperlink{classCooperative_c609f2a1200da7d1ac96005602515fc6}{send} (\hyperlink{classCooperative}{Cooperative} $\ast$\_\-\_\-coop)}
\label{classCooperative_c609f2a1200da7d1ac96005602515fc6}
+\item
+\hypertarget{classCooperative_a08615f1fb5a71bb6eb8ea53ef7d1c69}{
+void \hyperlink{classCooperative_a08615f1fb5a71bb6eb8ea53ef7d1c69}{synchronize\-Coop\-Ex} ()}
+\label{classCooperative_a08615f1fb5a71bb6eb8ea53ef7d1c69}
+
\item
\hypertarget{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{
virtual void \hyperlink{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{notify\-Sending} ()}
\label{classCooperative_4439ddeaa1246a2e44c003bfb781739b}
+\item
+\hypertarget{classCooperative_b75a33c5735799076e01b125e47e3bbc}{
+virtual void \hyperlink{classCooperative_b75a33c5735799076e01b125e47e3bbc}{notify\-Receiving} ()}
+\label{classCooperative_b75a33c5735799076e01b125e47e3bbc}
+
+\item
+\hypertarget{classCooperative_38f28f9155deac5e48edcaf935a2263b}{
+virtual void \hyperlink{classCooperative_38f28f9155deac5e48edcaf935a2263b}{notify\-Sending\-Sync\-Req} ()}
+\label{classCooperative_38f28f9155deac5e48edcaf935a2263b}
+
+\item
+\hypertarget{classCooperative_6cc64e571944783b8f697f7c2299cc8d}{
+virtual void \hyperlink{classCooperative_6cc64e571944783b8f697f7c2299cc8d}{notify\-Synchronized} ()}
+\label{classCooperative_6cc64e571944783b8f697f7c2299cc8d}
+
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
@@ -46,9 +66,9 @@ virtual void \hyperlink{classCooperative_4439ddeaa1246a2e44c003bfb781739b}{notif
-Definition at line 45 of file cooperative.h.
+Definition at line 46 of file cooperative.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
cooperative.h\item
-coop.cpp\end{CompactItemize}
+cooperative.cpp\end{CompactItemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classDisplayBestRoute.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classDisplayBestRoute.tex
index 390c5544a..b120d430a 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classDisplayBestRoute.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classDisplayBestRoute.tex
@@ -2,17 +2,11 @@
\section{Display\-Best\-Route Class Reference}
\label{classDisplayBestRoute}\index{DisplayBestRoute@{DisplayBestRoute}}
}
-Inheritance diagram for Display\-Best\-Route::\begin{figure}[H]
-\begin{center}
-\leavevmode
-\includegraphics[height=4cm]{classDisplayBestRoute}
-\end{center}
-\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
\hypertarget{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}{
-\hyperlink{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}{Display\-Best\-Route} (\bf{eo\-Pop}$<$ \bf{Route} $>$ \&\_\-\_\-pop)}
+\hyperlink{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}{Display\-Best\-Route} (eo\-Pop$<$ Route $>$ \&\_\-\_\-pop)}
\label{classDisplayBestRoute_db263e38f1e82174f811bf62f323f87f}
\item
@@ -25,7 +19,7 @@ void \hyperlink{classDisplayBestRoute_ee879344a6d8b81a04d4eabbed2c7a04}{operator
\begin{CompactItemize}
\item
\hypertarget{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}{
-\bf{eo\-Pop}$<$ \bf{Route} $>$ \& \hyperlink{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}{pop}}
+eo\-Pop$<$ Route $>$ \& \hyperlink{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}{pop}}
\label{classDisplayBestRoute_5270aabbf294d2deca9878934216eb89}
\end{CompactItemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.eps
index a46755cc0..042e549fd 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 479.042
+%%BoundingBox: 0 0 500 239.521
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,12 +19,12 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 1.04375 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 2.0875 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
+/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -175,8 +175,6 @@ boxfont setfont
1 boundaspect scale
(MergeRouteEval) cw
(peoAggEvalFunc< EOT >) cw
-(eoBF< A1, A2, R >) cw
-(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale
(MergeRouteEval) 0 0 box
(peoAggEvalFunc< EOT >) 0 1 box
- (eoBF< A1, A2, R >) 0 2 box
- (eoFunctorBase) 0 3 box
% ----- relations -----
@@ -199,11 +195,3 @@ solid
0 0 0 out
solid
1 0 1 in
-solid
-0 0 1 out
-solid
-1 0 2 in
-solid
-0 0 2 out
-solid
-1 0 3 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.pdf
index d469f7cf8..54554d5f1 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.tex
index d2fcb7425..d5654bcc5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classMergeRouteEval.tex
@@ -5,14 +5,14 @@
Inheritance diagram for Merge\-Route\-Eval::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classMergeRouteEval}
+\includegraphics[height=2cm]{classMergeRouteEval}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
\hypertarget{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}{
-void \hyperlink{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}{operator()} (\bf{Route} \&\_\-\_\-route, const int \&\_\-\_\-part\_\-fit)}
+void \hyperlink{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}{operator()} (Route \&\_\-\_\-route, const int \&\_\-\_\-part\_\-fit)}
\label{classMergeRouteEval_29cb0028ac0df4b2cee3a809c8f35dea}
\end{CompactItemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.pdf
index 2e0f92b3c..745b8f04c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.pdf
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.pdf
@@ -49,8 +49,8 @@ endobj
endobj
2 0 obj
<>endobj
@@ -69,7 +69,7 @@ xref
0000000864 00000 n
trailer
<< /Size 11 /Root 1 0 R /Info 2 0 R
-/ID [(À©s¬YÍ_êZ‹?Àl’!)(À©s¬YÍ_êZ‹?Àl’!)]
+/ID [(>š Ä é«ô¯Ù¤UJÅÅ)(>š Ä é«ô¯Ù¤UJÅÅ)]
>>
startxref
1117
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.tex
index 1b9508e9d..6b4776025 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classReactiveThread.tex
@@ -41,7 +41,7 @@ sem\_\-t \hyperlink{classReactiveThread_915e5a42dc8cb1bcf6738d5fe883a4e7}{sem}}
-Definition at line 44 of file reac\_\-thread.h.
+Definition at line 45 of file reac\_\-thread.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classRingTopology.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classRingTopology.pdf
index 3b9bdd5d6..6a402d4a1 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classRingTopology.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classRingTopology.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.eps
index 0bc955061..ba647bc6c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 161.29
+%%BoundingBox: 0 0 500 294.118
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,7 +19,7 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 3.1 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 1.7 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
@@ -176,8 +176,7 @@ boxfont setfont
(Runner) cw
(Communicable) cw
(Thread) cw
-(peoEA< EOT >) cw
-(peoParallelAlgorithmWrapper) cw
+(peoWrapper) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -192,8 +191,7 @@ boundx scalefactor div boundy scalefactor div scale
(Runner) 0.5 1 box
(Communicable) 0 2 box
(Thread) 1 2 box
- (peoEA< EOT >) 0 0 box
- (peoParallelAlgorithmWrapper) 1 0 box
+ (peoWrapper) 0.5 0 box
% ----- relations -----
@@ -208,8 +206,4 @@ solid
solid
1 0.5 0.25 out
solid
-0 1 1 conn
-solid
-0 0 0.75 in
-solid
-0 1 0.75 in
+0 0.5 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.pdf
index c9bfd3d1a..593a61061 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.tex
index ce98b3b32..3038e1337 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classRunner.tex
@@ -16,9 +16,24 @@ Inheritance diagram for Runner::\begin{figure}[H]
\label{classRunner_7acb8258c21da9daa62f9a177a2e5acd}
\item
-\hypertarget{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{
-void \hyperlink{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{start} ()}
-\label{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}
+\hypertarget{classRunner_f055608a382a32c6a889b0407e228312}{
+RUNNER\_\-ID \hyperlink{classRunner_f055608a382a32c6a889b0407e228312}{get\-Definition\-ID} ()}
+\label{classRunner_f055608a382a32c6a889b0407e228312}
+
+\item
+\hypertarget{classRunner_95c5e10928221a6140557e2ca6af5434}{
+RUNNER\_\-ID \hyperlink{classRunner_95c5e10928221a6140557e2ca6af5434}{get\-Execution\-ID} ()}
+\label{classRunner_95c5e10928221a6140557e2ca6af5434}
+
+\item
+\hypertarget{classRunner_5262b394f0f0899b85316136941df42c}{
+void \hyperlink{classRunner_5262b394f0f0899b85316136941df42c}{set\-Execution\-ID} (const RUNNER\_\-ID \&execution\_\-id)}
+\label{classRunner_5262b394f0f0899b85316136941df42c}
+
+\item
+\hypertarget{classRunner_1ec095cb08373aaebbce6fe6418cd53c}{
+bool \hyperlink{classRunner_1ec095cb08373aaebbce6fe6418cd53c}{is\-Assigned\-Locally} ()}
+\label{classRunner_1ec095cb08373aaebbce6fe6418cd53c}
\item
\hypertarget{classRunner_5bc239db2be753b77369fa9a038769fd}{
@@ -26,9 +41,14 @@ void \hyperlink{classRunner_5bc239db2be753b77369fa9a038769fd}{wait\-Starting} ()
\label{classRunner_5bc239db2be753b77369fa9a038769fd}
\item
-\hypertarget{classRunner_40adbfb7d6944189b4fff60b02e669ca}{
-bool \hyperlink{classRunner_40adbfb7d6944189b4fff60b02e669ca}{is\-Local} ()}
-\label{classRunner_40adbfb7d6944189b4fff60b02e669ca}
+\hypertarget{classRunner_756ad5e211d4818a88d53fa9ac272f68}{
+void \hyperlink{classRunner_756ad5e211d4818a88d53fa9ac272f68}{wait\-Context\-Initialization} ()}
+\label{classRunner_756ad5e211d4818a88d53fa9ac272f68}
+
+\item
+\hypertarget{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{
+void \hyperlink{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}{start} ()}
+\label{classRunner_7dc4419051fcc5cc9dadd54ecc9cd47d}
\item
\hypertarget{classRunner_0f133e75c28fb8264549814f80608e68}{
@@ -36,20 +56,20 @@ void \hyperlink{classRunner_0f133e75c28fb8264549814f80608e68}{terminate} ()}
\label{classRunner_0f133e75c28fb8264549814f80608e68}
\item
-\hypertarget{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{
-RUNNER\_\-ID \hyperlink{classRunner_5026c74eec184e3a15cb3c0ec4200a57}{get\-ID} ()}
-\label{classRunner_5026c74eec184e3a15cb3c0ec4200a57}
-
-\item
-\hypertarget{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{
-void \hyperlink{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{pack\-Termination} ()}
-\label{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}
+\hypertarget{classRunner_2cce5433184ec8f89e06531c23acbcf8}{
+void \hyperlink{classRunner_2cce5433184ec8f89e06531c23acbcf8}{notify\-Context\-Initialized} ()}
+\label{classRunner_2cce5433184ec8f89e06531c23acbcf8}
\item
\hypertarget{classRunner_3591be473e0fcee1105fb57319b529aa}{
void \hyperlink{classRunner_3591be473e0fcee1105fb57319b529aa}{notify\-Sending\-Termination} ()}
\label{classRunner_3591be473e0fcee1105fb57319b529aa}
+\item
+\hypertarget{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{
+void \hyperlink{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}{pack\-Termination} ()}
+\label{classRunner_2ad6d199d684d6f34347fc202ffe2fa3}
+
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
@@ -59,9 +79,19 @@ sem\_\-t \hyperlink{classRunner_4b0827d5df2df632db4ab71dd55e81b2}{sem\_\-start}}
\label{classRunner_4b0827d5df2df632db4ab71dd55e81b2}
\item
-\hypertarget{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{
-unsigned \hyperlink{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{id}}
-\label{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}
+\hypertarget{classRunner_66a5b083c6bc4cea06301db80cb80c99}{
+sem\_\-t \hyperlink{classRunner_66a5b083c6bc4cea06301db80cb80c99}{sem\_\-cntxt}}
+\label{classRunner_66a5b083c6bc4cea06301db80cb80c99}
+
+\item
+\hypertarget{classRunner_bcadf488813aacbdeeefd3e0b9a618ee}{
+unsigned \hyperlink{classRunner_bcadf488813aacbdeeefd3e0b9a618ee}{def\_\-id}}
+\label{classRunner_bcadf488813aacbdeeefd3e0b9a618ee}
+
+\item
+\hypertarget{classRunner_46671665b1f97e8a09ed9d5ffcf56966}{
+unsigned \hyperlink{classRunner_46671665b1f97e8a09ed9d5ffcf56966}{exec\_\-id}}
+\label{classRunner_46671665b1f97e8a09ed9d5ffcf56966}
\end{CompactItemize}
@@ -71,7 +101,7 @@ unsigned \hyperlink{classRunner_1989c1f8e0b0b54ad2e60a341007e59d}{id}}
-Definition at line 47 of file runner.h.
+Definition at line 49 of file runner.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.eps
index b2c160b85..5f283b621 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 63.4921
+%%BoundingBox: 0 0 500 84.7458
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 7.875 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 5.9 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
-/cols 5 def
+/rows 3 def
+/cols 4 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -175,14 +175,10 @@ boxfont setfont
1 boundaspect scale
(Service) cw
(Communicable) cw
+(peoMoeoPopEval< EOT >) cw
+(peoMultiStart< EntityType >) cw
(peoPopEval< EOT >) cw
-(peoSynchronousMultiStart< EntityType >) cw
-(peoSyncMultiStart< EOT >) cw
(peoTransform< EOT >) cw
-(peoParaPopEval< EOT >) cw
-(peoSeqPopEval< EOT >) cw
-(peoParaSGATransform< EOT >) cw
-(peoSeqTransform< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -194,48 +190,28 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (Service) 2 2 box
- (Communicable) 2 3 box
- (peoPopEval< EOT >) 0.5 1 box
- (peoSynchronousMultiStart< EntityType >) 1.5 1 box
- (peoSyncMultiStart< EOT >) 2.5 1 box
- (peoTransform< EOT >) 3.5 1 box
- (peoParaPopEval< EOT >) 0 0 box
- (peoSeqPopEval< EOT >) 1 0 box
- (peoParaSGATransform< EOT >) 3 0 box
- (peoSeqTransform< EOT >) 4 0 box
+ (Service) 1.5 1 box
+ (Communicable) 1.5 2 box
+ (peoMoeoPopEval< EOT >) 0 0 box
+ (peoMultiStart< EntityType >) 1 0 box
+ (peoPopEval< EOT >) 2 0 box
+ (peoTransform< EOT >) 3 0 box
% ----- relations -----
solid
-0 2 2 out
+0 1.5 1 out
solid
-1 2 3 in
+1 1.5 2 in
solid
-1 2 1.25 out
+1 1.5 0.25 out
solid
-0.5 3.5 2 conn
-solid
-0 0.5 1.75 in
-solid
-1 0.5 0.25 out
-solid
-0 1 1 conn
-solid
-0 1.5 1.75 in
-solid
-0 2.5 1.75 in
-solid
-0 3.5 1.75 in
-solid
-1 3.5 0.25 out
-solid
-3 4 1 conn
+0 3 1 conn
solid
0 0 0.75 in
solid
0 1 0.75 in
solid
-0 3 0.75 in
+0 2 0.75 in
solid
-0 4 0.75 in
+0 3 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.pdf
index c9b2abcb1..bdd671497 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.tex
index fad0d49e2..6508c9322 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classService.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classService.tex
@@ -5,7 +5,7 @@
Inheritance diagram for Service::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=1.77778cm]{classService}
+\includegraphics[height=2.37288cm]{classService}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
@@ -91,7 +91,7 @@ unsigned \hyperlink{classService_a5b2ad9520bb3710b54348b99acebd58}{num\_\-sent\_
-Definition at line 45 of file service.h.
+Definition at line 46 of file service.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.eps
index b0fe5e8f1..9528bf148 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 80.6452
+%%BoundingBox: 0 0 500 183.486
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 6.2 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 2.725 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 3 def
-/cols 4 def
+/cols 3 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -178,8 +178,7 @@ boxfont setfont
(Runner) cw
(Communicator) cw
(Worker) cw
-(peoEA< EOT >) cw
-(peoParallelAlgorithmWrapper) cw
+(peoWrapper) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -191,20 +190,19 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (Thread) 1.5 2 box
+ (Thread) 1.25 2 box
(ReactiveThread) 0.5 1 box
- (Runner) 2.5 1 box
+ (Runner) 2 1 box
(Communicator) 0 0 box
(Worker) 1 0 box
- (peoEA< EOT >) 2 0 box
- (peoParallelAlgorithmWrapper) 3 0 box
+ (peoWrapper) 2 0 box
% ----- relations -----
solid
-1 1.5 1.25 out
+1 1.25 1.25 out
solid
-0.5 2.5 2 conn
+0.5 2 2 conn
solid
0 0.5 1.75 in
solid
@@ -212,16 +210,12 @@ solid
solid
0 1 1 conn
solid
-0 2.5 1.75 in
+0 2 1.75 in
solid
-1 2.5 0.25 out
-solid
-2 3 1 conn
+1 2 0.25 out
solid
0 0 0.75 in
solid
0 1 0.75 in
solid
0 2 0.75 in
-solid
-0 3 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.pdf
index 2e71727a7..04535de1b 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.tex
index 2c95acf63..3e34d2e99 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classThread.tex
@@ -5,7 +5,7 @@
Inheritance diagram for Thread::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=2.25806cm]{classThread}
+\includegraphics[height=3cm]{classThread}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.eps
index 45dacefa6..c9cbd641d 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 412.371
+%%BoundingBox: 0 0 500 80.6452
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 1.2125 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 6.2 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
/rows 2 def
-/cols 1 def
+/cols 4 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -174,7 +174,10 @@
boxfont setfont
1 boundaspect scale
(Topology) cw
+(CompleteTopology) cw
+(RandomTopology) cw
(RingTopology) cw
+(StarTopology) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -186,12 +189,23 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (Topology) 0 1 box
- (RingTopology) 0 0 box
+ (Topology) 1.5 1 box
+ (CompleteTopology) 0 0 box
+ (RandomTopology) 1 0 box
+ (RingTopology) 2 0 box
+ (StarTopology) 3 0 box
% ----- relations -----
solid
-1 0 0.25 out
+1 1.5 0.25 out
+solid
+0 3 1 conn
solid
0 0 0.75 in
+solid
+0 1 0.75 in
+solid
+0 2 0.75 in
+solid
+0 3 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.pdf
index dfcce5d06..011576e23 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.tex
index 532211163..6619e78a6 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classTopology.tex
@@ -20,6 +20,11 @@ virtual \hyperlink{classTopology_3e447669757c8311c7f6f8edc705abf2}{$\sim$Topolog
void \hyperlink{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}{add} (\hyperlink{classCooperative}{Cooperative} \&\_\-\_\-mig)}
\label{classTopology_62bc46d8c20fdc71dad9e7c7a0d7aded}
+\item
+\hypertarget{classTopology_5b48abce5d58230f944e95f3fe4f2727}{
+\hyperlink{classTopology_5b48abce5d58230f944e95f3fe4f2727}{operator std::vector} ()}
+\label{classTopology_5b48abce5d58230f944e95f3fe4f2727}
+
\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.pdf
index e43d46552..2b1f14da5 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.tex
index 4cd676866..b76f66d0b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classWorker.tex
@@ -74,9 +74,24 @@ int \hyperlink{classWorker_895c3ebc198018ea3391c09bc802d2f6}{src}}
\label{classWorker_895c3ebc198018ea3391c09bc802d2f6}
\item
-\hypertarget{classWorker_7ba5a18b2918cf9e704536b763be37f7}{
-bool \hyperlink{classWorker_7ba5a18b2918cf9e704536b763be37f7}{toto}}
-\label{classWorker_7ba5a18b2918cf9e704536b763be37f7}
+\hypertarget{classWorker_1bcc1e66cc2021cc9cc5e79d0eea563d}{
+bool \hyperlink{classWorker_1bcc1e66cc2021cc9cc5e79d0eea563d}{recv\-And\-Completed}}
+\label{classWorker_1bcc1e66cc2021cc9cc5e79d0eea563d}
+
+\item
+\hypertarget{classWorker_3bb2faa8e6350cb0ab13534069dcc96d}{
+unsigned \hyperlink{classWorker_3bb2faa8e6350cb0ab13534069dcc96d}{task\-Assigned}}
+\label{classWorker_3bb2faa8e6350cb0ab13534069dcc96d}
+
+\item
+\hypertarget{classWorker_173ce84a3c7ee9f73c691c39c68ca711}{
+sem\_\-t \hyperlink{classWorker_173ce84a3c7ee9f73c691c39c68ca711}{sem\_\-task\_\-done}}
+\label{classWorker_173ce84a3c7ee9f73c691c39c68ca711}
+
+\item
+\hypertarget{classWorker_995391e66dacedffe1e2b4754296b455}{
+sem\_\-t \hyperlink{classWorker_995391e66dacedffe1e2b4754296b455}{sem\_\-task\_\-asgn}}
+\label{classWorker_995391e66dacedffe1e2b4754296b455}
\end{CompactItemize}
@@ -86,7 +101,7 @@ bool \hyperlink{classWorker_7ba5a18b2918cf9e704536b763be37f7}{toto}}
-Definition at line 46 of file worker.h.
+Definition at line 47 of file worker.h.
The documentation for this class was generated from the following files:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps
index de2aa80a5..13b9976d7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 218.579
+%%BoundingBox: 0 0 500 109.29
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,12 +19,12 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 4.575 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
+/rows 2 def
/cols 2 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -174,8 +174,6 @@
boxfont setfont
1 boundaspect scale
(peoAggEvalFunc< EOT >) cw
-(eoBF< A1, A2, R >) cw
-(eoFunctorBase) cw
(MergeRouteEval) cw
(peoNoAggEvalFunc< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
@@ -190,21 +188,11 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
(peoAggEvalFunc< EOT >) 0.5 1 box
- (eoBF< A1, A2, R >) 0.5 2 box
- (eoFunctorBase) 0.5 3 box
(MergeRouteEval) 0 0 box
(peoNoAggEvalFunc< EOT >) 1 0 box
% ----- relations -----
-solid
-0 0.5 1 out
-solid
-1 0.5 2 in
-solid
-0 0.5 2 out
-solid
-1 0.5 3 in
solid
1 0.5 0.25 out
solid
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf
index 474c0d8dd..b3ace6fdb 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex
index 378801387..431b98522 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAggEvalFunc.tex
@@ -10,7 +10,7 @@ The \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func} class offers only the
Inheritance diagram for peo\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classpeoAggEvalFunc}
+\includegraphics[height=2cm]{classpeoAggEvalFunc}
\end{center}
\end{figure}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps
index 292b6cce7..f818c0cc9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 222.222
+%%BoundingBox: 0 0 500 180.723
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 2.25 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 2.76667 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
-/cols 2 def
+/rows 3 def
+/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -173,12 +173,9 @@
boxfont setfont
1 boundaspect scale
-(peoAsyncIslandMig< EOT >) cw
+(peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
(Cooperative) cw
-(eoUpdater) cw
(Communicable) cw
-(eoF< void >) cw
-(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -190,32 +187,17 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (peoAsyncIslandMig< EOT >) 0.5 0 box
+ (peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) 0 0 box
(Cooperative) 0 1 box
- (eoUpdater) 1 1 box
(Communicable) 0 2 box
- (eoF< void >) 1 2 box
- (eoFunctorBase) 1 3 box
% ----- relations -----
solid
-0 0.5 0 out
-solid
-0 1 1 conn
+0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
-1 1 1 in
-solid
-0 1 1 out
-solid
1 0 2 in
-solid
-1 1 2 in
-solid
-0 1 2 out
-solid
-1 1 3 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf
index 45d2aac49..e404cd1ff 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex
index bb0bcc2cf..552ee8c9e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex
@@ -1,217 +1,147 @@
\hypertarget{classpeoAsyncIslandMig}{
-\section{peo\-Async\-Island\-Mig$<$ EOT $>$ Class Template Reference}
+\section{peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$ Class Template Reference}
\label{classpeoAsyncIslandMig}\index{peoAsyncIslandMig@{peoAsyncIslandMig}}
}
-The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
+Specific class for a asynchronous migration.
{\tt \#include $<$peo\-Async\-Island\-Mig.h$>$}
-Inheritance diagram for peo\-Async\-Island\-Mig$<$ EOT $>$::\begin{figure}[H]
+Inheritance diagram for peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classpeoAsyncIslandMig}
+\includegraphics[height=3cm]{classpeoAsyncIslandMig}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
-\hyperlink{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{peo\-Async\-Island\-Mig} (\bf{eo\-Continue}$<$ EOT $>$ \&\_\-\_\-cont, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-source, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-destination)
-\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item
-void \hyperlink{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{operator()} ()
-\begin{CompactList}\small\item\em \doxyref{Function} operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item
-\hypertarget{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{
-void \hyperlink{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}{pack} ()}
-\label{classpeoAsyncIslandMig_6d790a5d0b6ac510cac4f61a1c0d8f16}
+\hyperlink{classpeoAsyncIslandMig_e40ddd54734b018ab4e5c3f2bbd5a49c}{peo\-Async\-Island\-Mig} (\hyperlink{classcontinuator}{continuator} \&\_\-\_\-cont, \hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \&\_\-\_\-select, \hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology)
+\item
+\hypertarget{classpeoAsyncIslandMig_d56e189f269dde8d68a4b007f05edaff}{
+void \hyperlink{classpeoAsyncIslandMig_d56e189f269dde8d68a4b007f05edaff}{operator()} ()}
+\label{classpeoAsyncIslandMig_d56e189f269dde8d68a4b007f05edaff}
-\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item
-\hypertarget{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{
-void \hyperlink{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}{unpack} ()}
-\label{classpeoAsyncIslandMig_455501aee5db2bbfbae15779c8429369}
+\begin{CompactList}\small\item\em operator \item\end{CompactList}\item
+\hypertarget{classpeoAsyncIslandMig_0f5f1700920f9ced71ef63b0576e3f14}{
+void \hyperlink{classpeoAsyncIslandMig_0f5f1700920f9ced71ef63b0576e3f14}{pack} ()}
+\label{classpeoAsyncIslandMig_0f5f1700920f9ced71ef63b0576e3f14}
-\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize}
+\begin{CompactList}\small\item\em Function realizing packages. \item\end{CompactList}\item
+\hypertarget{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8}{
+void \hyperlink{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8}{unpack} ()}
+\label{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8}
+
+\begin{CompactList}\small\item\em Function reconstituting packages. \item\end{CompactList}\item
+\hypertarget{classpeoAsyncIslandMig_0a0524a90d0b31bc4c8bfa4f39708b0f}{
+void \hyperlink{classpeoAsyncIslandMig_0a0524a90d0b31bc4c8bfa4f39708b0f}{pack\-Synchronize\-Req} ()}
+\label{classpeoAsyncIslandMig_0a0524a90d0b31bc4c8bfa4f39708b0f}
+
+\begin{CompactList}\small\item\em Function pack\-Synchronize\-Req. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item
-\hypertarget{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{
-void \hyperlink{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}{emigrate} ()}
-\label{classpeoAsyncIslandMig_87a4ef7d4bd30d349a801bf0f9e87c82}
+\hypertarget{classpeoAsyncIslandMig_2470f8ee04bc762c010c7ebb2392831d}{
+void \hyperlink{classpeoAsyncIslandMig_2470f8ee04bc762c010c7ebb2392831d}{emigrate} ()}
+\label{classpeoAsyncIslandMig_2470f8ee04bc762c010c7ebb2392831d}
-\item
-\hypertarget{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{
-void \hyperlink{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}{immigrate} ()}
-\label{classpeoAsyncIslandMig_5a9a64ba51a696e45f91b362c39c9a64}
+\begin{CompactList}\small\item\em Function which sends some emigrants. \item\end{CompactList}\item
+\hypertarget{classpeoAsyncIslandMig_75a6592d63879773b39c9594b94fb942}{
+void \hyperlink{classpeoAsyncIslandMig_75a6592d63879773b39c9594b94fb942}{immigrate} ()}
+\label{classpeoAsyncIslandMig_75a6592d63879773b39c9594b94fb942}
-\end{CompactItemize}
+\begin{CompactList}\small\item\em Function which receives some immigrants. \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
-\hypertarget{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{
-\bf{eo\-Continue}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}{cont}}
-\label{classpeoAsyncIslandMig_2fc077d02ef9ea4595cfe883af0d4f83}
+\hyperlink{classcontinuator}{continuator} \& \hyperlink{classpeoAsyncIslandMig_b7a4049f66f99f9e7ec5c785042ee06a}{cont}
+\item
+\hypertarget{classpeoAsyncIslandMig_57d9ed6da844aa67a8a3328dfbbd03e0}{
+\hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \& \hyperlink{classpeoAsyncIslandMig_57d9ed6da844aa67a8a3328dfbbd03e0}{select}}
+\label{classpeoAsyncIslandMig_57d9ed6da844aa67a8a3328dfbbd03e0}
\item
-\hypertarget{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{
-\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}{select}}
-\label{classpeoAsyncIslandMig_b1fa045094c8a411323e75b5820c80c2}
+\hypertarget{classpeoAsyncIslandMig_2013056fed65e4f0bb55a7334c261c50}{
+\hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \& \hyperlink{classpeoAsyncIslandMig_2013056fed65e4f0bb55a7334c261c50}{replace}}
+\label{classpeoAsyncIslandMig_2013056fed65e4f0bb55a7334c261c50}
\item
-\hypertarget{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{
-\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}{replace}}
-\label{classpeoAsyncIslandMig_b761dbd880ee32e170741ecd78da6f48}
+\hypertarget{classpeoAsyncIslandMig_e70e843ec1fc9e2fc6a124588fbc08d5}{
+\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoAsyncIslandMig_e70e843ec1fc9e2fc6a124588fbc08d5}{topology}}
+\label{classpeoAsyncIslandMig_e70e843ec1fc9e2fc6a124588fbc08d5}
\item
-\hypertarget{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{
-\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}{topology}}
-\label{classpeoAsyncIslandMig_e45e5a808a96f0853ab6ba42339fe679}
+\hypertarget{classpeoAsyncIslandMig_3fa5d4df0bdd4a3c58a9f1bd38d628f9}{
+std::queue$<$ TYPEREPLACE $>$ \hyperlink{classpeoAsyncIslandMig_3fa5d4df0bdd4a3c58a9f1bd38d628f9}{imm}}
+\label{classpeoAsyncIslandMig_3fa5d4df0bdd4a3c58a9f1bd38d628f9}
\item
-\hypertarget{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{
-\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}{source}}
-\label{classpeoAsyncIslandMig_8a502d82c773033e274dca932fc2d4ee}
+\hypertarget{classpeoAsyncIslandMig_04c6a5767efe3e4deb914a6a8ceb3fd2}{
+std::queue$<$ TYPESELECT $>$ \hyperlink{classpeoAsyncIslandMig_04c6a5767efe3e4deb914a6a8ceb3fd2}{em}}
+\label{classpeoAsyncIslandMig_04c6a5767efe3e4deb914a6a8ceb3fd2}
\item
-\hypertarget{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{
-\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}{destination}}
-\label{classpeoAsyncIslandMig_e407f411d08ae7d96992603c145a7e43}
-
-\item
-\hypertarget{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{
-std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}{imm}}
-\label{classpeoAsyncIslandMig_b8c76d98d9ae99dd930a77c12860519a}
-
-\item
-\hypertarget{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{
-std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}{em}}
-\label{classpeoAsyncIslandMig_a9cc0e2d61cac6e11647b141962adc89}
-
-\item
-\hypertarget{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{
-std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}{coop\_\-em}}
-\label{classpeoAsyncIslandMig_1a2c0004d23bc303420af137a8c8bd27}
+\hypertarget{classpeoAsyncIslandMig_9ead40772ef2fabea02fe93d1814f0a5}{
+std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoAsyncIslandMig_9ead40772ef2fabea02fe93d1814f0a5}{coop\_\-em}}
+\label{classpeoAsyncIslandMig_9ead40772ef2fabea02fe93d1814f0a5}
\end{CompactItemize}
\subsection{Detailed Description}
-\subsubsection*{template$<$class EOT$>$ class peo\-Async\-Island\-Mig$<$ EOT $>$}
+\subsubsection*{template$<$class TYPESELECT, class TYPEREPLACE$>$ class peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}
-The \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e.
+Specific class for a asynchronous migration.
-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.
-
-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:
-
-\begin{TabularC}{2}
-\hline
-{\bf do} \{ ~ &~ \\\hline
-~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline
-~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline
-~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offsprings \\\hline
-~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline
-\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline
-\end{TabularC}
-
-
-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 {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow:
-
-\begin{enumerate}
-\item topological model to be followed when performing migrations: \par
- \par
- \begin{TabularC}{2}
-\hline
-\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline
-\end{TabularC}
-
-
-\item the continuation criterion, selection and replacement strategy etc. are defined: \par
- \par
- \begin{TabularC}{2}
-\hline
-eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline
-~ &~ \\\hline
-eo\-Periodic\-Continue$<$ EOT $>$ mig\-Cont( MIG\_\-FREQ ); ~ &// migrations occur periodically at MIG\_\-FREQ iterations \\\hline
-eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline
-eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline
-eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline
-~ &~ \\\hline
-peo\-Async\-Island\-Mig$<$ EOT $>$ async\-Migration( \par
- ~~~~~~~~ mig\-Cont, mig\-Select, mig\-Replace, mig\-Topology, \par
- ~~~~~~~~ population, population \par
- ); ~ &// asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline
-\end{TabularC}
-
-
-\item 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): \par
- \par
- \begin{TabularC}{2}
-\hline
-... ~ &~ \\\hline
-eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline
-eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline
-... ~ &~ \\\hline
-ea\-Checkpoint\-Continue.add( async\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline
-... ~ &~ \\\hline
-\end{TabularC}
-
-
-\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par
- \par
- \begin{TabularC}{2}
-\hline
-peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline
-async\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline
-ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline
-\end{TabularC}
-\end{enumerate}
-
-
-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.
-
-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++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them).
+\begin{Desc}
+\item[See also:]\hyperlink{classCooperative}{Cooperative} eo\-Updater \end{Desc}
+\begin{Desc}
+\item[Version:]2.0 \end{Desc}
+\begin{Desc}
+\item[Date:]january 2008 \end{Desc}
-Definition at line 140 of file peo\-Async\-Island\-Mig.h.
+
+Definition at line 64 of file peo\-Async\-Island\-Mig.h.
\subsection{Constructor \& Destructor Documentation}
-\hypertarget{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}{
+\hypertarget{classpeoAsyncIslandMig_e40ddd54734b018ab4e5c3f2bbd5a49c}{
\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!peoAsyncIslandMig@{peoAsyncIslandMig}}
\index{peoAsyncIslandMig@{peoAsyncIslandMig}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}}
-\subsubsection[peoAsyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} (\bf{eo\-Continue}$<$ EOT $>$ \& {\em \_\-\_\-cont}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-source}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-destination})}}
-\label{classpeoAsyncIslandMig_e0f706cbf4148d3ca327227a5c7a9fdf}
+\subsubsection[peoAsyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class TYPESELECT, class TYPEREPLACE$>$ \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ TYPESELECT, TYPEREPLACE $>$::\hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} (\hyperlink{classcontinuator}{continuator} \& {\em \_\-\_\-cont}, \hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \& {\em \_\-\_\-select}, \hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology})}}
+\label{classpeoAsyncIslandMig_e40ddd54734b018ab4e5c3f2bbd5a49c}
-Constructor for the \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters.
-
\begin{Desc}
\item[Parameters:]
\begin{description}
-\item[{\em eo\-Continue$<$}]EOT $>$\& \_\-\_\-cont - continuation criterion specifying whether the migration is performed or not; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description}
+\item[{\em continuator}]\& \_\-\_\-cont \item[{\em selector}]$<$TYPE$>$ \& \_\-\_\-select \item[{\em replacement}]$<$TYPE$>$ \& \_\-\_\-replace \item[{\em Topology\&}]\_\-\_\-topology \end{description}
\end{Desc}
-Definition at line 199 of file peo\-Async\-Island\-Mig.h.
+Definition at line 114 of file peo\-Async\-Island\-Mig.h.
References Topology::add().
-\subsection{Member Function Documentation}
-\hypertarget{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}{
-\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!operator()@{operator()}}
-\index{operator()@{operator()}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}}
-\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ EOT $>$::operator() ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
-\label{classpeoAsyncIslandMig_13581e54425727a7f785ca8a6df527b5}
+\subsection{Member Data Documentation}
+\hypertarget{classpeoAsyncIslandMig_b7a4049f66f99f9e7ec5c785042ee06a}{
+\index{peoAsyncIslandMig@{peo\-Async\-Island\-Mig}!cont@{cont}}
+\index{cont@{cont}!peoAsyncIslandMig@{peo\-Async\-Island\-Mig}}
+\subsubsection[cont]{\setlength{\rightskip}{0pt plus 5cm}template$<$class TYPESELECT, class TYPEREPLACE$>$ \hyperlink{classcontinuator}{continuator}\& \hyperlink{classpeoAsyncIslandMig}{peo\-Async\-Island\-Mig}$<$ TYPESELECT, TYPEREPLACE $>$::\hyperlink{classpeoAsyncIslandMig_b7a4049f66f99f9e7ec5c785042ee06a}{cont}\hspace{0.3cm}{\tt \mbox{[}private\mbox{]}}}}
+\label{classpeoAsyncIslandMig_b7a4049f66f99f9e7ec5c785042ee06a}
-\doxyref{Function} operator to be called as checkpoint for performing the migration step.
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em continuator}]\& cont \item[{\em selector}]$<$TYPESELECT$>$ \& select \item[{\em replacement}]$<$TYPEREPLACE$>$ \& replace \item[{\em Topology\&}]topology \item[{\em std}]:: queue$<$ TYPEREPLACE $>$ imm \item[{\em std}]:: queue$<$ TYPESELECT $>$ em \item[{\em std}]:: queue$<$ Cooperative$\ast$ $>$ coop\_\-em \end{description}
+\end{Desc}
-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.
-Implements \bf{eo\-F$<$ void $>$}.
+Definition at line 104 of file peo\-Async\-Island\-Mig.h.
-Definition at line 276 of file peo\-Async\-Island\-Mig.h.
-
-References peo\-Async\-Island\-Mig$<$ EOT $>$::cont, peo\-Async\-Island\-Mig$<$ EOT $>$::emigrate(), peo\-Async\-Island\-Mig$<$ EOT $>$::immigrate(), and peo\-Async\-Island\-Mig$<$ EOT $>$::source.
+Referenced by peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$::operator()().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps
index b9f8ee753..ead08b31e 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 437.158
+%%BoundingBox: 0 0 500 218.579
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,12 +19,12 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 1.14375 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 2.2875 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
+/rows 2 def
/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -175,8 +175,6 @@ boxfont setfont
1 boundaspect scale
(peoNoAggEvalFunc< EOT >) cw
(peoAggEvalFunc< EOT >) cw
-(eoBF< A1, A2, R >) cw
-(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -190,8 +188,6 @@ boundx scalefactor div boundy scalefactor div scale
(peoNoAggEvalFunc< EOT >) 0 0 box
(peoAggEvalFunc< EOT >) 0 1 box
- (eoBF< A1, A2, R >) 0 2 box
- (eoFunctorBase) 0 3 box
% ----- relations -----
@@ -199,11 +195,3 @@ solid
0 0 0 out
solid
1 0 1 in
-solid
-0 0 1 out
-solid
-1 0 2 in
-solid
-0 0 2 out
-solid
-1 0 3 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf
index 6c9a46e11..615d77577 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex
index ff2628bb6..be29ecb0f 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex
@@ -10,16 +10,13 @@ The \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func} class does nothi
Inheritance diagram for peo\-No\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classpeoNoAggEvalFunc}
+\includegraphics[height=2cm]{classpeoNoAggEvalFunc}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
-\hypertarget{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{
-void \hyperlink{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{operator()} (EOT \&\_\-\_\-sol, const typename EOT::Fitness \&\_\-\_\-fit)}
-\label{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}
-
+void \hyperlink{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{operator()} (EOT \&\_\-\_\-sol, const typename EOT::Fitness \&\_\-\_\-fit)
\begin{CompactList}\small\item\em Operator which sets as fitness the {\bf \_\-\_\-fit} value for the {\bf \_\-\_\-sol} individual. \item\end{CompactList}\end{CompactItemize}
@@ -34,6 +31,25 @@ The class is provided as a mean of declaring that no aggregation is required for
Definition at line 47 of file peo\-No\-Agg\-Eval\-Func.h.
+\subsection{Member Function Documentation}
+\hypertarget{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}{
+\index{peoNoAggEvalFunc@{peo\-No\-Agg\-Eval\-Func}!operator()@{operator()}}
+\index{operator()@{operator()}!peoNoAggEvalFunc@{peo\-No\-Agg\-Eval\-Func}}
+\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func}$<$ EOT $>$::operator() (EOT \& {\em \_\-\_\-sol}, const typename EOT::Fitness \& {\em \_\-\_\-fit})}}
+\label{classpeoNoAggEvalFunc_1a69ee1af8745ac75c864bf884436de5}
+
+
+Operator which sets as fitness the {\bf \_\-\_\-fit} value for the {\bf \_\-\_\-sol} individual.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em EOT\&}]\_\-\_\-sol \item[{\em typename}]EOT :: Fitness\& \_\-\_\-fit \end{description}
+\end{Desc}
+
+
+Definition at line 59 of file peo\-No\-Agg\-Eval\-Func.h.
+
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
peo\-No\-Agg\-Eval\-Func.h\end{CompactItemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.eps
index b486aceee..2b18fe099 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 243.902
+%%BoundingBox: 0 0 500 437.956
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 2.05 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 1.14167 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
-/cols 2 def
+/rows 3 def
+/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -176,8 +176,6 @@ boxfont setfont
(peoPopEval< EOT >) cw
(Service) cw
(Communicable) cw
-(peoParaPopEval< EOT >) cw
-(peoSeqPopEval< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -189,27 +187,17 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (peoPopEval< EOT >) 0.5 1 box
- (Service) 0.5 2 box
- (Communicable) 0.5 3 box
- (peoParaPopEval< EOT >) 0 0 box
- (peoSeqPopEval< EOT >) 1 0 box
+ (peoPopEval< EOT >) 0 0 box
+ (Service) 0 1 box
+ (Communicable) 0 2 box
% ----- relations -----
solid
-0 0.5 1 out
+0 0 0 out
solid
-1 0.5 2 in
+1 0 1 in
solid
-0 0.5 2 out
+0 0 1 out
solid
-1 0.5 3 in
-solid
-1 0.5 0.25 out
-solid
-0 1 1 conn
-solid
-0 0 0.75 in
-solid
-0 1 0.75 in
+1 0 2 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.pdf
index 4e901adc8..c3e16781b 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.tex
index a43d26bb8..73361f96b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoPopEval.tex
@@ -2,37 +2,296 @@
\section{peo\-Pop\-Eval$<$ EOT $>$ Class Template Reference}
\label{classpeoPopEval}\index{peoPopEval@{peoPopEval}}
}
-The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors.
+Parallel evaluation functor wrapper with MOEO.
-{\tt \#include $<$peo\-Pop\-Eval.h$>$}
+{\tt \#include $<$peo\-Moeo\-Pop\-Eval.h$>$}
Inheritance diagram for peo\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classpeoPopEval}
+\includegraphics[height=3cm]{classpeoPopEval}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
-\hypertarget{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{
-virtual void \hyperlink{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}{operator()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop)=0}
-\label{classpeoPopEval_2f208067a5e39c3b26c1234050a41e8f}
+\hyperlink{classpeoPopEval_878297ba0de14593bd9cc03b2daf52df}{peo\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \&\_\-\_\-eval\_\-func)
+\begin{CompactList}\small\item\em Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \item\end{CompactList}\item
+\hyperlink{classpeoPopEval_088822da7a0c92bc21574358d2e5f87c}{peo\-Pop\-Eval} (const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \&\_\-\_\-funcs, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \&\_\-\_\-merge\_\-eval)
+\begin{CompactList}\small\item\em Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_593dd60fc004edea8994d5575bf66e05}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop)
+\begin{CompactList}\small\item\em Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_fd942c2b66f31c7d12a9ad48f1529a16}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-dummy, eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop)
+\item
+void \hyperlink{classpeoPopEval_95351dcd81d1bf878d839e52a02a902d}{pack\-Data} ()
+\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_cb256d94000a47af06d3e8a3f7ab0eff}{unpack\-Data} ()
+\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item
+\hypertarget{classpeoPopEval_05a85a265971d4b12f2f0014d33f705c}{
+void \hyperlink{classpeoPopEval_05a85a265971d4b12f2f0014d33f705c}{execute} ()}
+\label{classpeoPopEval_05a85a265971d4b12f2f0014d33f705c}
-\begin{CompactList}\small\item\em Interface function providing the signature for constructing an evaluation functor. \item\end{CompactList}\end{CompactItemize}
+\begin{CompactList}\small\item\em Auxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_9d0d10865d677c1ec84f496bed62a8c6}{pack\-Result} ()
+\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_f64aa1322e8e26f39143e1a6395206b6}{unpack\-Result} ()
+\begin{CompactList}\small\item\em Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_9708f67fc813d397de3d13830ed09820}{notify\-Sending\-Data} ()
+\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\item
+void \hyperlink{classpeoPopEval_b1e33394ba9797237cb8c7c1f410bd67}{notify\-Sending\-All\-Resource\-Requests} ()
+\begin{CompactList}\small\item\em Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \& \hyperlink{classpeoPopEval_5862b3661c5b0531d55870b5f3881d1e}{funcs}
+\item
+\hypertarget{classpeoPopEval_4c563a67b776d97b25a05013ddc99921}{
+std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \hyperlink{classpeoPopEval_4c563a67b776d97b25a05013ddc99921}{one\_\-func}}
+\label{classpeoPopEval_4c563a67b776d97b25a05013ddc99921}
+
+\item
+\hypertarget{classpeoPopEval_765f1941fcb630b6ed5c4cf0e1e845f9}{
+\hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& \hyperlink{classpeoPopEval_765f1941fcb630b6ed5c4cf0e1e845f9}{merge\_\-eval}}
+\label{classpeoPopEval_765f1941fcb630b6ed5c4cf0e1e845f9}
+
+\item
+\hypertarget{classpeoPopEval_8558f626aca54bdc3bbeb78c774ca4ef}{
+\hyperlink{classpeoNoAggEvalFunc}{peo\-No\-Agg\-Eval\-Func}$<$ EOT $>$ \hyperlink{classpeoPopEval_8558f626aca54bdc3bbeb78c774ca4ef}{no\_\-merge\_\-eval}}
+\label{classpeoPopEval_8558f626aca54bdc3bbeb78c774ca4ef}
+
+\item
+\hypertarget{classpeoPopEval_fc1e9fba1a220550c332c70250f775cc}{
+std::queue$<$ EOT $\ast$ $>$ \hyperlink{classpeoPopEval_fc1e9fba1a220550c332c70250f775cc}{tasks}}
+\label{classpeoPopEval_fc1e9fba1a220550c332c70250f775cc}
+
+\item
+\hypertarget{classpeoPopEval_25646d6ec0df9f281b17d96956d2201f}{
+std::map$<$ EOT $\ast$, std::pair$<$ unsigned, unsigned $>$ $>$ \hyperlink{classpeoPopEval_25646d6ec0df9f281b17d96956d2201f}{progression}}
+\label{classpeoPopEval_25646d6ec0df9f281b17d96956d2201f}
+
+\item
+\hypertarget{classpeoPopEval_a6753e36522ece615fb44f91b2986dc6}{
+unsigned \hyperlink{classpeoPopEval_a6753e36522ece615fb44f91b2986dc6}{num\_\-func}}
+\label{classpeoPopEval_a6753e36522ece615fb44f91b2986dc6}
+
+\item
+\hypertarget{classpeoPopEval_d2bb78c4092b2f57a70fa6f90354ea91}{
+EOT \hyperlink{classpeoPopEval_d2bb78c4092b2f57a70fa6f90354ea91}{sol}}
+\label{classpeoPopEval_d2bb78c4092b2f57a70fa6f90354ea91}
+
+\item
+\hypertarget{classpeoPopEval_140a0ffb2a481238dde05e7f0324d516}{
+EOT $\ast$ \hyperlink{classpeoPopEval_140a0ffb2a481238dde05e7f0324d516}{ad\_\-sol}}
+\label{classpeoPopEval_140a0ffb2a481238dde05e7f0324d516}
+
+\item
+\hypertarget{classpeoPopEval_83b38d0977e5c8666c5aa5293c53bb3e}{
+unsigned \hyperlink{classpeoPopEval_83b38d0977e5c8666c5aa5293c53bb3e}{total}}
+\label{classpeoPopEval_83b38d0977e5c8666c5aa5293c53bb3e}
+
+\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class peo\-Pop\-Eval$<$ EOT $>$}
-The {\bf \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}} class provides the interface for constructing Paradis\-EO specific evaluation functors.
+Parallel evaluation functor wrapper with MOEO.
-The derived classes may be used as wrappers for {\bf \doxyref{EO}}-derived evaluation functors. In order to have an example, please refer to the implementation of the {\bf \hyperlink{classpeoSeqPopEval}{peo\-Seq\-Pop\-Eval}} and {\bf \hyperlink{classpeoParaPopEval}{peo\-Para\-Pop\-Eval}} classes.
+\begin{Desc}
+\item[See also:]\hyperlink{classService}{Service} eo\-Pop\-Eval\-Func \end{Desc}
+\begin{Desc}
+\item[Version:]1.0 \end{Desc}
+\begin{Desc}
+\item[Date:]2008 \end{Desc}
-Definition at line 47 of file peo\-Pop\-Eval.h.
+
+Definition at line 53 of file peo\-Pop\-Eval.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\hypertarget{classpeoPopEval_878297ba0de14593bd9cc03b2daf52df}{
+\index{peoPopEval@{peo\-Pop\-Eval}!peoPopEval@{peoPopEval}}
+\index{peoPopEval@{peoPopEval}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[peoPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoPopEval}{peo\-Pop\-Eval} (eo\-Eval\-Func$<$ EOT $>$ \& {\em \_\-\_\-eval\_\-func})}}
+\label{classpeoPopEval_878297ba0de14593bd9cc03b2daf52df}
+
+
+Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-eval\_\-func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population \end{description}
+\end{Desc}
+
+
+Definition at line 132 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::one\_\-func.\hypertarget{classpeoPopEval_088822da7a0c92bc21574358d2e5f87c}{
+\index{peoPopEval@{peo\-Pop\-Eval}!peoPopEval@{peoPopEval}}
+\index{peoPopEval@{peoPopEval}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[peoPopEval]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoPopEval}{peo\-Pop\-Eval} (const std::vector$<$ eo\-Eval\-Func$<$ EOT $>$ $\ast$ $>$ \& {\em \_\-\_\-funcs}, \hyperlink{classpeoAggEvalFunc}{peo\-Agg\-Eval\-Func}$<$ EOT $>$ \& {\em \_\-\_\-merge\_\-eval})}}
+\label{classpeoPopEval_088822da7a0c92bc21574358d2e5f87c}
+
+
+Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em const}]std :: vector$<$ eo\-Eval\-Func $<$ EOT $>$$\ast$ $>$\& \_\-\_\-funcs - vector of EO-derived partial evaluation functors; \item[{\em peo\-Agg\-Eval\-Func$<$}]EOT $>$\& \_\-\_\-merge\_\-eval - aggregation functor for creating a fitness value out of the partial fitness values. \end{description}
+\end{Desc}
+
+
+Definition at line 141 of file peo\-Pop\-Eval.h.
+
+\subsection{Member Function Documentation}
+\hypertarget{classpeoPopEval_593dd60fc004edea8994d5575bf66e05}{
+\index{peoPopEval@{peo\-Pop\-Eval}!operator()@{operator()}}
+\index{operator()@{operator()}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}}
+\label{classpeoPopEval_593dd60fc004edea8994d5575bf66e05}
+
+
+Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop - population to be evaluated by applying the evaluation functor specified in the constructor. \end{description}
+\end{Desc}
+
+
+Definition at line 154 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::funcs, peo\-Pop\-Eval$<$ EOT $>$::progression, Service::request\-Resource\-Request(), Communicable::stop(), peo\-Pop\-Eval$<$ EOT $>$::tasks, and peo\-Pop\-Eval$<$ EOT $>$::total.
+
+Referenced by peo\-Pop\-Eval$<$ EOT $>$::operator()().\hypertarget{classpeoPopEval_fd942c2b66f31c7d12a9ad48f1529a16}{
+\index{peoPopEval@{peo\-Pop\-Eval}!operator()@{operator()}}
+\index{operator()@{operator()}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-dummy}, eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}}
+\label{classpeoPopEval_fd942c2b66f31c7d12a9ad48f1529a16}
+
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-dummy \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop \end{description}
+\end{Desc}
+
+
+Definition at line 149 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::operator()().\hypertarget{classpeoPopEval_95351dcd81d1bf878d839e52a02a902d}{
+\index{peoPopEval@{peo\-Pop\-Eval}!packData@{packData}}
+\index{packData@{packData}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[packData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::pack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_95351dcd81d1bf878d839e52a02a902d}
+
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_aea4b8f7f8fb88e83862ee4bfd9ab207}{Service}.
+
+Definition at line 173 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::progression, and peo\-Pop\-Eval$<$ EOT $>$::tasks.\hypertarget{classpeoPopEval_cb256d94000a47af06d3e8a3f7ab0eff}{
+\index{peoPopEval@{peo\-Pop\-Eval}!unpackData@{unpackData}}
+\index{unpackData@{unpackData}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[unpackData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::unpack\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_cb256d94000a47af06d3e8a3f7ab0eff}
+
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_3bd87b444710813d30fd754d4d0b4df3}{Service}.
+
+Definition at line 187 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, peo\-Pop\-Eval$<$ EOT $>$::num\_\-func, and peo\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoPopEval_9d0d10865d677c1ec84f496bed62a8c6}{
+\index{peoPopEval@{peo\-Pop\-Eval}!packResult@{packResult}}
+\index{packResult@{packResult}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[packResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::pack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_9d0d10865d677c1ec84f496bed62a8c6}
+
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_e5e4f90b2315e15c2a2913bd370f4cf5}{Service}.
+
+Definition at line 205 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, and peo\-Pop\-Eval$<$ EOT $>$::sol.\hypertarget{classpeoPopEval_f64aa1322e8e26f39143e1a6395206b6}{
+\index{peoPopEval@{peo\-Pop\-Eval}!unpackResult@{unpackResult}}
+\index{unpackResult@{unpackResult}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[unpackResult]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::unpack\-Result ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_f64aa1322e8e26f39143e1a6395206b6}
+
+
+Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_45c06344edbfa482b91f68e2035a6099}{Service}.
+
+Definition at line 214 of file peo\-Pop\-Eval.h.
+
+References peo\-Pop\-Eval$<$ EOT $>$::ad\_\-sol, Service::get\-Owner(), peo\-Pop\-Eval$<$ EOT $>$::merge\_\-eval, peo\-Pop\-Eval$<$ EOT $>$::progression, Communicable::resume(), Thread::set\-Active(), and peo\-Pop\-Eval$<$ EOT $>$::total.\hypertarget{classpeoPopEval_9708f67fc813d397de3d13830ed09820}{
+\index{peoPopEval@{peo\-Pop\-Eval}!notifySendingData@{notifySendingData}}
+\index{notifySendingData@{notifySendingData}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[notifySendingData]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-Data ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_9708f67fc813d397de3d13830ed09820}
+
+
+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_81ad4d6ebb50045b8977e2ab74826f30}{Service}.
+
+Definition at line 247 of file peo\-Pop\-Eval.h.\hypertarget{classpeoPopEval_b1e33394ba9797237cb8c7c1f410bd67}{
+\index{peoPopEval@{peo\-Pop\-Eval}!notifySendingAllResourceRequests@{notifySendingAllResourceRequests}}
+\index{notifySendingAllResourceRequests@{notifySendingAllResourceRequests}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[notifySendingAllResourceRequests]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::notify\-Sending\-All\-Resource\-Requests ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
+\label{classpeoPopEval_b1e33394ba9797237cb8c7c1f410bd67}
+
+
+Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase.
+
+There is no need to explicitly call the function.
+
+Reimplemented from \hyperlink{classService_f94cc8a5c2665d4574041737e61e9ffc}{Service}.
+
+Definition at line 251 of file peo\-Pop\-Eval.h.
+
+References Service::get\-Owner(), and Thread::set\-Passive().
+
+\subsection{Member Data Documentation}
+\hypertarget{classpeoPopEval_5862b3661c5b0531d55870b5f3881d1e}{
+\index{peoPopEval@{peo\-Pop\-Eval}!funcs@{funcs}}
+\index{funcs@{funcs}!peoPopEval@{peo\-Pop\-Eval}}
+\subsubsection[funcs]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ const std :: vector$<$ eo\-Eval\-Func $<$ EOT $>$$\ast$ $>$\& \hyperlink{classpeoPopEval}{peo\-Pop\-Eval}$<$ EOT $>$::\hyperlink{classpeoPopEval_5862b3661c5b0531d55870b5f3881d1e}{funcs}\hspace{0.3cm}{\tt \mbox{[}private\mbox{]}}}}
+\label{classpeoPopEval_5862b3661c5b0531d55870b5f3881d1e}
+
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em std}]:: vector$<$ eo\-Eval\-Func $<$ EOT $>$$\ast$ $>$\& funcs \item[{\em std}]:: vector$<$ eo\-Eval\-Func $<$ EOT $>$$\ast$ $>$ one\_\-func \item[{\em peo\-Agg\-Eval\-Func$<$}]EOT $>$\& merge\_\-eval \item[{\em peo\-No\-Agg\-Eval\-Func$<$}]EOT $>$ no\_\-merge\_\-eval \item[{\em std}]:: queue$<$ EOT$\ast$ $>$tasks \item[{\em std}]:: map$<$ EOT$\ast$, std :: pair$<$ unsigned, unsigned $>$ $>$ progression \item[{\em unsigned}]num\_\-func \item[{\em EOT}]sol \item[{\em EOT}]$\ast$ad\_\-sol \item[{\em unsigned}]total \end{description}
+\end{Desc}
+
+
+Definition at line 119 of file peo\-Pop\-Eval.h.
+
+Referenced by peo\-Pop\-Eval$<$ EOT $>$::execute(), and peo\-Pop\-Eval$<$ EOT $>$::operator()().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps
index 6f0fb127a..5e581d289 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 231.214
+%%BoundingBox: 0 0 500 184.615
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 2.1625 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 2.70833 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 4 def
-/cols 2 def
+/rows 3 def
+/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -173,12 +173,9 @@
boxfont setfont
1 boundaspect scale
-(peoSyncIslandMig< EOT >) cw
+(peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) cw
(Cooperative) cw
-(eoUpdater) cw
(Communicable) cw
-(eoF< void >) cw
-(eoFunctorBase) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -190,32 +187,17 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (peoSyncIslandMig< EOT >) 0.5 0 box
+ (peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) 0 0 box
(Cooperative) 0 1 box
- (eoUpdater) 1 1 box
(Communicable) 0 2 box
- (eoF< void >) 1 2 box
- (eoFunctorBase) 1 3 box
% ----- relations -----
solid
-0 0.5 0 out
-solid
-0 1 1 conn
+0 0 0 out
solid
1 0 1 in
solid
0 0 1 out
solid
-1 1 1 in
-solid
-0 1 1 out
-solid
1 0 2 in
-solid
-1 1 2 in
-solid
-0 1 2 out
-solid
-1 1 3 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf
index 7b727b208..7935e6a60 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex
index 9a94013a2..217d78cae 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex
@@ -1,226 +1,202 @@
\hypertarget{classpeoSyncIslandMig}{
-\section{peo\-Sync\-Island\-Mig$<$ EOT $>$ Class Template Reference}
+\section{peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$ Class Template Reference}
\label{classpeoSyncIslandMig}\index{peoSyncIslandMig@{peoSyncIslandMig}}
}
-The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e.
+Specific class for a synchronous migration.
{\tt \#include $<$peo\-Sync\-Island\-Mig.h$>$}
-Inheritance diagram for peo\-Sync\-Island\-Mig$<$ EOT $>$::\begin{figure}[H]
+Inheritance diagram for peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=4cm]{classpeoSyncIslandMig}
+\includegraphics[height=3cm]{classpeoSyncIslandMig}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item
-\hyperlink{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{peo\-Sync\-Island\-Mig} (unsigned \_\-\_\-frequency, \bf{eo\-Select}$<$ EOT $>$ \&\_\-\_\-select, \bf{eo\-Replacement}$<$ EOT $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-source, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-destination)
-\begin{CompactList}\small\item\em Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters. \item\end{CompactList}\item
-void \hyperlink{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{operator()} ()
-\begin{CompactList}\small\item\em \doxyref{Function} operator to be called as checkpoint for performing the migration step. \item\end{CompactList}\item
-\hypertarget{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{
-void \hyperlink{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}{pack} ()}
-\label{classpeoSyncIslandMig_e334188141eeba9f7b78bc6716f819ad}
+\hyperlink{classpeoSyncIslandMig_24f4d1ea8bb63c09b9d6cd8476014082}{peo\-Sync\-Island\-Mig} (unsigned \_\-\_\-frequency, \hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \&\_\-\_\-select, \hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \&\_\-\_\-replace, \hyperlink{classTopology}{Topology} \&\_\-\_\-topology)
+\item
+\hypertarget{classpeoSyncIslandMig_0fd5b3b4e467ee33ae0186c0ae9d58ef}{
+void \hyperlink{classpeoSyncIslandMig_0fd5b3b4e467ee33ae0186c0ae9d58ef}{operator()} ()}
+\label{classpeoSyncIslandMig_0fd5b3b4e467ee33ae0186c0ae9d58ef}
-\begin{CompactList}\small\item\em Auxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item
-\hypertarget{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{
-void \hyperlink{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}{unpack} ()}
-\label{classpeoSyncIslandMig_85777bd9f709c5d4107799e8619948d1}
+\begin{CompactList}\small\item\em operator \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_2daadf9928b8075ea469ca3cc49ddc88}{
+void \hyperlink{classpeoSyncIslandMig_2daadf9928b8075ea469ca3cc49ddc88}{pack} ()}
+\label{classpeoSyncIslandMig_2daadf9928b8075ea469ca3cc49ddc88}
-\begin{CompactList}\small\item\em Auxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \item\end{CompactList}\item
-\hypertarget{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{
-void \hyperlink{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}{notify\-Sending} ()}
-\label{classpeoSyncIslandMig_8c427b3f91c19ff85f86930366b96008}
+\begin{CompactList}\small\item\em Function realizing packages. \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_25bc1a03cc49e17dda34b6647df1f9c5}{
+void \hyperlink{classpeoSyncIslandMig_25bc1a03cc49e17dda34b6647df1f9c5}{unpack} ()}
+\label{classpeoSyncIslandMig_25bc1a03cc49e17dda34b6647df1f9c5}
-\begin{CompactList}\small\item\em Auxiliary function dealing with migration notifications. There is no need to explicitly call the function. \item\end{CompactList}\end{CompactItemize}
+\begin{CompactList}\small\item\em Function reconstituting packages. \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_956f56110bccff8c8fae4b05aa804d32}{
+void \hyperlink{classpeoSyncIslandMig_956f56110bccff8c8fae4b05aa804d32}{pack\-Synchronize\-Req} ()}
+\label{classpeoSyncIslandMig_956f56110bccff8c8fae4b05aa804d32}
+
+\begin{CompactList}\small\item\em Function pack\-Synchronize\-Req. \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_5f403428cea887b07caf27ab265ebe03}{
+void \hyperlink{classpeoSyncIslandMig_5f403428cea887b07caf27ab265ebe03}{notify\-Sending} ()}
+\label{classpeoSyncIslandMig_5f403428cea887b07caf27ab265ebe03}
+
+\begin{CompactList}\small\item\em Function notify\-Sending. \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f}{
+void \hyperlink{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f}{notify\-Receiving} ()}
+\label{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f}
+
+\begin{CompactList}\small\item\em Function notify\-Receiving. \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_92fef53496f935fe450589f90aec7d72}{
+void \hyperlink{classpeoSyncIslandMig_92fef53496f935fe450589f90aec7d72}{notify\-Sending\-Sync\-Req} ()}
+\label{classpeoSyncIslandMig_92fef53496f935fe450589f90aec7d72}
+
+\begin{CompactList}\small\item\em notify\-Sending\-Sync\-Req \item\end{CompactList}\item
+\hypertarget{classpeoSyncIslandMig_0abd0c5872195cea0cab4988f9a4ea4e}{
+void \hyperlink{classpeoSyncIslandMig_0abd0c5872195cea0cab4988f9a4ea4e}{notify\-Synchronized} ()}
+\label{classpeoSyncIslandMig_0abd0c5872195cea0cab4988f9a4ea4e}
+
+\begin{CompactList}\small\item\em notify\-Synchronized \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item
-\hypertarget{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{
-void \hyperlink{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}{emigrate} ()}
-\label{classpeoSyncIslandMig_4c8416e3acce1a6e4c3b0a442d94b063}
+\hypertarget{classpeoSyncIslandMig_3ab202cb311f67fdc827078b3bdfddf4}{
+void \hyperlink{classpeoSyncIslandMig_3ab202cb311f67fdc827078b3bdfddf4}{emigrate} ()}
+\label{classpeoSyncIslandMig_3ab202cb311f67fdc827078b3bdfddf4}
\item
-\hypertarget{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{
-void \hyperlink{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}{immigrate} ()}
-\label{classpeoSyncIslandMig_38dd72312a3d16808af1aa7beb9ed4a7}
+\hypertarget{classpeoSyncIslandMig_baed2215bf06f96aacf06b5abff79f28}{
+void \hyperlink{classpeoSyncIslandMig_baed2215bf06f96aacf06b5abff79f28}{immigrate} ()}
+\label{classpeoSyncIslandMig_baed2215bf06f96aacf06b5abff79f28}
\end{CompactItemize}
\subsection*{Private Attributes}
\begin{CompactItemize}
\item
-\hypertarget{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{
-\bf{eo\-Periodic\-Continue}$<$ EOT $>$ \hyperlink{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}{cont}}
-\label{classpeoSyncIslandMig_2d8ae9104376f3e073e0b250d9b425a2}
+\hyperlink{classeoSyncContinue}{eo\-Sync\-Continue} \hyperlink{classpeoSyncIslandMig_a64e7c9da149773c5d264d128a1ea37a}{cont}
+\item
+\hypertarget{classpeoSyncIslandMig_a399c2533598dc8018eb2ab2edabd6b9}{
+\hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \& \hyperlink{classpeoSyncIslandMig_a399c2533598dc8018eb2ab2edabd6b9}{select}}
+\label{classpeoSyncIslandMig_a399c2533598dc8018eb2ab2edabd6b9}
\item
-\hypertarget{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{
-\bf{eo\-Select}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}{select}}
-\label{classpeoSyncIslandMig_5e9c9f5f65d6418ad46e647ee1804a3d}
+\hypertarget{classpeoSyncIslandMig_34b69e0a2fa12ef0f6101c7d04ebc3ef}{
+\hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \& \hyperlink{classpeoSyncIslandMig_34b69e0a2fa12ef0f6101c7d04ebc3ef}{replace}}
+\label{classpeoSyncIslandMig_34b69e0a2fa12ef0f6101c7d04ebc3ef}
\item
-\hypertarget{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{
-\bf{eo\-Replacement}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}{replace}}
-\label{classpeoSyncIslandMig_cb6d2d909503a86415912900d6e1d891}
+\hypertarget{classpeoSyncIslandMig_7376532c3a8bcab88a02601611db9f2f}{
+\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoSyncIslandMig_7376532c3a8bcab88a02601611db9f2f}{topology}}
+\label{classpeoSyncIslandMig_7376532c3a8bcab88a02601611db9f2f}
\item
-\hypertarget{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{
-\hyperlink{classTopology}{Topology} \& \hyperlink{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}{topology}}
-\label{classpeoSyncIslandMig_ebfe6edb6be16d46bf6d71cb233fcace}
+\hypertarget{classpeoSyncIslandMig_4c734df065099cfd5693d35fae38ad29}{
+std::queue$<$ TYPEREPLACE $>$ \hyperlink{classpeoSyncIslandMig_4c734df065099cfd5693d35fae38ad29}{imm}}
+\label{classpeoSyncIslandMig_4c734df065099cfd5693d35fae38ad29}
\item
-\hypertarget{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{
-\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}{source}}
-\label{classpeoSyncIslandMig_33fde1f09faf2a3f772d8b8f6a2615c6}
+\hypertarget{classpeoSyncIslandMig_b96f8caff26498798eb0e4c114ee5d9a}{
+std::queue$<$ TYPESELECT $>$ \hyperlink{classpeoSyncIslandMig_b96f8caff26498798eb0e4c114ee5d9a}{em}}
+\label{classpeoSyncIslandMig_b96f8caff26498798eb0e4c114ee5d9a}
\item
-\hypertarget{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{
-\bf{eo\-Pop}$<$ EOT $>$ \& \hyperlink{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}{destination}}
-\label{classpeoSyncIslandMig_a9bf4612c7c04da6cf69245c6617e6a6}
+\hypertarget{classpeoSyncIslandMig_ad56e3475d8ea7a83007c2e32c7da6a8}{
+std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_ad56e3475d8ea7a83007c2e32c7da6a8}{coop\_\-em}}
+\label{classpeoSyncIslandMig_ad56e3475d8ea7a83007c2e32c7da6a8}
\item
-\hypertarget{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{
-std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}{imm}}
-\label{classpeoSyncIslandMig_088c1623f32668dcd3683fceff9426c3}
+\hypertarget{classpeoSyncIslandMig_9431b7e1d629f238cd5f990d02926480}{
+sem\_\-t \hyperlink{classpeoSyncIslandMig_9431b7e1d629f238cd5f990d02926480}{sync}}
+\label{classpeoSyncIslandMig_9431b7e1d629f238cd5f990d02926480}
\item
-\hypertarget{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{
-std::queue$<$ \bf{eo\-Pop}$<$ EOT $>$ $>$ \hyperlink{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}{em}}
-\label{classpeoSyncIslandMig_11d6dd3e4a6db710433f501af0988322}
+\hypertarget{classpeoSyncIslandMig_253dfbfebfadad0b4f49e60bb811b1db}{
+bool \hyperlink{classpeoSyncIslandMig_253dfbfebfadad0b4f49e60bb811b1db}{explicit\-Passive}}
+\label{classpeoSyncIslandMig_253dfbfebfadad0b4f49e60bb811b1db}
\item
-\hypertarget{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{
-std::queue$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}{coop\_\-em}}
-\label{classpeoSyncIslandMig_2f7ca18d67ab7fb47a9851ab3179eb7d}
+\hypertarget{classpeoSyncIslandMig_e5d64ff9718b746d2307379fb061ad96}{
+bool \hyperlink{classpeoSyncIslandMig_e5d64ff9718b746d2307379fb061ad96}{standby\-Migration}}
+\label{classpeoSyncIslandMig_e5d64ff9718b746d2307379fb061ad96}
\item
-\hypertarget{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{
-sem\_\-t \hyperlink{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}{sync}}
-\label{classpeoSyncIslandMig_91e0e1ea59c2a6a66eb496bddd60a18f}
+\hypertarget{classpeoSyncIslandMig_6274e5185b6b7579dea71da3138d9d23}{
+std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_6274e5185b6b7579dea71da3138d9d23}{in}}
+\label{classpeoSyncIslandMig_6274e5185b6b7579dea71da3138d9d23}
+
+\item
+\hypertarget{classpeoSyncIslandMig_daae2fea2f447d35927e18a8f008a45d}{
+std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_daae2fea2f447d35927e18a8f008a45d}{out}}
+\label{classpeoSyncIslandMig_daae2fea2f447d35927e18a8f008a45d}
+
+\item
+\hypertarget{classpeoSyncIslandMig_2760dde833d7141ca86affb4df0fb163}{
+std::vector$<$ \hyperlink{classCooperative}{Cooperative} $\ast$ $>$ \hyperlink{classpeoSyncIslandMig_2760dde833d7141ca86affb4df0fb163}{all}}
+\label{classpeoSyncIslandMig_2760dde833d7141ca86affb4df0fb163}
+
+\item
+\hypertarget{classpeoSyncIslandMig_cdd55a0ab14d659a2a68674a05ed8a1d}{
+unsigned \hyperlink{classpeoSyncIslandMig_cdd55a0ab14d659a2a68674a05ed8a1d}{nb\-Migrations}}
+\label{classpeoSyncIslandMig_cdd55a0ab14d659a2a68674a05ed8a1d}
\end{CompactItemize}
\subsection{Detailed Description}
-\subsubsection*{template$<$class EOT$>$ class peo\-Sync\-Island\-Mig$<$ EOT $>$}
+\subsubsection*{template$<$class TYPESELECT, class TYPEREPLACE$>$ class peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}
-The \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e.
+Specific class for a synchronous migration.
-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.
-
-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:
-
-\begin{TabularC}{2}
-\hline
-{\bf do} \{ ~ &~ \\\hline
-~~~~~~~~ select( population, offsprings ); ~ &// select the offsprings from the current population \\\hline
-~~~~~~~~ transform( offsprings ); ~ &// crossover and mutation operators are applied on the selected offsprings \\\hline
-~~~~~~~~ evaluate( offsprings ); ~ &// evaluation step of the resulting offspring \\\hline
-~~~~~~~~ replace( population, offsprings ); ~ &// replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy \\\hline
-\} {\bf while} ( ea\-Checkpoint\-Continue( population ) ); ~ &// checkpoint operators are applied on the current population, including the migration operator, if any specified \\\hline
-\end{TabularC}
-
-
-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 {\bf \hyperlink{classRunner}{Runner}} class (for example a \hyperlink{classpeoEA}{peo\-EA} object represents a possible owner). A simple example is offered bellow:
-
-\begin{enumerate}
-\item topological model to be followed when performing migrations: \par
- \par
- \begin{TabularC}{2}
-\hline
-\hyperlink{classRingTopology}{Ring\-Topology} mig\-Topology; ~ &// a simple ring topological model - each island communicates with two other islands \\\hline
-\end{TabularC}
-
-
-\item the continuation criterion, selection and replacement strategy etc. are defined: \par
- \par
- \begin{TabularC}{2}
-\hline
-eo\-Pop$<$ EOT $>$ population( POP\_\-SIZE, pop\-Initializer ); ~ &// population of individuals to be used for the evolutionary algorithm \\\hline
-~ &~ \\\hline
-eo\-Random\-Select$<$ EOT $>$ mig\-Select\-Strategy; ~ &// selection strategy - in this case a random selection is applied \\\hline
-eo\-Select\-Number$<$ EOT $>$ mig\-Select( mig\-Select\-Strategy, MIG\_\-SIZE ); ~ &// number of individuals to be selected using the specified strategy \\\hline
-eo\-Plus\-Replacement$<$ EOT $>$ mig\-Replace; ~ &// immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals \\\hline
-~ &~ \\\hline
-peo\-Sync\-Island\-Mig$<$ EOT $>$ sync\-Migration( \par
- ~~~~~~~~ MIG\_\-FREQ, mig\-Select, mig\-Replace, mig\-Topology, \par
- ~~~~~~~~ population, population \par
- ); ~ &// synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated \\\hline
-\end{TabularC}
-
-
-\item 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): \par
- \par
- \begin{TabularC}{2}
-\hline
-... ~ &~ \\\hline
-eo\-Gen\-Continue$<$ EOT $>$ ea\-Cont( NUM\_\-GEN ); ~ &// the evolutionary algorithm will stop after NUM\_\-GEN generations \\\hline
-eo\-Check\-Point$<$ EOT $>$ ea\-Checkpoint\-Continue( ea\-Cont ); ~ &// number of individuals to be selected using the specified strategy \\\hline
-... ~ &~ \\\hline
-ea\-Checkpoint\-Continue.add( sync\-Migration ); ~ &// adding the migration operator as checkpoint element \\\hline
-... ~ &~ \\\hline
-\end{TabularC}
-
-
-\item definition of an owner evolutionary algorithm (an object inheriting the {\bf \hyperlink{classRunner}{Runner}} class): \par
- \par
- \begin{TabularC}{2}
-\hline
-peo\-EA$<$ EOT $>$ ea\-Alg( ea\-Checkpoint\-Continue, ea\-Pop\-Eval, ea\-Select, ea\-Transform, ea\-Replace); ~ &// evolutionary algorithm having as checkpoint the ea\-Checkpoint\-Continue object defined above \\\hline
-sync\-Migration.set\-Owner( ea\-Alg ); ~ &// setting the evolutionary algorithm as owner of the migration object \\\hline
-ea\-Alg( population ); ~ &// applying the evolutionary algorithm on a given population \\\hline
-\end{TabularC}
-\end{enumerate}
-
-
-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.
-
-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++ mig\-Topology object has to be passed as parameter for all the migration objects, in order to interconnect them).
+\begin{Desc}
+\item[See also:]\hyperlink{classCooperative}{Cooperative} eo\-Updater \end{Desc}
+\begin{Desc}
+\item[Version:]2.0 \end{Desc}
+\begin{Desc}
+\item[Date:]january 2008 \end{Desc}
-Definition at line 142 of file peo\-Sync\-Island\-Mig.h.
+
+Definition at line 71 of file peo\-Sync\-Island\-Mig.h.
\subsection{Constructor \& Destructor Documentation}
-\hypertarget{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}{
+\hypertarget{classpeoSyncIslandMig_24f4d1ea8bb63c09b9d6cd8476014082}{
\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!peoSyncIslandMig@{peoSyncIslandMig}}
\index{peoSyncIslandMig@{peoSyncIslandMig}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}}
-\subsubsection[peoSyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} (unsigned {\em \_\-\_\-frequency}, \bf{eo\-Select}$<$ EOT $>$ \& {\em \_\-\_\-select}, \bf{eo\-Replacement}$<$ EOT $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-source}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-destination})}}
-\label{classpeoSyncIslandMig_96b7b6de20b5e318a8b1cde76842305c}
+\subsubsection[peoSyncIslandMig]{\setlength{\rightskip}{0pt plus 5cm}template$<$class TYPESELECT, class TYPEREPLACE$>$ \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ TYPESELECT, TYPEREPLACE $>$::\hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} (unsigned {\em \_\-\_\-frequency}, \hyperlink{classselector}{selector}$<$ TYPESELECT $>$ \& {\em \_\-\_\-select}, \hyperlink{classreplacement}{replacement}$<$ TYPEREPLACE $>$ \& {\em \_\-\_\-replace}, \hyperlink{classTopology}{Topology} \& {\em \_\-\_\-topology})}}
+\label{classpeoSyncIslandMig_24f4d1ea8bb63c09b9d6cd8476014082}
-Constructor for the \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig} class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \doxyref{EO}, etc., or custom, derived objects may be passed as parameters.
-
\begin{Desc}
\item[Parameters:]
\begin{description}
-\item[{\em unsigned}]\_\-\_\-frequency - frequency of the migrations - the migrations occur periodically; \item[{\em eo\-Select$<$}]EOT $>$\& \_\-\_\-select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; \item[{\em eo\-Replacement$<$}]EOT $>$\& \_\-\_\-replace - replacement strategy used for integrating the immigrant individuals in the destination population; \item[{\em Topology\&}]\_\-\_\-topology - topological model to be followed when performing migrations; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-source - source population from which the emigrant individuals are selected; \item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-destination - destination population in which the immigrant population are integrated. \end{description}
+\item[{\em unsigned}]\_\-\_\-frequency \item[{\em selector}]$<$TYPESELECT$>$ \& \_\-\_\-select \item[{\em replacement}]$<$TYPEREPLACE$>$ \& \_\-\_\-replace \item[{\em Topology\&}]\_\-\_\-topology \end{description}
\end{Desc}
-Definition at line 206 of file peo\-Sync\-Island\-Mig.h.
+Definition at line 139 of file peo\-Sync\-Island\-Mig.h.
-References Topology::add(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync.
+References Topology::add(), and peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$::sync.
-\subsection{Member Function Documentation}
-\hypertarget{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}{
-\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!operator()@{operator()}}
-\index{operator()@{operator()}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}}
-\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ EOT $>$::operator() ()\hspace{0.3cm}{\tt \mbox{[}virtual\mbox{]}}}}
-\label{classpeoSyncIslandMig_178476fd276f78b73607b33d19522c36}
+\subsection{Member Data Documentation}
+\hypertarget{classpeoSyncIslandMig_a64e7c9da149773c5d264d128a1ea37a}{
+\index{peoSyncIslandMig@{peo\-Sync\-Island\-Mig}!cont@{cont}}
+\index{cont@{cont}!peoSyncIslandMig@{peo\-Sync\-Island\-Mig}}
+\subsubsection[cont]{\setlength{\rightskip}{0pt plus 5cm}template$<$class TYPESELECT, class TYPEREPLACE$>$ \hyperlink{classeoSyncContinue}{eo\-Sync\-Continue} \hyperlink{classpeoSyncIslandMig}{peo\-Sync\-Island\-Mig}$<$ TYPESELECT, TYPEREPLACE $>$::\hyperlink{classpeoSyncIslandMig_a64e7c9da149773c5d264d128a1ea37a}{cont}\hspace{0.3cm}{\tt \mbox{[}private\mbox{]}}}}
+\label{classpeoSyncIslandMig_a64e7c9da149773c5d264d128a1ea37a}
-\doxyref{Function} operator to be called as checkpoint for performing the migration step.
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em \hyperlink{classeoSyncContinue}{eo\-Sync\-Continue}}]cont \item[{\em selector}]$<$TYPESELECT$>$ \& select \item[{\em replacement}]$<$TYPEREPLACE$>$ \& replace \item[{\em Topology\&}]topology \item[{\em std}]:: queue$<$ TYPEREPLACE $>$ imm \item[{\em std}]:: queue$<$ TYPESELECT $>$ em \item[{\em std}]:: queue$<$ Cooperative$\ast$ $>$ coop\_\-em \item[{\em sem\_\-t}]sync \item[{\em bool}]explicit\-Passive \item[{\em bool}]standby\-Migration \item[{\em std}]:: vector$<$ Cooperative$\ast$ $>$ in, out, all \item[{\em unsigned}]nb\-Migrations \end{description}
+\end{Desc}
-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.
-Implements \bf{eo\-F$<$ void $>$}.
+Definition at line 124 of file peo\-Sync\-Island\-Mig.h.
-Definition at line 280 of file peo\-Sync\-Island\-Mig.h.
-
-References peo\-Sync\-Island\-Mig$<$ EOT $>$::cont, peo\-Sync\-Island\-Mig$<$ EOT $>$::emigrate(), Cooperative::get\-Owner(), peo\-Sync\-Island\-Mig$<$ EOT $>$::immigrate(), Thread::set\-Active(), peo\-Sync\-Island\-Mig$<$ EOT $>$::source, Communicable::stop(), and peo\-Sync\-Island\-Mig$<$ EOT $>$::sync.
+Referenced by peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$::operator()().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.eps b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.eps
index 685b4bc71..64ec3ebd1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.eps
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.eps
@@ -5,7 +5,7 @@
%%For:
%Magnification: 1.00
%%Orientation: Portrait
-%%BoundingBox: 0 0 500 250
+%%BoundingBox: 0 0 500 408.163
%%Pages: 0
%%BeginSetup
%%EndSetup
@@ -19,13 +19,13 @@
/marginwidth 10 def
/distx 20 def
/disty 40 def
-/boundaspect 2 def % aspect ratio of the BoundingBox (width/height)
+/boundaspect 1.225 def % aspect ratio of the BoundingBox (width/height)
/boundx 500 def
/boundy boundx boundaspect div def
/xspacing 0 def
/yspacing 0 def
-/rows 5 def
-/cols 2 def
+/rows 3 def
+/cols 1 def
/scalefactor 0 def
/boxfont /Times-Roman findfont fontheight scalefont def
@@ -175,12 +175,7 @@ boxfont setfont
1 boundaspect scale
(peoTransform< EOT >) cw
(Service) cw
-(eoTransform< EOT >) cw
(Communicable) cw
-(eoUF< A1, R >) cw
-(eoFunctorBase) cw
-(peoParaSGATransform< EOT >) cw
-(peoSeqTransform< EOT >) cw
/boxwidth boxwidth marginwidth 2 mul add def
/xspacing boxwidth distx add def
/yspacing boxheight disty add def
@@ -192,42 +187,17 @@ boundx scalefactor div boundy scalefactor div scale
% ----- classes -----
- (peoTransform< EOT >) 0.5 1 box
- (Service) 0 2 box
- (eoTransform< EOT >) 1 2 box
- (Communicable) 0 3 box
- (eoUF< A1, R >) 1 3 box
- (eoFunctorBase) 1 4 box
- (peoParaSGATransform< EOT >) 0 0 box
- (peoSeqTransform< EOT >) 1 0 box
+ (peoTransform< EOT >) 0 0 box
+ (Service) 0 1 box
+ (Communicable) 0 2 box
% ----- relations -----
solid
-0 0.5 1 out
+0 0 0 out
solid
-0 1 2 conn
+1 0 1 in
+solid
+0 0 1 out
solid
1 0 2 in
-solid
-0 0 2 out
-solid
-1 1 2 in
-solid
-0 1 2 out
-solid
-1 0 3 in
-solid
-1 1 3 in
-solid
-0 1 3 out
-solid
-1 1 4 in
-solid
-1 0.5 0.25 out
-solid
-0 1 1 conn
-solid
-0 0 0.75 in
-solid
-0 1 0.75 in
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.pdf b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.pdf
index 936add316..9316781e1 100644
Binary files a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.pdf and b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.pdf differ
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.tex
index 5207893f6..1522fc197 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/classpeoTransform.tex
@@ -2,7 +2,7 @@
\section{peo\-Transform$<$ EOT $>$ Class Template Reference}
\label{classpeoTransform}\index{peoTransform@{peoTransform}}
}
-The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes.
+Class for a parallel transform.
{\tt \#include $<$peo\-Transform.h$>$}
@@ -10,19 +10,173 @@ The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interfac
Inheritance diagram for peo\-Transform$<$ EOT $>$::\begin{figure}[H]
\begin{center}
\leavevmode
-\includegraphics[height=5cm]{classpeoTransform}
+\includegraphics[height=3cm]{classpeoTransform}
\end{center}
\end{figure}
+\subsection*{Public Member Functions}
+\begin{CompactItemize}
+\item
+\hyperlink{classpeoTransform_755989a2d080903d0cade75643de0788}{peo\-Transform} (eo\-Quad\-Op$<$ EOT $>$ \&\_\-\_\-cross, double \_\-\_\-cross\_\-rate, eo\-Mon\-Op$<$ EOT $>$ \&\_\-\_\-mut, double \_\-\_\-mut\_\-rate)
+\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item
+void \hyperlink{classpeoTransform_9322aa28ad272289132e342624a0adb4}{operator()} (eo\-Pop$<$ EOT $>$ \&\_\-\_\-pop)
+\begin{CompactList}\small\item\em Operator. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_c1101d10a36ce4255b874bcd9725021e}{
+void \hyperlink{classpeoTransform_c1101d10a36ce4255b874bcd9725021e}{pack\-Data} ()}
+\label{classpeoTransform_c1101d10a36ce4255b874bcd9725021e}
+
+\begin{CompactList}\small\item\em Function realizing packages of data. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_a804631492e08053162a196877587aef}{
+void \hyperlink{classpeoTransform_a804631492e08053162a196877587aef}{unpack\-Data} ()}
+\label{classpeoTransform_a804631492e08053162a196877587aef}
+
+\begin{CompactList}\small\item\em Function reconstituting packages of data. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_85c2cbc76f803b2b5cb2bc8cbc214136}{
+void \hyperlink{classpeoTransform_85c2cbc76f803b2b5cb2bc8cbc214136}{execute} ()}
+\label{classpeoTransform_85c2cbc76f803b2b5cb2bc8cbc214136}
+
+\begin{CompactList}\small\item\em Function which executes the algorithm. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_bdae056027406ba9f489e2bef115fd08}{
+void \hyperlink{classpeoTransform_bdae056027406ba9f489e2bef115fd08}{pack\-Result} ()}
+\label{classpeoTransform_bdae056027406ba9f489e2bef115fd08}
+
+\begin{CompactList}\small\item\em Function realizing packages of the result. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_e0244425e846c5679c901b61e4252814}{
+void \hyperlink{classpeoTransform_e0244425e846c5679c901b61e4252814}{unpack\-Result} ()}
+\label{classpeoTransform_e0244425e846c5679c901b61e4252814}
+
+\begin{CompactList}\small\item\em Function reconstituting packages of result. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_77508f186476181ec2c6a8230961eede}{
+void \hyperlink{classpeoTransform_77508f186476181ec2c6a8230961eede}{notify\-Sending\-Data} ()}
+\label{classpeoTransform_77508f186476181ec2c6a8230961eede}
+
+\begin{CompactList}\small\item\em Function notify\-Sending\-Data. \item\end{CompactList}\item
+\hypertarget{classpeoTransform_19990af963b6604d1175290fe6725335}{
+void \hyperlink{classpeoTransform_19990af963b6604d1175290fe6725335}{notify\-Sending\-All\-Resource\-Requests} ()}
+\label{classpeoTransform_19990af963b6604d1175290fe6725335}
+
+\begin{CompactList}\small\item\em Function notify\-Sending\-All\-Resource\-Requests. \item\end{CompactList}\end{CompactItemize}
+\subsection*{Private Attributes}
+\begin{CompactItemize}
+\item
+eo\-Quad\-Op$<$ EOT $>$ \& \hyperlink{classpeoTransform_d2fce5199b61f599fd89cf54d6fcd312}{cross}
+\item
+\hypertarget{classpeoTransform_3336251fb3433a8405ea75f3a8bed04d}{
+double \hyperlink{classpeoTransform_3336251fb3433a8405ea75f3a8bed04d}{cross\_\-rate}}
+\label{classpeoTransform_3336251fb3433a8405ea75f3a8bed04d}
+
+\item
+\hypertarget{classpeoTransform_3d1ea5c8a6aa95bf051051361908a9c6}{
+eo\-Mon\-Op$<$ EOT $>$ \& \hyperlink{classpeoTransform_3d1ea5c8a6aa95bf051051361908a9c6}{mut}}
+\label{classpeoTransform_3d1ea5c8a6aa95bf051051361908a9c6}
+
+\item
+\hypertarget{classpeoTransform_0b0802dfc4a3ec664c8fccf10bb1842a}{
+double \hyperlink{classpeoTransform_0b0802dfc4a3ec664c8fccf10bb1842a}{mut\_\-rate}}
+\label{classpeoTransform_0b0802dfc4a3ec664c8fccf10bb1842a}
+
+\item
+\hypertarget{classpeoTransform_0acac288337aec3d0d853565924a365d}{
+unsigned \hyperlink{classpeoTransform_0acac288337aec3d0d853565924a365d}{idx}}
+\label{classpeoTransform_0acac288337aec3d0d853565924a365d}
+
+\item
+\hypertarget{classpeoTransform_0916042d3500452082ad19fd5ce5e161}{
+eo\-Pop$<$ EOT $>$ $\ast$ \hyperlink{classpeoTransform_0916042d3500452082ad19fd5ce5e161}{pop}}
+\label{classpeoTransform_0916042d3500452082ad19fd5ce5e161}
+
+\item
+\hypertarget{classpeoTransform_88c563f77e5c25b70b6cb619ec97185f}{
+EOT \hyperlink{classpeoTransform_88c563f77e5c25b70b6cb619ec97185f}{father}}
+\label{classpeoTransform_88c563f77e5c25b70b6cb619ec97185f}
+
+\item
+\hypertarget{classpeoTransform_5c754343fa9a3580632d6b9e8f1bafaa}{
+EOT \hyperlink{classpeoTransform_5c754343fa9a3580632d6b9e8f1bafaa}{mother}}
+\label{classpeoTransform_5c754343fa9a3580632d6b9e8f1bafaa}
+
+\item
+\hypertarget{classpeoTransform_6a02c2c2de16c5825058e06d146c5cd9}{
+unsigned \hyperlink{classpeoTransform_6a02c2c2de16c5825058e06d146c5cd9}{num\_\-term}}
+\label{classpeoTransform_6a02c2c2de16c5825058e06d146c5cd9}
+
+\end{CompactItemize}
\subsection{Detailed Description}
\subsubsection*{template$<$class EOT$>$ class peo\-Transform$<$ EOT $>$}
-The \hyperlink{classpeoTransform}{peo\-Transform} class acts only as an interface for creating transform operators - for an example please refer to the {\bf \hyperlink{classpeoSeqTransform}{peo\-Seq\-Transform}} and the {\bf \hyperlink{classpeoParaSGATransform}{peo\-Para\-SGATransform}} classes.
+Class for a parallel transform.
+
+\begin{Desc}
+\item[See also:]\hyperlink{classService}{Service} eo\-Transform \end{Desc}
+\begin{Desc}
+\item[Version:]1.1 \end{Desc}
+\begin{Desc}
+\item[Date:]january 2008 \end{Desc}
-Definition at line 48 of file peo\-Transform.h.
+
+Definition at line 53 of file peo\-Transform.h.
+
+\subsection{Constructor \& Destructor Documentation}
+\hypertarget{classpeoTransform_755989a2d080903d0cade75643de0788}{
+\index{peoTransform@{peo\-Transform}!peoTransform@{peoTransform}}
+\index{peoTransform@{peoTransform}!peoTransform@{peo\-Transform}}
+\subsubsection[peoTransform]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$::\hyperlink{classpeoTransform}{peo\-Transform} (eo\-Quad\-Op$<$ EOT $>$ \& {\em \_\-\_\-cross}, double {\em \_\-\_\-cross\_\-rate}, eo\-Mon\-Op$<$ EOT $>$ \& {\em \_\-\_\-mut}, double {\em \_\-\_\-mut\_\-rate})}}
+\label{classpeoTransform_755989a2d080903d0cade75643de0788}
+
+
+Constructor.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Quad\-Op$<$}]EOT $>$\& \_\-\_\-cross \item[{\em double}]\_\-\_\-cross\_\-rate \item[{\em eo\-Mon\-Op$<$}]EOT $>$\& \_\-\_\-mut \item[{\em double}]\_\-\_\-mut\_\-rate \end{description}
+\end{Desc}
+
+
+Definition at line 108 of file peo\-Transform.h.
+
+\subsection{Member Function Documentation}
+\hypertarget{classpeoTransform_9322aa28ad272289132e342624a0adb4}{
+\index{peoTransform@{peo\-Transform}!operator()@{operator()}}
+\index{operator()@{operator()}!peoTransform@{peo\-Transform}}
+\subsubsection[operator()]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ void \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$::operator() (eo\-Pop$<$ EOT $>$ \& {\em \_\-\_\-pop})}}
+\label{classpeoTransform_9322aa28ad272289132e342624a0adb4}
+
+
+Operator.
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Pop$<$}]EOT $>$\& \_\-\_\-pop \end{description}
+\end{Desc}
+
+
+Definition at line 176 of file peo\-Transform.h.
+
+References peo\-Transform$<$ EOT $>$::idx, peo\-Transform$<$ EOT $>$::num\_\-term, peo\-Transform$<$ EOT $>$::pop, Service::request\-Resource\-Request(), and Communicable::stop().
+
+\subsection{Member Data Documentation}
+\hypertarget{classpeoTransform_d2fce5199b61f599fd89cf54d6fcd312}{
+\index{peoTransform@{peo\-Transform}!cross@{cross}}
+\index{cross@{cross}!peoTransform@{peo\-Transform}}
+\subsubsection[cross]{\setlength{\rightskip}{0pt plus 5cm}template$<$class EOT$>$ eo\-Quad\-Op$<$ EOT $>$\& \hyperlink{classpeoTransform}{peo\-Transform}$<$ EOT $>$::\hyperlink{classpeoTransform_d2fce5199b61f599fd89cf54d6fcd312}{cross}\hspace{0.3cm}{\tt \mbox{[}private\mbox{]}}}}
+\label{classpeoTransform_d2fce5199b61f599fd89cf54d6fcd312}
+
+
+\begin{Desc}
+\item[Parameters:]
+\begin{description}
+\item[{\em eo\-Quad\-Op$<$}]EOT $>$\& cross \item[{\em double}]cross\_\-rate \item[{\em eo\-Mon\-Op$<$}]EOT $>$\& mut \item[{\em double}]mut\_\-rate \item[{\em unsigned}]idx \item[{\em eo\-Pop$<$}]EOT $>$$\ast$ pop \item[{\em EOT}]father \item[{\em mother}]\item[{\em unsigned}]num\_\-term \end{description}
+\end{Desc}
+
+
+Definition at line 98 of file peo\-Transform.h.
+
+Referenced by peo\-Transform$<$ EOT $>$::execute().
The documentation for this class was generated from the following file:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/doxygen.sty b/tags/dummy-tag/paradiseo-peo/doc/latex/doxygen.sty
index e00898f58..d0d38f670 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/doxygen.sty
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/doxygen.sty
@@ -10,8 +10,8 @@
{\fancyplain{}{\bfseries\rightmark}}
\rhead[\fancyplain{}{\bfseries\leftmark}]
{\fancyplain{}{\bfseries\thepage}}
-\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Mon Oct 8 11:16:45 2007 for Paradis\-EO-PEOMoving\-Objects by Doxygen }]{}
-\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Mon Oct 8 11:16:45 2007 for Paradis\-EO-PEOMoving\-Objects by Doxygen }}
+\rfoot[\fancyplain{}{\bfseries\scriptsize Generated on Fri Feb 29 17:05:05 2008 for Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects by Doxygen }]{}
+\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Fri Feb 29 17:05:05 2008 for Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects by Doxygen }}
\cfoot{}
\newenvironment{Code}
{\footnotesize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/hierarchy.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/hierarchy.tex
index 385abf60e..dd1c379a5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/hierarchy.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/hierarchy.tex
@@ -1,77 +1,83 @@
-\section{Paradis\-EO-PEOMoving\-Objects Class Hierarchy}
+\section{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Class Hierarchy}
This inheritance list is sorted roughly, but not completely, alphabetically:\begin{CompactList}
+\item \contentsline{section}{Algorithm}{\pageref{structAlgorithm}}{}
+\item \contentsline{section}{City\-Swap}{\pageref{classCitySwap}}{}
\item \contentsline{section}{Communicable}{\pageref{classCommunicable}}{}
\begin{CompactList}
\item \contentsline{section}{Cooperative}{\pageref{classCooperative}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoAsyncIslandMig}}{}
-\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoSyncIslandMig}}{}
+\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}{\pageref{classpeoAsyncIslandMig}}{}
+\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}{\pageref{classpeoSyncIslandMig}}{}
\end{CompactList}
\item \contentsline{section}{Runner}{\pageref{classRunner}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-EA$<$ EOT $>$}{\pageref{classpeoEA}}{}
-\item \contentsline{section}{peo\-Parallel\-Algorithm\-Wrapper}{\pageref{classpeoParallelAlgorithmWrapper}}{}
+\item \contentsline{section}{peo\-Wrapper}{\pageref{classpeoWrapper}}{}
\end{CompactList}
\item \contentsline{section}{Service}{\pageref{classService}}{}
\begin{CompactList}
+\item \contentsline{section}{peo\-Moeo\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoMoeoPopEval}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$}{\pageref{classpeoMultiStart}}{}
\item \contentsline{section}{peo\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoPopEval}}{}
-\begin{CompactList}
-\item \contentsline{section}{peo\-Para\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoParaPopEval}}{}
-\item \contentsline{section}{peo\-Seq\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoSeqPopEval}}{}
-\end{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$}{\pageref{classpeoSynchronousMultiStart}}{}
-\item \contentsline{section}{peo\-Sync\-Multi\-Start$<$ EOT $>$}{\pageref{classpeoSyncMultiStart}}{}
\item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{}
-\begin{CompactList}
-\item \contentsline{section}{peo\-Para\-SGATransform$<$ EOT $>$}{\pageref{classpeoParaSGATransform}}{}
-\item \contentsline{section}{peo\-Seq\-Transform$<$ EOT $>$}{\pageref{classpeoSeqTransform}}{}
-\end{CompactList}
\end{CompactList}
\item \contentsline{section}{Worker}{\pageref{classWorker}}{}
\end{CompactList}
-\item eo\-Functor\-Base{\tt \mbox{[}external\mbox{]}}\begin{CompactList}
-\item eo\-BF$<$ A1, A2, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList}
+\item \contentsline{section}{continuator}{\pageref{classcontinuator}}{}
+\begin{CompactList}
+\item \contentsline{section}{eo\-Continuator$<$ EOT $>$}{\pageref{classeoContinuator}}{}
+\item \contentsline{section}{eo\-Sync\-Continue}{\pageref{classeoSyncContinue}}{}
+\end{CompactList}
+\item \contentsline{section}{Display\-Best\-Route}{\pageref{classDisplayBestRoute}}{}
+\item \contentsline{section}{Edge\-Xover}{\pageref{classEdgeXover}}{}
+\item \contentsline{section}{MPIThreaded\-Env}{\pageref{classMPIThreadedEnv}}{}
+\item \contentsline{section}{Node}{\pageref{structNode}}{}
+\item \contentsline{section}{Order\-Xover}{\pageref{classOrderXover}}{}
+\item \contentsline{section}{Partial\-Mapped\-Xover}{\pageref{classPartialMappedXover}}{}
+\item \contentsline{section}{Part\-Route\-Eval}{\pageref{classPartRouteEval}}{}
\item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoAggEvalFunc}}{}
\begin{CompactList}
\item \contentsline{section}{Merge\-Route\-Eval}{\pageref{classMergeRouteEval}}{}
\item \contentsline{section}{peo\-No\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoNoAggEvalFunc}}{}
\end{CompactList}
\item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ eo\-Vector$<$ int, Node $>$ $>$}{\pageref{classpeoAggEvalFunc}}{}
-\end{CompactList}
-\item eo\-F$<$ void $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList}
-\item eo\-Updater{\tt \mbox{[}external\mbox{]}}\begin{CompactList}
-\item \contentsline{section}{Display\-Best\-Route}{\pageref{classDisplayBestRoute}}{}
-\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoAsyncIslandMig}}{}
-\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ EOT $>$}{\pageref{classpeoSyncIslandMig}}{}
-\item \contentsline{section}{peo\-Sync\-Multi\-Start$<$ EOT $>$}{\pageref{classpeoSyncMultiStart}}{}
-\end{CompactList}
-\end{CompactList}
-\item eo\-UF$<$ A1, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList}
-\item eo\-Transform$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList}
-\item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{}
-\end{CompactList}
-\end{CompactList}
-\end{CompactList}
-\item \contentsline{section}{peo\-Parallel\-Algorithm\-Wrapper::Abstract\-Algorithm}{\pageref{structpeoParallelAlgorithmWrapper_1_1AbstractAlgorithm}}{}
+\item \contentsline{section}{peo\-Eval\-Func$<$ EOT, Fit\-T, Function\-Arg $>$}{\pageref{structpeoEvalFunc}}{}
+\item \contentsline{section}{peo\-Global\-Best\-Velocity$<$ POT $>$}{\pageref{classpeoGlobalBestVelocity}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Aggregation\-Algorithm}{\pageref{structpeoMultiStart_1_1AbstractAggregationAlgorithm}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-Parallel\-Algorithm\-Wrapper::Algorithm$<$ Algorithm\-Type, Algorithm\-Data\-Type $>$}{\pageref{structpeoParallelAlgorithmWrapper_1_1Algorithm}}{}
-\item \contentsline{section}{peo\-Parallel\-Algorithm\-Wrapper::Algorithm$<$ Algorithm\-Type, void $>$}{\pageref{structpeoParallelAlgorithmWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Aggregation\-Algorithm$<$ Aggregation\-Algorithm\-Type $>$}{\pageref{structpeoMultiStart_1_1AggregationAlgorithm}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::No\-Aggregation\-Function}{\pageref{structpeoMultiStart_1_1NoAggregationFunction}}{}
\end{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Aggregation\-Algorithm}{\pageref{structpeoSynchronousMultiStart_1_1AbstractAggregationAlgorithm}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Algorithm}{\pageref{structpeoMultiStart_1_1AbstractAlgorithm}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Aggregation\-Algorithm$<$ Aggregation\-Algorithm\-Type $>$}{\pageref{structpeoSynchronousMultiStart_1_1AggregationAlgorithm}}{}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::No\-Aggregation\-Function}{\pageref{structpeoSynchronousMultiStart_1_1NoAggregationFunction}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Algorithm$<$ Algorithm\-Type $>$}{\pageref{structpeoMultiStart_1_1Algorithm}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Function\-Algorithm$<$ Algorithm\-Return\-Type, Algorithm\-Data\-Type $>$}{\pageref{structpeoMultiStart_1_1FunctionAlgorithm}}{}
\end{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Algorithm}{\pageref{structpeoSynchronousMultiStart_1_1AbstractAlgorithm}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Data\-Type}{\pageref{structpeoMultiStart_1_1AbstractDataType}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Algorithm$<$ Algorithm\-Type $>$}{\pageref{structpeoSynchronousMultiStart_1_1Algorithm}}{}
+\item \contentsline{section}{peo\-Multi\-Start$<$ Entity\-Type $>$::Data\-Type$<$ Type $>$}{\pageref{structpeoMultiStart_1_1DataType}}{}
\end{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Abstract\-Data\-Type}{\pageref{structpeoSynchronousMultiStart_1_1AbstractDataType}}{}
+\item \contentsline{section}{peo\-PSOSelect$<$ POT $>$}{\pageref{classpeoPSOSelect}}{}
+\item \contentsline{section}{peo\-Worst\-Position\-Replacement$<$ POT $>$}{\pageref{classpeoWorstPositionReplacement}}{}
+\item \contentsline{section}{peo\-Wrapper::Abstract\-Algorithm}{\pageref{structpeoWrapper_1_1AbstractAlgorithm}}{}
\begin{CompactList}
-\item \contentsline{section}{peo\-Synchronous\-Multi\-Start$<$ Entity\-Type $>$::Data\-Type$<$ Type $>$}{\pageref{structpeoSynchronousMultiStart_1_1DataType}}{}
+\item \contentsline{section}{peo\-Wrapper::Algorithm$<$ Algorithm\-Type, Algorithm\-Data\-Type $>$}{\pageref{structpeoWrapper_1_1Algorithm}}{}
+\item \contentsline{section}{peo\-Wrapper::Algorithm$<$ Algorithm\-Type, void $>$}{\pageref{structpeoWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}}{}
+\item \contentsline{section}{peo\-Wrapper::Function\-Algorithm$<$ Algorithm\-Return\-Type, Algorithm\-Data\-Type $>$}{\pageref{structpeoWrapper_1_1FunctionAlgorithm}}{}
+\item \contentsline{section}{peo\-Wrapper::Function\-Algorithm$<$ Algorithm\-Return\-Type, void $>$}{\pageref{structpeoWrapper_1_1FunctionAlgorithm_3_01AlgorithmReturnType_00_01void_01_4}}{}
+\end{CompactList}
+\item \contentsline{section}{replacement$<$ TYPE $>$}{\pageref{classreplacement}}{}
+\begin{CompactList}
+\item \contentsline{section}{eo\-Replace$<$ EOT, TYPE $>$}{\pageref{classeoReplace}}{}
+\end{CompactList}
+\item \contentsline{section}{Route\-Eval}{\pageref{classRouteEval}}{}
+\item \contentsline{section}{Route\-Init}{\pageref{classRouteInit}}{}
+\item \contentsline{section}{selector$<$ TYPE $>$}{\pageref{classselector}}{}
+\begin{CompactList}
+\item \contentsline{section}{eo\-Selector$<$ EOT, TYPE $>$}{\pageref{classeoSelector}}{}
\end{CompactList}
-\item \contentsline{section}{Random\-Exploration\-Algorithm}{\pageref{structRandomExplorationAlgorithm}}{}
\item \contentsline{section}{SEND\_\-REQUEST}{\pageref{structSEND__REQUEST}}{}
+\item \contentsline{section}{Sync\-Compare}{\pageref{structSyncCompare}}{}
+\item \contentsline{section}{Sync\-Entry}{\pageref{structSyncEntry}}{}
\item \contentsline{section}{Thread}{\pageref{classThread}}{}
\begin{CompactList}
\item \contentsline{section}{Reactive\-Thread}{\pageref{classReactiveThread}}{}
@@ -83,6 +89,14 @@ This inheritance list is sorted roughly, but not completely, alphabetically:\beg
\end{CompactList}
\item \contentsline{section}{Topology}{\pageref{classTopology}}{}
\begin{CompactList}
+\item \contentsline{section}{Complete\-Topology}{\pageref{classCompleteTopology}}{}
+\item \contentsline{section}{Random\-Topology}{\pageref{classRandomTopology}}{}
\item \contentsline{section}{Ring\-Topology}{\pageref{classRingTopology}}{}
+\item \contentsline{section}{Star\-Topology}{\pageref{classStarTopology}}{}
\end{CompactList}
+\item \contentsline{section}{Two\-Opt}{\pageref{classTwoOpt}}{}
+\item \contentsline{section}{Two\-Opt\-Incr\-Eval}{\pageref{classTwoOptIncrEval}}{}
+\item \contentsline{section}{Two\-Opt\-Init}{\pageref{classTwoOptInit}}{}
+\item \contentsline{section}{Two\-Opt\-Next}{\pageref{classTwoOptNext}}{}
+\item \contentsline{section}{Two\-Opt\-Rand}{\pageref{classTwoOptRand}}{}
\end{CompactList}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/main.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/main.tex
index fe3667dc0..aa7782212 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/main.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/main.tex
@@ -1,4 +1,4 @@
-\hypertarget{main_intro}{}\section{intro}\label{main_intro}
+\hypertarget{main_intro}{}\section{Introduction}\label{main_intro}
Paradis\-EO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). Paradis\-EO provides a broad range of features including evolutionary algorithms (EA), local searches (LS), the most common parallel and distributed models and hybridization mechanisms, etc. This high content and utility encourages its use at European level. Paradis\-EO is based on a clear conceptual separation of the solution methods from the problems they are intended to solve. This separation confers to the user a maximum code and design reuse. Furthermore, the fine-grained nature of the classes provided by the framework allow a higher flexibility compared to other frameworks. Paradis\-EO is one of the rare frameworks that provide the most common parallel and distributed models. Their implementation is portable on distributed-memory machines as well as on shared-memory multiprocessors, as it uses standard libraries such as MPI, PVM and PThreads. The models can be exploited in a transparent way, one has just to instantiate their associated provided classes. Their experimentation on the radio network design real-world application demonstrate their efficiency.
In practice, combinatorial optimization problems are often NP-hard, CPU time-consuming, and evolve over time. Unlike exact methods, metaheuristics allow to tackle large-size problems instances by delivering satisfactory solutions in a reasonable time. Metaheuristics are general-purpose heuristics that split in two categories: evolutionary algorithms (EA) and local search methods (LS). These two families have complementary characteristics: EA allow a better exploration of the search space, while LS have the power to intensify the search in promising regions. Their hybridization allows to deliver robust and better solutions
@@ -22,7 +22,7 @@ Two parallel distributed models are commonly used in the literature: the paralle
\item {\em Multi-start model\/}. It consists in simultaneously launching several local searches. They may be heterogeneous, but no information is exchanged between them. The resultswould be identical as if the algorithms were sequentially run.Very often deterministic algorithms differ by the supplied initial solution and/or some other parameters. This trivial model is convenient for low-speed networks of workstations. \end{itemize}
\hypertarget{main_hybridization}{}\section{Hybridization}\label{main_hybridization}
Recently, hybrid metaheuristics have gained a considerable interest. For many practical or academic optimization problems, the best found solutions are obtained by hybrid algorithms. Combinations of different metaheuristics have provided very powerful search methods. Two levels and two modes of hybridization have been distinguished: Low and High levels, and Relay and \hyperlink{classCooperative}{Cooperative} modes. The low-level hybridization addresses the functional composition of a single optimization method. A function of a given metaheuristic is replaced by another metaheuristic. On the contrary, for high-level hybrid algorithms the different metaheuristics are self-containing, meaning no direct relationship to their internal working is considered. On the other hand, relay hybridization means a set of metaheuristics is applied in a pipeline way. The output of a metaheuristic (except the last) is the input of the following one (except the first). Conversely, co-evolutionist hybridization is a cooperative optimization model. Each metaheuristic performs a search in a solution space, and exchange solutions with others.\hypertarget{main_paradiseo_goals}{}\section{Paradiseo goals and architecture}\label{main_paradiseo_goals}
-The \char`\"{}EO\char`\"{} part of Paradis\-EO means Evolving Objects. \doxyref{EO} is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, \doxyref{EO} integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. Paradis\-EO is an extended version of the \doxyref{EO} framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of Paradis\-EO, its architecture and some of its main implementation details and issues.\hypertarget{main_motivation}{}\subsection{Motivations and goals}\label{main_motivation}
+The \char`\"{}EO\char`\"{} part of Paradis\-EO means Evolving Objects. EO is a C++ LGPL open source framework and includes a paradigm-free Evolutionary Computation library (EOlib) dedicated to the flexible design of EA through evolving objects superseding the most common dialects (Genetic Algorithms, Evolution Strategies, Evolutionary Programming and Genetic Programming). Furthermore, EO integrates several services including visualization facilities, on-line definition of parameters, application check-pointing, etc. Paradis\-EO is an extended version of the EO framework. The extensions include local search methods, hybridization mechanisms, parallelism and distribution mechanisms, and other features that are not addressed in this paper such as multi-objective optimization and grid computing. In the next sections, we present the motivations and goals of Paradis\-EO, its architecture and some of its main implementation details and issues.\hypertarget{main_motivation}{}\subsection{Motivations and goals}\label{main_motivation}
A framework is normally intended to be exploited by as many users as possible. Therefore, its exploitation could be successful only if some important user criteria are satisfied. The following criteria are the major of them and constitute the main objectives of the Paradis\-EO framework:
\begin{itemize}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/namespaces.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/namespaces.tex
index c69deee37..ac9063657 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/namespaces.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/namespaces.tex
@@ -1,4 +1,4 @@
-\section{Paradis\-EO-PEOMoving\-Objects Namespace List}
+\section{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Namespace List}
Here is a list of all documented namespaces with brief descriptions:\begin{CompactList}
\item\contentsline{section}{\hyperlink{namespacepeo}{peo} }{\pageref{namespacepeo}}{}
\end{CompactList}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/refman.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/refman.tex
index e2e595b18..93cc2b4a8 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/refman.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/refman.tex
@@ -31,11 +31,11 @@
\begin{titlepage}
\vspace*{7cm}
\begin{center}
-{\Large Paradis\-EO-PEOMoving\-Objects Reference Manual\\[1ex]\large 1.0 }\\
+{\Large Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Reference Manual\\[1ex]\large 1.1 }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.4.7}\\
\vspace*{0.5cm}
-{\small Mon Oct 8 11:16:45 2007}\\
+{\small Fri Feb 29 17:05:05 2008}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
@@ -45,52 +45,80 @@
\pagenumbering{arabic}
\chapter{The Paradis\-EO-PEO Framework }
\label{index}\hypertarget{index}{}\input{main}
-\chapter{Paradis\-EO-PEOMoving\-Objects Namespace Index}
+\chapter{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Namespace Index}
\input{namespaces}
-\chapter{Paradis\-EO-PEOMoving\-Objects Hierarchical Index}
+\chapter{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Hierarchical Index}
\input{hierarchy}
-\chapter{Paradis\-EO-PEOMoving\-Objects Class Index}
+\chapter{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Class Index}
\input{annotated}
-\chapter{Paradis\-EO-PEOMoving\-Objects Namespace Documentation}
+\chapter{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Namespace Documentation}
\input{namespacepeo}
-\chapter{Paradis\-EO-PEOMoving\-Objects Class Documentation}
-\input{classCommunicable}
+\chapter{Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects Class Documentation}
+\input{structAlgorithm}
+\include{classCitySwap}
+\include{classCommunicable}
\include{classCommunicator}
+\include{classCompleteTopology}
+\include{classcontinuator}
\include{classCooperative}
\include{classDisplayBestRoute}
+\include{classEdgeXover}
+\include{classeoContinuator}
+\include{classeoReplace}
+\include{classeoSelector}
+\include{classeoSyncContinue}
\include{classMergeRouteEval}
+\include{classMPIThreadedEnv}
+\include{structNode}
+\include{classOrderXover}
+\include{classPartialMappedXover}
+\include{classPartRouteEval}
\include{classpeoAggEvalFunc}
\include{classpeoAsyncIslandMig}
-\include{classpeoEA}
+\include{structpeoEvalFunc}
+\include{classpeoGlobalBestVelocity}
+\include{classpeoMoeoPopEval}
+\include{classpeoMultiStart}
+\include{structpeoMultiStart_1_1AbstractAggregationAlgorithm}
+\include{structpeoMultiStart_1_1AbstractAlgorithm}
+\include{structpeoMultiStart_1_1AbstractDataType}
+\include{structpeoMultiStart_1_1AggregationAlgorithm}
+\include{structpeoMultiStart_1_1Algorithm}
+\include{structpeoMultiStart_1_1DataType}
+\include{structpeoMultiStart_1_1FunctionAlgorithm}
+\include{structpeoMultiStart_1_1NoAggregationFunction}
\include{classpeoNoAggEvalFunc}
-\include{classpeoParallelAlgorithmWrapper}
-\include{structpeoParallelAlgorithmWrapper_1_1AbstractAlgorithm}
-\include{structpeoParallelAlgorithmWrapper_1_1Algorithm}
-\include{structpeoParallelAlgorithmWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}
-\include{classpeoParaPopEval}
-\include{classpeoParaSGATransform}
\include{classpeoPopEval}
-\include{classpeoSeqPopEval}
-\include{classpeoSeqTransform}
-\include{classpeoSynchronousMultiStart}
-\include{structpeoSynchronousMultiStart_1_1AbstractAggregationAlgorithm}
-\include{structpeoSynchronousMultiStart_1_1AbstractAlgorithm}
-\include{structpeoSynchronousMultiStart_1_1AbstractDataType}
-\include{structpeoSynchronousMultiStart_1_1AggregationAlgorithm}
-\include{structpeoSynchronousMultiStart_1_1Algorithm}
-\include{structpeoSynchronousMultiStart_1_1DataType}
-\include{structpeoSynchronousMultiStart_1_1NoAggregationFunction}
+\include{classpeoPSOSelect}
\include{classpeoSyncIslandMig}
-\include{classpeoSyncMultiStart}
\include{classpeoTransform}
-\include{structRandomExplorationAlgorithm}
+\include{classpeoWorstPositionReplacement}
+\include{classpeoWrapper}
+\include{structpeoWrapper_1_1AbstractAlgorithm}
+\include{structpeoWrapper_1_1Algorithm}
+\include{structpeoWrapper_1_1Algorithm_3_01AlgorithmType_00_01void_01_4}
+\include{structpeoWrapper_1_1FunctionAlgorithm}
+\include{structpeoWrapper_1_1FunctionAlgorithm_3_01AlgorithmReturnType_00_01void_01_4}
+\include{classRandomTopology}
\include{classReactiveThread}
+\include{classreplacement}
\include{classRingTopology}
+\include{classRouteEval}
+\include{classRouteInit}
\include{classRunner}
+\include{classselector}
\include{structSEND__REQUEST}
\include{classService}
+\include{classStarTopology}
+\include{structSyncCompare}
+\include{structSyncEntry}
\include{classThread}
\include{classTopology}
+\include{classTwoOpt}
+\include{classTwoOptIncrEval}
+\include{classTwoOptInit}
+\include{classTwoOptNext}
+\include{classTwoOptRand}
\include{classWorker}
\printindex
\end{document}
diff --git a/tags/dummy-tag/paradiseo-peo/doc/latex/structSEND__REQUEST.tex b/tags/dummy-tag/paradiseo-peo/doc/latex/structSEND__REQUEST.tex
index 7b319bcac..47fd5035c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/latex/structSEND__REQUEST.tex
+++ b/tags/dummy-tag/paradiseo-peo/doc/latex/structSEND__REQUEST.tex
@@ -27,7 +27,7 @@ int \hyperlink{structSEND__REQUEST_3126b3ef9d6533d3086760e413a7f23f}{tag}}
-Definition at line 52 of file send.cpp.
+Definition at line 53 of file send.cpp.
The documentation for this struct was generated from the following file:\begin{CompactItemize}
\item
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicable.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicable.3
index d0e543861..03f63c3c9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicable.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicable.3
@@ -1,4 +1,4 @@
-.TH "Communicable" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Communicable" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -33,6 +33,13 @@ Inherited by \fBCooperative\fP, \fBRunner\fP, \fBService\fP, and \fBWorker\fP.
.RI "void \fBresume\fP ()"
.br
.in -1c
+.SS "Static Public Attributes"
+
+.in +1c
+.ti -1c
+.RI "static unsigned \fBnum_comm\fP = 0"
+.br
+.in -1c
.SS "Protected Attributes"
.in +1c
@@ -46,17 +53,10 @@ Inherited by \fBCooperative\fP, \fBRunner\fP, \fBService\fP, and \fBWorker\fP.
.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 44 of file communicable.h.
+Definition at line 45 of file communicable.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicator.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicator.3
index 4c541f2d4..90d1b9100 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicator.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Communicator.3
@@ -1,4 +1,4 @@
-.TH "Communicator" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Communicator" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -24,4 +24,4 @@ Definition at line 43 of file comm.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Cooperative.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Cooperative.3
index 9aa4a6bc7..54bbc61f1 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Cooperative.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Cooperative.3
@@ -1,4 +1,4 @@
-.TH "Cooperative" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Cooperative" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -8,7 +8,7 @@ Cooperative \-
.PP
Inherits \fBCommunicable\fP.
.PP
-Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP.
+Inherited by \fBpeoAsyncIslandMig< TYPESELECT, TYPEREPLACE >\fP, and \fBpeoSyncIslandMig< TYPESELECT, TYPEREPLACE >\fP.
.PP
.SS "Public Member Functions"
@@ -23,8 +23,20 @@ Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP.
.RI "void \fBsend\fP (\fBCooperative\fP *__coop)"
.br
.ti -1c
+.RI "void \fBsynchronizeCoopEx\fP ()"
+.br
+.ti -1c
.RI "virtual void \fBnotifySending\fP ()"
.br
+.ti -1c
+.RI "virtual void \fBnotifyReceiving\fP ()"
+.br
+.ti -1c
+.RI "virtual void \fBnotifySendingSyncReq\fP ()"
+.br
+.ti -1c
+.RI "virtual void \fBnotifySynchronized\fP ()"
+.br
.in -1c
.SS "Private Attributes"
@@ -35,8 +47,8 @@ Inherited by \fBpeoAsyncIslandMig< EOT >\fP, and \fBpeoSyncIslandMig< EOT >\fP.
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 45 of file cooperative.h.
+Definition at line 46 of file cooperative.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/DisplayBestRoute.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/DisplayBestRoute.3
index 18f1c70df..3722cdb32 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/DisplayBestRoute.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/DisplayBestRoute.3
@@ -1,4 +1,4 @@
-.TH "DisplayBestRoute" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "DisplayBestRoute" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -6,13 +6,11 @@ DisplayBestRoute \-
.SH SYNOPSIS
.br
.PP
-Inherits \fBeoUpdater\fP.
-.PP
.SS "Public Member Functions"
.in +1c
.ti -1c
-.RI "\fBDisplayBestRoute\fP (\fBeoPop\fP< \fBRoute\fP > &__pop)"
+.RI "\fBDisplayBestRoute\fP (eoPop< Route > &__pop)"
.br
.ti -1c
.RI "void \fBoperator()\fP ()"
@@ -22,7 +20,7 @@ Inherits \fBeoUpdater\fP.
.in +1c
.ti -1c
-.RI "\fBeoPop\fP< \fBRoute\fP > & \fBpop\fP"
+.RI "eoPop< Route > & \fBpop\fP"
.br
.in -1c
.SH "Detailed Description"
@@ -31,4 +29,4 @@ Definition at line 46 of file display_best_route.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/MergeRouteEval.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/MergeRouteEval.3
index 96d7907c5..2618ca4d9 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/MergeRouteEval.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/MergeRouteEval.3
@@ -1,4 +1,4 @@
-.TH "MergeRouteEval" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "MergeRouteEval" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -12,7 +12,7 @@ Inherits \fBpeoAggEvalFunc< EOT >< eoVector< int, Node > >\fP.
.in +1c
.ti -1c
-.RI "void \fBoperator()\fP (\fBRoute\fP &__route, const int &__part_fit)"
+.RI "void \fBoperator()\fP (Route &__route, const int &__part_fit)"
.br
.in -1c
.SH "Detailed Description"
@@ -21,4 +21,4 @@ Definition at line 44 of file merge_route_eval.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/ReactiveThread.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/ReactiveThread.3
index 8467f49d3..141010372 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/ReactiveThread.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/ReactiveThread.3
@@ -1,4 +1,4 @@
-.TH "ReactiveThread" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "ReactiveThread" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -32,8 +32,8 @@ Inherited by \fBCommunicator\fP, and \fBWorker\fP.
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 44 of file reac_thread.h.
+Definition at line 45 of file reac_thread.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/RingTopology.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/RingTopology.3
index a8d404156..a37a3e972 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/RingTopology.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/RingTopology.3
@@ -1,4 +1,4 @@
-.TH "RingTopology" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "RingTopology" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -21,4 +21,4 @@ Definition at line 42 of file ring_topo.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Runner.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Runner.3
index abdc983ec..fc253e478 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Runner.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Runner.3
@@ -1,4 +1,4 @@
-.TH "Runner" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Runner" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -8,7 +8,7 @@ Runner \-
.PP
Inherits \fBCommunicable\fP, and \fBThread\fP.
.PP
-Inherited by \fBpeoEA< EOT >\fP, and \fBpeoParallelAlgorithmWrapper\fP.
+Inherited by \fBpeoWrapper\fP.
.PP
.SS "Public Member Functions"
@@ -17,26 +17,38 @@ Inherited by \fBpeoEA< EOT >\fP, and \fBpeoParallelAlgorithmWrapper\fP.
.RI "\fBRunner\fP ()"
.br
.ti -1c
-.RI "void \fBstart\fP ()"
+.RI "RUNNER_ID \fBgetDefinitionID\fP ()"
+.br
+.ti -1c
+.RI "RUNNER_ID \fBgetExecutionID\fP ()"
+.br
+.ti -1c
+.RI "void \fBsetExecutionID\fP (const RUNNER_ID &execution_id)"
+.br
+.ti -1c
+.RI "bool \fBisAssignedLocally\fP ()"
.br
.ti -1c
.RI "void \fBwaitStarting\fP ()"
.br
.ti -1c
-.RI "bool \fBisLocal\fP ()"
+.RI "void \fBwaitContextInitialization\fP ()"
+.br
+.ti -1c
+.RI "void \fBstart\fP ()"
.br
.ti -1c
.RI "void \fBterminate\fP ()"
.br
.ti -1c
-.RI "RUNNER_ID \fBgetID\fP ()"
-.br
-.ti -1c
-.RI "void \fBpackTermination\fP ()"
+.RI "void \fBnotifyContextInitialized\fP ()"
.br
.ti -1c
.RI "void \fBnotifySendingTermination\fP ()"
.br
+.ti -1c
+.RI "void \fBpackTermination\fP ()"
+.br
.in -1c
.SS "Private Attributes"
@@ -45,13 +57,19 @@ Inherited by \fBpeoEA< EOT >\fP, and \fBpeoParallelAlgorithmWrapper\fP.
.RI "sem_t \fBsem_start\fP"
.br
.ti -1c
-.RI "unsigned \fBid\fP"
+.RI "sem_t \fBsem_cntxt\fP"
+.br
+.ti -1c
+.RI "unsigned \fBdef_id\fP"
+.br
+.ti -1c
+.RI "unsigned \fBexec_id\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 47 of file runner.h.
+Definition at line 49 of file runner.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/SEND_REQUEST.3
index de6fbfb17..eb0fbdce5 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/SEND_REQUEST.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/SEND_REQUEST.3
@@ -1,4 +1,4 @@
-.TH "SEND_REQUEST" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "SEND_REQUEST" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -21,8 +21,8 @@ SEND_REQUEST \-
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 52 of file send.cpp.
+Definition at line 53 of file send.cpp.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Service.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Service.3
index 242238f59..9ce7b8d2b 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Service.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Service.3
@@ -1,4 +1,4 @@
-.TH "Service" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Service" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -8,7 +8,7 @@ Service \-
.PP
Inherits \fBCommunicable\fP.
.PP
-Inherited by \fBpeoPopEval< EOT >\fP, \fBpeoPopEval< eoVector< int, Node > >\fP, \fBpeoSynchronousMultiStart< EntityType >\fP, \fBpeoSynchronousMultiStart< eoVector< int, Node > >\fP, \fBpeoSyncMultiStart< EOT >\fP, and \fBpeoTransform< EOT >\fP.
+Inherited by \fBpeoMoeoPopEval< EOT >\fP, \fBpeoMultiStart< EntityType >\fP, \fBpeoPopEval< EOT >\fP, \fBpeoPopEval< eoRealParticle< double > >\fP, and \fBpeoTransform< EOT >\fP.
.PP
.SS "Public Member Functions"
@@ -62,8 +62,8 @@ Inherited by \fBpeoPopEval< EOT >\fP, \fBpeoPopEval< eoVector< int, Node > >\fP,
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 45 of file service.h.
+Definition at line 46 of file service.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Thread.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Thread.3
index 668641367..77fb726c7 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Thread.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Thread.3
@@ -1,4 +1,4 @@
-.TH "Thread" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Thread" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -37,4 +37,4 @@ Definition at line 44 of file thread.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Topology.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Topology.3
index 5d4e939ee..c122be80c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Topology.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Topology.3
@@ -1,4 +1,4 @@
-.TH "Topology" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Topology" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -6,7 +6,7 @@ Topology \-
.SH SYNOPSIS
.br
.PP
-Inherited by \fBRingTopology\fP.
+Inherited by \fBCompleteTopology\fP, \fBRandomTopology\fP, \fBRingTopology\fP, and \fBStarTopology\fP.
.PP
.SS "Public Member Functions"
@@ -17,6 +17,9 @@ Inherited by \fBRingTopology\fP.
.ti -1c
.RI "void \fBadd\fP (\fBCooperative\fP &__mig)"
.br
+.ti -1c
+.RI "\fBoperator std::vector\fP ()"
+.br
.in -1c
.SS "Protected Attributes"
@@ -31,4 +34,4 @@ Definition at line 44 of file topology.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Worker.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Worker.3
index 2327bb56a..6ee4b7e1c 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/Worker.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/Worker.3
@@ -1,4 +1,4 @@
-.TH "Worker" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "Worker" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -52,13 +52,22 @@ Inherits \fBCommunicable\fP, and \fBReactiveThread\fP.
.RI "int \fBsrc\fP"
.br
.ti -1c
-.RI "bool \fBtoto\fP"
+.RI "bool \fBrecvAndCompleted\fP"
+.br
+.ti -1c
+.RI "unsigned \fBtaskAssigned\fP"
+.br
+.ti -1c
+.RI "sem_t \fBsem_task_done\fP"
+.br
+.ti -1c
+.RI "sem_t \fBsem_task_asgn\fP"
.br
.in -1c
.SH "Detailed Description"
.PP
-Definition at line 46 of file worker.h.
+Definition at line 47 of file worker.h.
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/peo.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/peo.3
index ed1fecf92..0919c3745 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/peo.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/peo.3
@@ -1,4 +1,4 @@
-.TH "peo" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "peo" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -40,4 +40,4 @@ peo \-
.in -1c
.SH "Author"
.PP
-Generated automatically by Doxygen for ParadisEO-PEOMovingObjects from the source code.
+Generated automatically by Doxygen for ParadisEO-PEO-ParallelanddistributedEvolvingObjects from the source code.
diff --git a/tags/dummy-tag/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 b/tags/dummy-tag/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3
index 4109b0e40..a499701f0 100644
--- a/tags/dummy-tag/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3
+++ b/tags/dummy-tag/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3
@@ -1,4 +1,4 @@
-.TH "peoAggEvalFunc" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*-
+.TH "peoAggEvalFunc" 3 "29 Feb 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*-
.ad l
.nh
.SH NAME
@@ -10,8 +10,6 @@ peoAggEvalFunc \- The \fBpeoAggEvalFunc\fP class offers only the interface for c
.PP
\fC#include