diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/README-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/README-source.html index 4aa422480..59bd58a8c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/README-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/README-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: README Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: README Source File @@ -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 -
Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +00075 +00076 Mailing list : paradiseo-help@lists.gforge.inria.fr +
Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/annotated.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/annotated.html index 8bbde05d0..5c449762d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/annotated.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/annotated.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class List @@ -29,47 +29,73 @@
  • Class Hierarchy
  • Class Members
  • -

    ParadisEO-PEOMovingObjects Class List

    Here are the classes, structs, unions and interfaces with brief descriptions: +

    ParadisEO-PEO-ParallelanddistributedEvolvingObjects Class List

    Here are the classes, structs, unions and interfaces with brief descriptions:
    + + + + + + + + + + + + + - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + +
    Algorithm
    CitySwapIts swaps two vertices randomly choosen
    Communicable
    Communicator
    CompleteTopology
    continuatorAbstract class for a continuator within the exchange of data by migration
    Cooperative
    DisplayBestRoute
    EdgeXoverEdge 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
    eoSyncContinueClass for a continuator within the exchange of data by synchrone migration
    MergeRouteEval
    MPIThreadedEnv
    OrderXoverOrder Crossover
    PartialMappedXoverPartial Mapped Crossover
    PartRouteEvalRoute 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
    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
    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
    peoWrapperSpecific 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
    -
    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8cpp-source.html index cae89d871..c15373d4e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: city_swap.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: city_swap.cpp Source File @@ -22,7 +22,7 @@ -

    city_swap.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8h-source.html index 4b77e3b33..ec8c18bf8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/city__swap_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: city_swap.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: city_swap.h Source File @@ -22,7 +22,7 @@ -

    city_swap.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable-members.html index 09c8fb595..f3ac6eb7c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -34,14 +34,14 @@ getKey()Communicable keyCommunicable [protected] lock()Communicable - num_commCommunicable [protected, static] + num_commCommunicable [static] resume()Communicable sem_lockCommunicable [protected] sem_stopCommunicable [protected] stop()Communicable unlock()Communicable ~Communicable()Communicable [virtual] -
    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:43 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable.html index a9090f07e..b7b2cf7e4 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classCommunicable.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Communicable Class Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Communicable Class Reference @@ -32,18 +32,16 @@

    Communicable Class Reference

    Inheritance diagram for Communicable:

    -Cooperative -Runner -Service -Worker -peoAsyncIslandMig< EOT > -peoSyncIslandMig< EOT > -peoEA< EOT > -peoParallelAlgorithmWrapper -peoPopEval< EOT > -peoSynchronousMultiStart< EntityType > -peoSyncMultiStart< EOT > -peoTransform< EOT > +Cooperative +Runner +Service +Worker +peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > +peoSyncIslandMig< TYPESELECT, TYPEREPLACE > +peoWrapper +peoMultiStart< EntityType > +peoPopEval< EOT > +peoTransform< EOT > List of all members. @@ -69,6 +67,10 @@ void  + + + @@ -79,19 +81,15 @@ sem_t  - - -
    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

    Detailed Description

    -Definition at line 44 of file communicable.h.


    The documentation for this class was generated from the following files: -

    peoAsyncIslandMig< EOT > Class Template Reference

    The peoAsyncIslandMig class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +

    peoAsyncIslandMig< TYPESELECT, TYPEREPLACE > Class Template Reference

    Specific class for a asynchronous migration. More...

    #include <peoAsyncIslandMig.h>

    -

    Inheritance diagram for peoAsyncIslandMig< EOT >: -

    - -Cooperative -eoUpdater -Communicable -eoF< void > -eoFunctorBase +

    Inheritance diagram for peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >: +

    + +Cooperative +eoUpdater +Communicable +eoF< void > +eoFunctorBase List of all members. - + - - + + - - + + - - + + - + + + + - + - + + + - + - + - + - + - + - + - - - - - +

    Public Member Functions

     peoAsyncIslandMig (eoContinue< EOT > &__cont, eoSelect< EOT > &__select, eoReplacement< EOT > &__replace, Topology &__topology, eoPop< EOT > &__source, eoPop< EOT > &__destination)
     peoAsyncIslandMig (continuator &__cont, selector< TYPESELECT > &__select, replacement< TYPEREPLACE > &__replace, Topology &__topology)
     Constructor for the peoAsyncIslandMig 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() ()
     Constructor.
    +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.
     Function reconstituting packages.
    +void packSynchronizeReq ()
     Function packSynchronizeReq.

    Private Member Functions

    -void emigrate ()
    +void emigrate ()
    -void immigrate ()
     Function which sends some emigrants.
    +void immigrate ()
     Function which receives some immigrants.

    Private Attributes

    -eoContinue< EOT > & cont
    continuatorcont
    -eoSelect< EOT > & select
    +selector< TYPESELECT > & select
    -eoReplacement< EOT > & replace
    +replacement< TYPEREPLACE > & replace
    -Topologytopology
    +Topologytopology
    -eoPop< EOT > & source
    +std::queue< TYPEREPLACE > imm
    -eoPop< EOT > & destination
    +std::queue< TYPESELECT > em
    -std::queue< eoPop< EOT > > imm
    -std::queue< eoPop< EOT > > em
    -std::queue< Cooperative * > coop_em
    +std::queue< Cooperative * > coop_em

    Detailed Description

    -

    template<class EOT>
    - class peoAsyncIslandMig< EOT >

    +

    template<class TYPESELECT, class TYPEREPLACE>
    + class peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >

    -The peoAsyncIslandMig 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:

    - - - - - - - - - - - - - -
    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 offsprings
             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 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 Runner class (for example a peoEA object represents a possible owner). A simple example is offered bellow:

    -

      -
    1. -topological model to be followed when performing migrations:
      -
      - - - -
      RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
      -

      -

    2. -
    3. -the continuation criterion, selection and replacement strategy etc. are defined:
      -
      - - - - - - - - - - - - - - - - - -
      eoPop< EOT > population( POP_SIZE, popInitializer );   // population of individuals to be used for the evolutionary algorithm
         
      eoPeriodicContinue< EOT > migCont( MIG_FREQ );   // migrations occur periodically at MIG_FREQ iterations
      eoRandomSelect< EOT > migSelectStrategy;   // selection strategy - in this case a random selection is applied
      eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE );   // number of individuals to be selected using the specified strategy
      eoPlusReplacement< EOT > migReplace;   // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals
         
      peoAsyncIslandMig< EOT > asyncMigration(
      -          migCont, migSelect, migReplace, migTopology,
      -          population, population
      - );  
      // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated
      -

      -

    4. -
    5. -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):
      -
      - - - - - - - - - - - - - -
      ...    
      eoGenContinue< EOT > eaCont( NUM_GEN );   // the evolutionary algorithm will stop after NUM_GEN generations
      eoCheckPoint< EOT > eaCheckpointContinue( eaCont );   // number of individuals to be selected using the specified strategy
      ...    
      eaCheckpointContinue.add( asyncMigration );   // adding the migration operator as checkpoint element
      ...    
      -

      -

    6. -
    7. -definition of an owner evolutionary algorithm (an object inheriting the Runner class):
      -
      - - - - - - - -
      peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace);   // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above
      asyncMigration.setOwner( eaAlg );   // setting the evolutionary algorithm as owner of the migration object
      eaAlg( population );   // applying the evolutionary algorithm on a given population
      -
    8. -
    -

    -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++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). +

    See also:
    Cooperative eoUpdater
    +
    Version:
    2.0
    +
    Date:
    january 2008
    +

    -Definition at line 140 of file peoAsyncIslandMig.h.


    Constructor & Destructor Documentation

    - +Definition at line 64 of file peoAsyncIslandMig.h.

    Constructor & Destructor Documentation

    +
    -template<class EOT>
    +template<class TYPESELECT, class TYPEREPLACE>
    - + - + - + - + - - - - - - - - - - - - - + @@ -247,58 +150,59 @@ template<class EOT>

    -Constructor for the peoAsyncIslandMig 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. +Constructor.

    Parameters:
    peoAsyncIslandMig< EOT >::peoAsyncIslandMig peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >::peoAsyncIslandMig (eoContinue< EOT > & continuator __cont,
    eoSelect< EOT > & selector< TYPESELECT > &  __select,
    eoReplacement< EOT > & replacement< TYPEREPLACE > &  __replace,
    Topology __topology,
    eoPop< EOT > &  __source,
    eoPop< EOT > &  __destination  __topology 
    - - - - - - + + + +
    eoContinue< EOT >& __cont - continuation criterion specifying whether the migration is performed or not;
    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.
    continuator & __cont
    selector <TYPE> & __select
    replacement <TYPE> & __replace
    Topology& __topology

    -Definition at line 199 of file peoAsyncIslandMig.h. +Definition at line 114 of file peoAsyncIslandMig.h.

    -References Topology::add(). +References Topology::add().

    -


    Member Function Documentation

    - +

    Member Data Documentation

    +
    -template<class EOT>
    +template<class TYPESELECT, class TYPEREPLACE>
    - - - - - +
    void peoAsyncIslandMig< EOT >::operator() (  )  [virtual]continuator& peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >::cont [private]

    -Function operator to be called as checkpoint for performing the migration step. +

    Parameters:
    + + + + + + + + +
    continuator & cont
    selector <TYPESELECT> & select
    replacement <TYPEREPLACE> & replace
    Topology& topology
    std :: queue< TYPEREPLACE > imm
    std :: queue< TYPESELECT > em
    std :: queue< Cooperative* > coop_em
    +
    +

    -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 104 of file peoAsyncIslandMig.h.

    -Implements eoF< void >. -

    -Definition at line 276 of file peoAsyncIslandMig.h. -

    -References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. +Referenced by peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >::operator()().


    The documentation for this class was generated from the following file: -
    Generated on Mon Oct 8 11:16:47 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:44 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png index 3a59d02e1..fd454a8b2 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png and b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoAsyncIslandMig.png differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html index 02f4c5c2b..1ab4fc13d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -35,7 +35,7 @@ peoAggEvalFunc::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual] ~eoBF()eoBF< A1, A2, R > [virtual] ~eoFunctorBase()eoFunctorBase [virtual] -
    Generated on Mon Oct 8 11:16:47 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:45 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html index e7abd2ce1..f496bdc5e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoNoAggEvalFunc.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoNoAggEvalFunc< EOT > Class Template Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoNoAggEvalFunc< EOT > Class Template Reference @@ -44,10 +44,9 @@ List of all members. - + - +

    Public Member Functions

    -void operator() (EOT &__sol, const typename EOT::Fitness &__fit)
    void operator() (EOT &__sol, const typename EOT::Fitness &__fit)
     Operator which sets as fitness the __fit value for the __sol individual.
     Operator which sets as fitness the __fit value for the __sol individual.

    Detailed Description

    template<class EOT>
    @@ -59,9 +58,51 @@ The class is provided as a mean of declaring that no aggregation is required for

    -Definition at line 47 of file peoNoAggEvalFunc.h.


    The documentation for this class was generated from the following file:
      +Definition at line 47 of file peoNoAggEvalFunc.h.

      Member Function Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + + + + + + + + + + + + + + + +
      void peoNoAggEvalFunc< EOT >::operator() (EOT &  __sol,
      const typename EOT::Fitness &  __fit 
      )
      +
      +
      + +

      +Operator which sets as fitness the __fit value for the __sol individual. +

      +

      Parameters:
      + + + +
      EOT& __sol
      typename EOT :: Fitness& __fit
      +
      + +

      +Definition at line 59 of file peoNoAggEvalFunc.h. +

      +

      +


      The documentation for this class was generated from the following file: -
      Generated on Mon Oct 8 11:16:47 2007 for ParadisEO-PEOMovingObjects by  +
      Generated on Wed Mar 12 15:23:45 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
      diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval-members.html index d233f1ae2..6a8429af1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -30,31 +30,48 @@
    • Class Members

    peoPopEval< EOT > Member List

    This is the complete list of members for peoPopEval< EOT >, including all inherited members.

    + - + + + - - + + + + - - - + + + + + + + - + + + + + + + - - + + -
    ad_solpeoPopEval< EOT > [private]
    Communicable()Communicable
    execute()Service [virtual]
    execute()peoPopEval< EOT > [virtual]
    funcspeoPopEval< EOT > [private]
    functor_category()eoBF< A1, A2, R > [static]
    getKey()Communicable
    getOwner()Service
    keyCommunicable [protected]
    lock()Communicable
    notifySendingAllResourceRequests()Service [virtual]
    notifySendingData()Service [virtual]
    merge_evalpeoPopEval< EOT > [private]
    no_merge_evalpeoPopEval< EOT > [private]
    notifySendingAllResourceRequests()peoPopEval< EOT > [virtual]
    notifySendingData()peoPopEval< EOT > [virtual]
    notifySendingResourceRequest()Service [virtual]
    num_commCommunicable [protected, static]
    operator()(eoPop< EOT > &__pop)=0peoPopEval< EOT > [pure virtual]
    packData()Service [virtual]
    num_commCommunicable [static]
    num_funcpeoPopEval< EOT > [private]
    one_funcpeoPopEval< EOT > [private]
    operator()(eoPop< EOT > &__pop)peoPopEval< EOT >
    operator()(eoPop< EOT > &__dummy, eoPop< EOT > &__pop)peoPopEval< EOT >
    eoPopEvalFunc::operator()(A1, A2)=0eoBF< A1, A2, R > [pure virtual]
    packData()peoPopEval< EOT > [virtual]
    packResourceRequest()Service
    packResult()Service [virtual]
    packResult()peoPopEval< EOT > [virtual]
    peoPopEval(eoEvalFunc< EOT > &__eval_func)peoPopEval< EOT >
    peoPopEval(const std::vector< eoEvalFunc< EOT > * > &__funcs, peoAggEvalFunc< EOT > &__merge_eval)peoPopEval< EOT >
    progressionpeoPopEval< EOT > [private]
    requestResourceRequest(unsigned __how_many=1)Service
    resume()Communicable
    sem_lockCommunicable [protected]
    sem_stopCommunicable [protected]
    setOwner(Thread &__owner)Service
    solpeoPopEval< EOT > [private]
    stop()Communicable
    taskspeoPopEval< EOT > [private]
    totalpeoPopEval< EOT > [private]
    unlock()Communicable
    unpackData()Service [virtual]
    unpackResult()Service [virtual]
    unpackData()peoPopEval< EOT > [virtual]
    unpackResult()peoPopEval< EOT > [virtual]
    ~Communicable()Communicable [virtual]


    Generated on Mon Oct 8 11:16:48 2007 for ParadisEO-PEOMovingObjects by  + ~eoBF()eoBF< A1, A2, R > [virtual] + ~eoFunctorBase()eoFunctorBase [virtual] +
    Generated on Wed Mar 12 15:23:45 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.html index f7509c195..e5ea96a83 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoPopEval< EOT > Class Template Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoPopEval< EOT > Class Template Reference @@ -29,7 +29,7 @@
  • Class Hierarchy
  • Class Members
  • -

    peoPopEval< EOT > Class Template Reference

    The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +

    peoPopEval< EOT > Class Template Reference

    Parallel evaluation functor wrapper. More...

    #include <peoPopEval.h> @@ -37,32 +37,460 @@

    Inheritance diagram for peoPopEval< EOT >:

    -Service -Communicable -peoParaPopEval< EOT > -peoSeqPopEval< EOT > +Service +eoPopEvalFunc< EOT > +Communicable +eoBF< A1, A2, R > +eoFunctorBase List of all members. - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -

    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)
     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.

    Detailed Description

    template<class EOT>
    class peoPopEval< EOT >

    -The peoPopEval class provides the interface for constructing ParadisEO specific evaluation functors. +Parallel evaluation functor wrapper.

    -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. +

    See also:
    Service eoPopEvalFunc
    +
    Version:
    1.2
    +
    Date:
    2006
    +

    -Definition at line 47 of file peoPopEval.h.


    The documentation for this class was generated from the following file:
      +Definition at line 53 of file peoPopEval.h.

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + + + + + + +
      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. +

      +

      Parameters:
      + + +
      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. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + + + + + + + + + + + +
      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. +

      +

      Parameters:
      + + + +
      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. +

      +

      +


      Member Function Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + + + + + + +
      void peoPopEval< EOT >::operator() (eoPop< EOT > &  __pop  ) 
      +
      +
      + +

      +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +

      +

      Parameters:
      + + +
      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()(). +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + + + + + + + + + + + +
      void peoPopEval< EOT >::operator() (eoPop< EOT > &  __dummy,
      eoPop< EOT > &  __pop 
      )
      +
      +
      + +

      +Operator ()( eoPop< EOT >& __dummy, eoPop< EOT >& __pop ). +

      +

      Parameters:
      + + + +
      eoPop< EOT >& __dummy
      eoPop< EOT >& __pop
      +
      + +

      +Definition at line 149 of file peoPopEval.h. +

      +References peoPopEval< EOT >::operator()(). +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 176 of file peoPopEval.h. +

      +References peoPopEval< EOT >::progression, and peoPopEval< EOT >::tasks. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 190 of file peoPopEval.h. +

      +References peoPopEval< EOT >::ad_sol, peoPopEval< EOT >::num_func, and peoPopEval< EOT >::sol. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 208 of file peoPopEval.h. +

      +References peoPopEval< EOT >::ad_sol, and peoPopEval< EOT >::sol. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 217 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. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 250 of file peoPopEval.h. +

      +

      + +

      +
      +
      +template<class EOT>
      + + + + + + + + +
      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 254 of file peoPopEval.h. +

      +References Service::getOwner(), and Thread::setPassive(). +

      +

      +


      Member Data Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + +
      const std :: vector< eoEvalFunc < EOT >* >& peoPopEval< EOT >::funcs [private]
      +
      +
      + +

      +

      Parameters:
      + + + + + + + + + + + +
      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()(). +

      +

      +


      The documentation for this class was generated from the following file: -
      Generated on Mon Oct 8 11:16:48 2007 for ParadisEO-PEOMovingObjects by  +
      Generated on Wed Mar 12 15:23:45 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
      diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.png b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.png index 100bbb770..51bf828a5 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.png and b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoPopEval.png differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html index f2cb522e3..f244d1999 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -29,46 +29,55 @@
    • Class Hierarchy
    • Class Members
    -

    peoSyncIslandMig< EOT > Member List

    This is the complete list of members for peoSyncIslandMig< EOT >, including all inherited members.

    +

    peoSyncIslandMig< TYPESELECT, TYPEREPLACE > Member List

    This is the complete list of members for peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, including all inherited members.

    + - - - - - + + + + + - - + + + - - - - - - + + + + + + + + + + + + - + - + - - + + + - + -
    addTo(eoCheckPoint< EOT > &cp)eoUpdater
    allpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    className(void) const eoUpdater [virtual]
    Communicable()Communicable
    contpeoSyncIslandMig< EOT > [private]
    coop_empeoSyncIslandMig< EOT > [private]
    destinationpeoSyncIslandMig< EOT > [private]
    empeoSyncIslandMig< EOT > [private]
    emigrate()peoSyncIslandMig< EOT > [private]
    contpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    coop_empeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    empeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    emigrate()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    explicitPassivepeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    functor_category()eoF< void > [static]
    getKey()Communicable
    getOwner()Cooperative
    immpeoSyncIslandMig< EOT > [private]
    immigrate()peoSyncIslandMig< EOT > [private]
    immpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    immigrate()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    inpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    keyCommunicable [protected]
    lastCall()eoUpdater [virtual]
    lock()Communicable
    notifySending()peoSyncIslandMig< EOT > [virtual]
    num_commCommunicable [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 >
    replacepeoSyncIslandMig< EOT > [private]
    nbMigrationspeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    notifyReceiving()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    notifySending()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    notifySendingSyncReq()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    notifySynchronized()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    num_commCommunicable [static]
    operator()()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    outpeoSyncIslandMig< 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 >
    replacepeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    result_type typedefeoF< void >
    resume()Communicable
    selectpeoSyncIslandMig< EOT > [private]
    selectpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    sem_lockCommunicable [protected]
    sem_stopCommunicable [protected]
    send(Cooperative *__coop)Cooperative
    setOwner(Runner &__runner)Cooperative
    sourcepeoSyncIslandMig< EOT > [private]
    standbyMigrationpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    stop()Communicable
    syncpeoSyncIslandMig< EOT > [private]
    topologypeoSyncIslandMig< EOT > [private]
    syncpeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    synchronizeCoopEx()Cooperative
    topologypeoSyncIslandMig< TYPESELECT, TYPEREPLACE > [private]
    unlock()Communicable
    unpack()peoSyncIslandMig< EOT > [virtual]
    unpack()peoSyncIslandMig< TYPESELECT, TYPEREPLACE > [virtual]
    ~Communicable()Communicable [virtual]
    ~eoF()eoF< void > [virtual]
    ~eoFunctorBase()eoFunctorBase [virtual]


    Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:46 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.html index edd7ebfca..620de497d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoSyncIslandMig< EOT > Class Template Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoSyncIslandMig< TYPESELECT, TYPEREPLACE > Class Template Reference @@ -29,185 +29,130 @@
  • Class Hierarchy
  • Class Members
  • -

    peoSyncIslandMig< EOT > Class Template Reference

    The peoSyncIslandMig class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +

    peoSyncIslandMig< TYPESELECT, TYPEREPLACE > Class Template Reference

    Specific class for a synchronous migration. More...

    #include <peoSyncIslandMig.h>

    -

    Inheritance diagram for peoSyncIslandMig< EOT >: -

    - -Cooperative -eoUpdater -Communicable -eoF< void > -eoFunctorBase +

    Inheritance diagram for peoSyncIslandMig< TYPESELECT, TYPEREPLACE >: +

    + +Cooperative +eoUpdater +Communicable +eoF< void > +eoFunctorBase List of all members. - + - - + + - - + + - - + + - - + + - + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + +

    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() ()
     Constructor.
    +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
    -Topologytopology
    +Topologytopology
    -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

    Detailed Description

    -

    template<class EOT>
    - class peoSyncIslandMig< EOT >

    +

    template<class TYPESELECT, class TYPEREPLACE>
    + class peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    -The peoSyncIslandMig 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:

    - - - - - - - - - - - - - -
    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:

    -

      -
    1. -topological model to be followed when performing migrations:
      -
      - - - -
      RingTopology migTopology;   // a simple ring topological model - each island communicates with two other islands
      -

      -

    2. -
    3. -the continuation criterion, selection and replacement strategy etc. are defined:
      -
      - - - - - - - - - - - - - - - -
      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
      -

      -

    4. -
    5. -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):
      -
      - - - - - - - - - - - - - -
      ...    
      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
      ...    
      -

      -

    6. -
    7. -definition of an owner evolutionary algorithm (an object inheriting the Runner class):
      -
      - - - - - - - -
      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
      -
    8. -
    -

    -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). +

    See also:
    Cooperative eoUpdater
    +
    Version:
    2.0
    +
    Date:
    january 2008
    +

    -Definition at line 142 of file peoSyncIslandMig.h.


    Constructor & Destructor Documentation

    - +Definition at line 71 of file peoSyncIslandMig.h.

    Constructor & Destructor Documentation

    +
    -template<class EOT>
    +template<class TYPESELECT, class TYPEREPLACE>
    - + @@ -215,32 +160,20 @@ template<class EOT> - + - + - - - - - - - - - - - - - + @@ -252,58 +185,64 @@ template<class EOT>

    -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. +Constructor.

    Parameters:
    peoSyncIslandMig< EOT >::peoSyncIslandMig peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::peoSyncIslandMig ( unsigned  __frequency,
    eoSelect< EOT > & selector< TYPESELECT > &  __select,
    eoReplacement< EOT > & replacement< TYPEREPLACE > &  __replace,
    Topology __topology,
    eoPop< EOT > &  __source,
    eoPop< EOT > &  __destination  __topology 
    - - - - - - + + + +
    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.

    -


    Member Function Documentation

    - +

    Member Data Documentation

    +
    -template<class EOT>
    +template<class TYPESELECT, class TYPEREPLACE>
    - - - - - +
    void peoSyncIslandMig< EOT >::operator() (  )  [virtual]eoSyncContinue peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::cont [private]

    -Function operator to be called as checkpoint for performing the migration step. +

    Parameters:
    + + + + + + + + + + + + + +
    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()().


    The documentation for this class was generated from the following file: -
    Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:46 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.png b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.png index 6a1b7c227..5d32a2f80 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.png and b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoSyncIslandMig.png differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform-members.html index a1a2a4231..94d371942 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -31,20 +31,31 @@

    peoTransform< EOT > Member List

    This is the complete list of members for peoTransform< EOT >, including all inherited members.

    - + + + + + - - + + + + + - - - + + + + + - + + + @@ -52,12 +63,12 @@ - - + + -
    Communicable()Communicable
    execute()Service [virtual]
    crosspeoTransform< EOT > [private]
    cross_ratepeoTransform< EOT > [private]
    execute()peoTransform< EOT > [virtual]
    fatherpeoTransform< EOT > [private]
    functor_category()eoUF< A1, R > [static]
    getKey()Communicable
    getOwner()Service
    idxpeoTransform< EOT > [private]
    keyCommunicable [protected]
    lock()Communicable
    notifySendingAllResourceRequests()Service [virtual]
    notifySendingData()Service [virtual]
    motherpeoTransform< EOT > [private]
    mutpeoTransform< EOT > [private]
    mut_ratepeoTransform< EOT > [private]
    notifySendingAllResourceRequests()peoTransform< EOT > [virtual]
    notifySendingData()peoTransform< EOT > [virtual]
    notifySendingResourceRequest()Service [virtual]
    num_commCommunicable [protected, static]
    operator()(A1)=0eoUF< A1, R > [pure virtual]
    packData()Service [virtual]
    num_commCommunicable [static]
    num_termpeoTransform< EOT > [private]
    operator()(eoPop< EOT > &__pop)peoTransform< EOT >
    eoTransform::operator()(A1)=0eoUF< A1, R > [pure virtual]
    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 >
    poppeoTransform< EOT > [private]
    requestResourceRequest(unsigned __how_many=1)Service
    resume()Communicable
    sem_lockCommunicable [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]


    Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:46 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.html index f5abe2875..c8f40581a 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoTransform< EOT > Class Template Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoTransform< EOT > Class Template Reference @@ -29,7 +29,7 @@
  • Class Hierarchy
  • Class Members
  • -

    peoTransform< EOT > Class Template Reference

    The peoTransform class acts only as an interface for creating transform operators - for an example please refer to the peoSeqTransform and the peoParaSGATransform classes. +

    peoTransform< EOT > Class Template Reference

    Class for a parallel transform. More...

    #include <peoTransform.h> @@ -37,28 +37,218 @@

    Inheritance diagram for peoTransform< EOT >:

    -Service -eoTransform< EOT > -Communicable -eoUF< A1, R > -eoFunctorBase -peoParaSGATransform< EOT > -peoSeqTransform< EOT > +Service +eoTransform< EOT > +Communicable +eoUF< A1, R > +eoFunctorBase List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    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

    Detailed Description

    template<class EOT>
    class 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. +Class for a parallel transform. +

    +

    See also:
    Service eoTransform
    +
    Version:
    1.1
    +
    Date:
    january 2008
    +

    -Definition at line 48 of file peoTransform.h.


    The documentation for this class was generated from the following file:
      +Definition at line 53 of file peoTransform.h.

      Constructor & Destructor Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      peoTransform< EOT >::peoTransform (eoQuadOp< EOT > &  __cross,
      double  __cross_rate,
      eoMonOp< EOT > &  __mut,
      double  __mut_rate 
      )
      +
      +
      + +

      +Constructor. +

      +

      Parameters:
      + + + + + +
      eoQuadOp< EOT >& __cross
      double __cross_rate
      eoMonOp< EOT >& __mut
      double __mut_rate
      +
      + +

      +Definition at line 108 of file peoTransform.h. +

      +

      +


      Member Function Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + + + + + + +
      void peoTransform< EOT >::operator() (eoPop< EOT > &  __pop  ) 
      +
      +
      + +

      +Operator. +

      +

      Parameters:
      + + +
      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(). +

      +

      +


      Member Data Documentation

      + +
      +
      +
      +template<class EOT>
      + + + + +
      eoQuadOp< EOT >& peoTransform< EOT >::cross [private]
      +
      +
      + +

      +

      Parameters:
      + + + + + + + + + + +
      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(). +

      +

      +


      The documentation for this class was generated from the following file: -
      Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
      Generated on Wed Mar 12 15:23:46 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
      diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.png b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.png index d762a43a5..0c2154bcb 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.png and b/tags/paradiseo-1.1/paradiseo-peo/doc/html/classpeoTransform.png differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8cpp-source.html index d9118ed38..3e9a1366b 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: comm.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: comm.cpp Source File @@ -22,12 +22,12 @@
    -

    comm.cpp

    00001 /* 
    +

    comm.cpp

    00001 /*
     00002 * <comm.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8h-source.html index 4829f60ac..e2a99b4bb 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/comm_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: comm.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: comm.h Source File @@ -22,12 +22,12 @@ -

    comm.h

    00001 /* 
    +

    comm.h

    00001 /*
     00002 * <comm.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8cpp-source.html index 3aa2cf96a..5967eca70 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: communicable.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: communicable.cpp Source File @@ -22,12 +22,12 @@ -

    communicable.cpp

    00001 /* 
    +

    communicable.cpp

    00001 /*
     00002 * <communicable.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8h-source.html index f625215d2..b4945c4cd 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/communicable_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: communicable.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: communicable.h Source File @@ -22,12 +22,12 @@ -

    communicable.h

    00001 /* 
    +

    communicable.h

    00001 /*
     00002 * <communicable.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/cooperative_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/cooperative_8h-source.html index aedb3ed27..0cf338e05 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/cooperative_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/cooperative_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: cooperative.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: cooperative.h Source File @@ -22,12 +22,12 @@ -

    cooperative.h

    00001 /* 
    +

    cooperative.h

    00001 /*
     00002 * <cooperative.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2runner_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2runner_8cpp-source.html index 5cc7127ca..23233ac55 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2runner_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2runner_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: runner.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: runner.cpp Source File @@ -22,12 +22,12 @@ -

    runner.cpp

    00001 /* 
    +

    runner.cpp

    00001 /*
     00002 * <runner.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2service_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2service_8cpp-source.html index f9385b2e8..0519f6482 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2service_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/core_2service_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: service.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: service.cpp Source File @@ -22,12 +22,12 @@ -

    service.cpp

    00001 /* 
    +

    service.cpp

    00001 /*
     00002 * <service.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 {} +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8cpp-source.html index 47c771d78..c87d2da11 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: data.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: data.cpp Source File @@ -22,7 +22,7 @@ -

    data.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8h-source.html index 88fa11847..b0754c9c1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/data_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: data.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: data.h Source File @@ -22,7 +22,7 @@ -

    data.h

    00001 /* 
    +

    data.h

    00001 /*
     00002 * <data.h>
     00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
     00004 * (C) OPAC Team, LIFL, 2002-2007
    @@ -68,7 +68,7 @@
     00044 extern void loadData (eoParser & __parser);
     00045 
     00046 #endif
    -

    Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8cpp-source.html index 782dc66f4..84bc201c7 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: display.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: display.cpp Source File @@ -22,7 +22,7 @@ -

    display.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8h-source.html index ff79c926d..05c3eec2a 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: display.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: display.h Source File @@ -22,7 +22,7 @@ -

    display.h

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8cpp-source.html index 3e1c1f630..1e3a22657 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: display_best_route.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: display_best_route.cpp Source File @@ -22,7 +22,7 @@ -

    display_best_route.cpp

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8h-source.html index 41d920518..17178e80c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/display__best__route_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: display_best_route.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: display_best_route.h Source File @@ -22,7 +22,7 @@ -

    display_best_route.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8cpp-source.html index 2741022d3..4c9c90912 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: edge_xover.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: edge_xover.cpp Source File @@ -22,7 +22,7 @@ -

    edge_xover.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8h-source.html index 97da77c21..79bb0355d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/edge__xover_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: edge_xover.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: edge_xover.h Source File @@ -22,7 +22,7 @@ -

    edge_xover.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/files.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/files.html index dcdc3a4dd..43376a023 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/files.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/files.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: File Index +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: File Index @@ -22,14 +22,16 @@ -

    ParadisEO-PEOMovingObjects File List

    Here is a list of all documented files with brief descriptions: +

    ParadisEO-PEO-ParallelanddistributedEvolvingObjects File List

    Here is a list of all documented files with brief descriptions:
    - + + + @@ -37,20 +39,16 @@ - - - - - - - - - - - - + + + + + + + + @@ -86,18 +84,17 @@ - + + + - - - - - - + - + + + @@ -125,7 +122,20 @@ - + + + + + + + + + + + + + + @@ -146,7 +156,7 @@
    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]
    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]
    -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions.html index 2173748ff..571f37fc6 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members @@ -34,11 +34,14 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • @@ -63,182 +67,240 @@

    Here is a list of all documented class members with links to the class documentation for each member:

    +

    - _ -

    - a -

    +: peoPopEval< EOT >
  • add() +: Topology
  • add_vertex() +: EdgeXover
  • aggregationAlgorithm +: peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
  • AggregationAlgorithm() +: peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
  • aggregationFunction +: peoMultiStart< EntityType >
  • algorithm +: peoWrapper, peoWrapper::Algorithm< AlgorithmType, void >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >, peoMultiStart< EntityType >::Algorithm< AlgorithmType >
  • Algorithm() +: Algorithm, peoWrapper::Algorithm< AlgorithmType, void >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >, peoMultiStart< EntityType >::Algorithm< AlgorithmType >
  • algorithmData +: peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
  • algorithms +: peoMultiStart< EntityType >
  • all +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE > +

    - b -

    - c -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, eoContinuator< EOT >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • coop +: SyncEntry
  • coop_em +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • counter +: eoSyncContinue
  • cross +: OrderXover, EdgeXover, peoTransform< EOT >
  • cross_rate +: peoTransform< EOT >

    - d -

    - e -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • emigrate() +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • entityTypeInstance +: peoMultiStart< EntityType >
  • eoContinuator() +: eoContinuator< EOT >
  • eoReplace() +: eoReplace< EOT, TYPE >
  • eoSelector() +: eoSelector< EOT, TYPE >
  • eoSyncContinue() +: eoSyncContinue
  • eval +: Algorithm
  • evalFunc +: peoEvalFunc< EOT, FitT, FunctionArg >
  • exec_id +: Runner
  • execute() +: peoTransform< EOT >, peoPopEval< EOT >, peoMultiStart< EntityType >, Service
  • explicitPassive +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    - f -

    +: peoTransform< EOT >
  • finalize() +: MPIThreadedEnv
  • Fitness +: peoPSOSelect< POT >
  • from +: PartRouteEval
  • funcs +: peoPopEval< EOT >
  • FunctionAlgorithm() +: peoWrapper::FunctionAlgorithm< AlgorithmReturnType, void >, peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >, peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >
  • functionIndex +: peoMultiStart< EntityType >

    - g -

    - i -

    +: Worker
  • idx +: peoTransform< EOT >, peoMultiStart< EntityType >
  • imm +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • immigrate() +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • in +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
  • init() +: MPIThreadedEnv
  • isAssignedLocally() +: Runner

    - k -

    - l -

    +: Communicable
  • loopEval +: Algorithm

    - m -

    +: peoTransform< EOT >
  • MPIThreadedEnv() +: MPIThreadedEnv
  • mut +: peoTransform< EOT >
  • mut_rate +: peoTransform< EOT >

    - n -

    +: peoTransform< EOT >, peoMultiStart< EntityType >

    - o -

    - p -

    +: Runner
  • PartRouteEval() +: PartRouteEval
  • peoAsyncIslandMig() +: peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • peoEvalFunc() +: peoEvalFunc< EOT, FitT, FunctionArg >
  • peoGlobalBestVelocity() +: peoGlobalBestVelocity< POT >
  • peoMultiStart() +: peoMultiStart< EntityType >
  • peoPopEval() +: peoPopEval< EOT >
  • peoPSOSelect() +: peoPSOSelect< POT >
  • peoSyncIslandMig() +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
  • peoTransform() +: peoTransform< EOT >
  • peoWorstPositionReplacement() +: peoWorstPositionReplacement< POT >
  • peoWrapper() +: peoWrapper
  • period +: eoSyncContinue
  • pop +: DisplayBestRoute, peoTransform< EOT >, eoContinuator< EOT >
  • progression +: peoPopEval< EOT >

    - r -

    - s -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
  • synchronizeCoopEx() +: Cooperative

    - t -

    +: PartRouteEval, SEND_REQUEST
  • topology +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoPSOSelect< POT >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • total +: peoPopEval< EOT >

    - u -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • unpackData() +: Worker, peoTransform< EOT >, peoPopEval< EOT >, peoMultiStart< EntityType >, Service
  • unpackResult() +: peoTransform< EOT >, peoPopEval< EOT >, peoMultiStart< EntityType >, Service +

    - v -

    - w -

    - ~ -

    -
    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_func.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_func.html index 988196720..0a69a6828 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_func.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_func.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members - Functions +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members - Functions @@ -34,17 +34,21 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  • +

    - b -

    - c -

    +: Communicator
  • cross() +: OrderXover, EdgeXover, peoTransform< EOT >

    - d -

    - e -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • eoContinuator() +: eoContinuator< EOT >
  • eoReplace() +: eoReplace< EOT, TYPE >
  • eoSelector() +: eoSelector< EOT, TYPE >
  • eoSyncContinue() +: eoSyncContinue
  • execute() +: peoTransform< EOT >, peoPopEval< EOT >, peoMultiStart< EntityType >, Service +

    - f -

    - g -

    - i -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • init() +: MPIThreadedEnv
  • isAssignedLocally() +: Runner

    - l -

    +

    - m -

    - n -

    +: Runner
  • notifySynchronized() +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, Cooperative

    - o -

    +
  • operator std::vector() +: Topology
  • operator Type &() +: peoMultiStart< EntityType >::AbstractDataType
  • operator()() +: TwoOptRand, TwoOptNext, TwoOptInit, TwoOptIncrEval, TwoOpt, RouteInit, RouteEval, PartialMappedXover, PartRouteEval, OrderXover, MergeRouteEval, EdgeXover, DisplayBestRoute, CitySwap, Algorithm, SyncCompare, peoWrapper::FunctionAlgorithm< AlgorithmReturnType, void >, peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >, peoWrapper::Algorithm< AlgorithmType, void >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >, peoWrapper::AbstractAlgorithm, peoTransform< EOT >, peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoWorstPositionReplacement< POT >, peoGlobalBestVelocity< POT >, peoPSOSelect< POT >, peoPopEval< EOT >, peoNoAggEvalFunc< EOT >, peoMultiStart< EntityType >::NoAggregationFunction, peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >, peoMultiStart< EntityType >::AbstractAggregationAlgorithm, peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >, peoMultiStart< EntityType >::Algorithm< AlgorithmType >, peoMultiStart< EntityType >::AbstractAlgorithm, peoMultiStart< EntityType >, peoEvalFunc< EOT, FitT, FunctionArg >, eoReplace< EOT, TYPE >, replacement< TYPE >, eoSelector< EOT, TYPE >, selector< TYPE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >

    - p -

    +: Runner
  • PartRouteEval() +: PartRouteEval
  • peoAsyncIslandMig() +: peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • peoEvalFunc() +: peoEvalFunc< EOT, FitT, FunctionArg >
  • peoGlobalBestVelocity() +: peoGlobalBestVelocity< POT >
  • peoMultiStart() +: peoMultiStart< EntityType >
  • peoPopEval() +: peoPopEval< EOT >
  • peoPSOSelect() +: peoPSOSelect< POT >
  • peoSyncIslandMig() +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
  • peoTransform() +: peoTransform< EOT >
  • peoWorstPositionReplacement() +: peoWorstPositionReplacement< POT >
  • peoWrapper() +: peoWrapper

    - r -

    - s -

    +: Worker, Communicator, Runner
  • StarTopology() +: StarTopology
  • stop() +: Communicable
  • synchronizeCoopEx() +: Cooperative

    - t -

    - w -

    - ~ -

    -
    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_vars.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_vars.html index a99036961..601f6cd50 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_vars.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/functions_vars.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members - Variables +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members - Variables @@ -34,11 +34,14 @@
  • All
  • Functions
  • Variables
  • +
  • Typedefs
  •  

    +

    - _ -

    - a -

    +: peoPopEval< EOT >
  • aggregationAlgorithm +: peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >
  • aggregationFunction +: peoMultiStart< EntityType >
  • algorithm +: peoWrapper, peoWrapper::Algorithm< AlgorithmType, void >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >, peoMultiStart< EntityType >::Algorithm< AlgorithmType >
  • algorithmData +: peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >, peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >
  • algorithms +: peoMultiStart< EntityType >
  • all +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE > +

    - b -

    - c -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, eoContinuator< EOT >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • coop +: SyncEntry
  • coop_em +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • counter +: eoSyncContinue
  • cross +: OrderXover, EdgeXover, peoTransform< EOT >
  • cross_rate +: peoTransform< EOT >

    - d -

    +: peoMultiStart< EntityType >, peoMultiStart< EntityType >::DataType< Type >
  • dataIndex +: peoMultiStart< EntityType >
  • def_id +: Runner
  • destination +: eoReplace< EOT, TYPE >

    - e -

    +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • entityTypeInstance +: peoMultiStart< EntityType >
  • eval +: Algorithm
  • evalFunc +: peoEvalFunc< EOT, FitT, FunctionArg >
  • exec_id +: Runner
  • explicitPassive +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    - f -

    +: peoTransform< EOT >
  • from +: PartRouteEval
  • funcs +: peoPopEval< EOT >
  • functionIndex +: peoMultiStart< EntityType >

    - i -

    +: Worker
  • idx +: peoTransform< EOT >, peoMultiStart< EntityType >
  • imm +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • in +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    - k -

    - l -

    +
  • loopEval +: Algorithm

    - m -

    +: peoTransform< EOT >
  • mut +: peoTransform< EOT >
  • mut_rate +: peoTransform< EOT >

    - n -

    +: peoTransform< EOT >, peoMultiStart< EntityType >

    - o -

    - p -

    +
  • period +: eoSyncContinue
  • pop +: DisplayBestRoute, peoTransform< EOT >, eoContinuator< EOT >
  • progression +: peoPopEval< EOT >

    - r -

    +
  • recvAndCompleted +: Worker
  • replace +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, eoReplace< EOT, TYPE >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • runner +: SyncEntry

    - s -

    +: peoMultiStart< EntityType >
  • sol +: peoPopEval< EOT >
  • source +: eoSelector< EOT, TYPE >
  • src +: Worker
  • standbyMigration +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >
  • sync +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    - t -

    -
    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +: SEND_REQUEST
  • taskAssigned +: Worker
  • tasks +: peoPopEval< EOT >
  • to +: PartRouteEval, SEND_REQUEST
  • topology +: peoSyncIslandMig< TYPESELECT, TYPEREPLACE >, peoPSOSelect< POT >, peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >
  • total +: peoPopEval< EOT > +

    - v -

    +
    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/hierarchy.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/hierarchy.html index dc125554e..3c7ac448c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/hierarchy.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/hierarchy.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Hierarchical Index +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Hierarchical Index @@ -29,40 +29,57 @@
  • Class Hierarchy
  • Class Members
  • -

    ParadisEO-PEOMovingObjects Class Hierarchy

    This inheritance list is sorted roughly, but not completely, alphabetically:

    The ParadisEO-PEO Framework

    -

    1.0

    +

    1.1

    intro

    ParadisEO is a white-box object-oriented framework dedicated to the reusable design of parallel and distributed metaheuristics (PDM). ParadisEO 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. ParadisEO 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. ParadisEO 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

    @@ -104,7 +104,7 @@ LICENCE

    This software is governed by the CeCILL license under French law and abiding by the rules of distribution of free software. You can use, modify and/ or redistribute the software under the terms of the CeCILL license as circulated by CEA, CNRS and INRIA at the following URL "http://www.cecill.info".

    As a counterpart to the access to the source code and rights to copy, modify and redistribute granted by the license, users are provided only with a limited warranty and the software's author, the holder of the economic rights, and the successive licensors have only limited liability.

    In this respect, the user's attention is drawn to the risks associated with loading, using, modifying and/or developing or reproducing the software by the user in light of its specific status of free software, that may mean that it is complicated to manipulate, and that also therefore means that it is reserved for developers and experienced professionals having in-depth computer knowledge. Users are therefore encouraged to load and test the software's suitability as regards their requirements in conditions enabling the security of their systems and/or data to be ensured and, more generally, to use and operate it in the same conditions as regards security. The fact that you are presently reading this means that you have had knowledge of the CeCILL license and that you accept its terms.

    -ParadisEO WebSite : http://paradiseo.gforge.inria.fr Contact: paradiseo-help@lists.gforge.inria.fr


    Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by  +ParadisEO WebSite : http://paradiseo.gforge.inria.fr Contact: paradiseo-help@lists.gforge.inria.fr
    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8cpp-source.html index 579cec80a..35d7e2fea 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: merge_route_eval.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: merge_route_eval.cpp Source File @@ -22,7 +22,7 @@ -

    merge_route_eval.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8h-source.html index cdbb4a651..755da3966 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/merge__route__eval_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: merge_route_eval.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: merge_route_eval.h Source File @@ -22,7 +22,7 @@ -

    merge_route_eval.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8cpp-source.html index c7f5446d0..886ede8c2 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: mess.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: mess.cpp Source File @@ -22,12 +22,12 @@ -

    mess.cpp

    00001 /* 
    +

    mess.cpp

    00001 /*
     00002 * <mess.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8h-source.html index 533c566e8..abf63654b 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mess_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: mess.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: mess.h Source File @@ -22,12 +22,12 @@ -

    mess.h

    00001 /* 
    +

    mess.h

    00001 /*
     00002 * <mess.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/messaging_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/messaging_8h-source.html index 2aef19eda..54a3da50e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/messaging_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/messaging_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: messaging.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: messaging.h Source File @@ -22,12 +22,12 @@ -

    messaging.h

    00001 /* 
    +

    messaging.h

    00001 /*
     00002 * <messaging.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mix_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mix_8h-source.html index 113e73171..672b8bb20 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/mix_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/mix_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: mix.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: mix.h Source File @@ -22,7 +22,7 @@ -

    mix.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers.html index 8c60760fa..abd4c124d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members @@ -44,7 +44,7 @@ Here is a list of all documented namespace members with links to the namespaces : peo
  • loadParameters() : peo
  • run() : peo -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_func.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_func.html index 66dbca22c..469c161e7 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_func.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_func.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members @@ -42,7 +42,7 @@ : peo
  • loadParameters() : peo
  • run() : peo -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_vars.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_vars.html index d4063dec2..41cb15563 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_vars.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacemembers_vars.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Class Members +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Class Members @@ -40,7 +40,7 @@
  • argc : peo
  • argv : peo -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacepeo.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacepeo.html index a694168dc..9438754b9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacepeo.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespacepeo.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo Namespace Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo Namespace Reference @@ -58,7 +58,7 @@ int * argv -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespaces.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespaces.html index 29be8b450..39617bfd4 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespaces.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/namespaces.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Namespace Index +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Namespace Index @@ -27,10 +27,10 @@
  • Namespace List
  • Namespace Members
  • -

    ParadisEO-PEOMovingObjects Namespace List

    Here is a list of all documented namespaces with brief descriptions: +

    ParadisEO-PEO-ParallelanddistributedEvolvingObjects Namespace List

    Here is a list of all documented namespaces with brief descriptions:
    peo
    -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8cpp-source.html index 33a72622f..ab48755ca 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: opt_route.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: opt_route.cpp Source File @@ -22,7 +22,7 @@ -

    opt_route.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8h-source.html index 7fbb643aa..92329995c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/opt__route_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: opt_route.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: opt_route.h Source File @@ -22,7 +22,7 @@ -

    opt_route.h

    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
    @@ -73,7 +73,7 @@
     00049 extern Route opt_route; /* Optimum route */
     00050 
     00051 #endif
    -

    Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8cpp-source.html index b73368e34..6015c5b32 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: order_xover.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: order_xover.cpp Source File @@ -22,7 +22,7 @@ -

    order_xover.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8h-source.html index 93b2d10d1..e8a74dab8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/order__xover_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: order_xover.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: order_xover.h Source File @@ -22,7 +22,7 @@ -

    order_xover.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html index 34a6d4e92..0cf4e888d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: part_route_eval.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: part_route_eval.cpp Source File @@ -22,7 +22,7 @@ -

    part_route_eval.cpp

    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   
    +00056 
     00057   __route.fitness (- (int) len) ;
     00058 }
    -

    Generated on Mon Oct 8 11:16:45 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8h-source.html index 43fc31513..f7b006eaf 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/part__route__eval_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: part_route_eval.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: part_route_eval.h Source File @@ -22,7 +22,7 @@ -

    part_route_eval.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html index 75f1c08a9..813da2d37 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: partial_mapped_xover.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: partial_mapped_xover.cpp Source File @@ -22,7 +22,7 @@ -

    partial_mapped_xover.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html index 5c5b555d6..9f8b70e27 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/partial__mapped__xover_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: partial_mapped_xover.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: partial_mapped_xover.h Source File @@ -22,7 +22,7 @@ -

    partial_mapped_xover.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html index d3c30f0b8..c4a9d1d2a 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAggEvalFunc_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoAggEvalFunc.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoAggEvalFunc.h Source File @@ -22,12 +22,12 @@ -

    peoAggEvalFunc.h

    00001 /* 
    +

    peoAggEvalFunc.h

    00001 /*
     00002 * <peoAggEvalFunc.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html index 221bda745..96b8b456c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoAsyncIslandMig_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoAsyncIslandMig.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoAsyncIslandMig.h Source File @@ -22,12 +22,12 @@ -

    peoAsyncIslandMig.h

    00001 /* 
    +

    peoAsyncIslandMig.h

    00001 /*
     00002 * <peoAsyncIslandMig.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html index a549ffcc8..a154488a1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoNoAggEvalFunc_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoNoAggEvalFunc.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoNoAggEvalFunc.h Source File @@ -22,12 +22,12 @@ -

    peoNoAggEvalFunc.h

    00001 /* 
    +

    peoNoAggEvalFunc.h

    00001 /*
     00002 * <peoNoAggEvalFunc.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoPopEval_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoPopEval_8h-source.html index 5a841add6..9eac7c2ab 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoPopEval_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoPopEval_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoPopEval.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoPopEval.h Source File @@ -22,12 +22,12 @@ -

    peoPopEval.h

    00001 /* 
    +

    peoPopEval.h

    00001 /*
     00002 * <peoPopEval.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,186 @@
     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 if ( __pop.size() && (funcs.size() * __pop.size()) ) +00157 { +00158 for ( unsigned i = 0; i < __pop.size(); i++ ) +00159 { +00160 __pop[ i ].fitness(typename EOT :: Fitness() ); +00161 progression[ &__pop[ i ] ].first = funcs.size() - 1; +00162 progression[ &__pop[ i ] ].second = funcs.size(); +00163 for ( unsigned j = 0; j < funcs.size(); j++ ) +00164 { +00165 /* Queuing the 'invalid' solution and its associated owner */ +00166 tasks.push( &__pop[ i ] ); +00167 } +00168 } +00169 total = funcs.size() * __pop.size(); +00170 requestResourceRequest( funcs.size() * __pop.size() ); +00171 stop(); +00172 } +00173 } +00174 +00175 +00176 template< class EOT > void peoPopEval< EOT > :: packData() +00177 { +00178 // printDebugMessage ("debut pakc data"); +00179 pack( progression[ tasks.front() ].first-- ); +00180 +00181 /* Packing the contents :-) of the solution */ +00182 pack( *tasks.front() ); +00183 +00184 /* Packing the addresses of both the solution and the owner */ +00185 pack( tasks.front() ); +00186 tasks.pop( ); +00187 } +00188 +00189 +00190 template< class EOT > void peoPopEval< EOT > :: unpackData() +00191 { +00192 unpack( num_func ); +00193 /* Unpacking the solution */ +00194 unpack( sol ); +00195 /* Unpacking the @ of that one */ +00196 unpack( ad_sol ); +00197 } +00198 +00199 +00200 template< class EOT > void peoPopEval< EOT > :: execute() +00201 { +00202 +00203 /* Computing the fitness of the solution */ +00204 funcs[ num_func ]->operator()( sol ); +00205 } +00206 +00207 +00208 template< class EOT > void peoPopEval< EOT > :: packResult() +00209 { +00210 /* Packing the fitness of the solution */ +00211 pack( sol.fitness() ); +00212 /* Packing the @ of the individual */ +00213 pack( ad_sol ); +00214 } +00215 +00216 +00217 template< class EOT > void peoPopEval< EOT > :: unpackResult() +00218 { +00219 typename EOT :: Fitness fit; +00220 +00221 /* Unpacking the computed fitness */ +00222 unpack( fit ); +00223 +00224 /* Unpacking the @ of the associated individual */ +00225 unpack( ad_sol ); +00226 +00227 +00228 /* Associating the fitness the local solution */ +00229 merge_eval( *ad_sol, fit ); +00230 +00231 progression[ ad_sol ].second--; +00232 +00233 /* Notifying the container of the termination of the evaluation */ +00234 if ( !progression[ ad_sol ].second ) +00235 { +00236 +00237 progression.erase( ad_sol ); +00238 } +00239 +00240 total--; +00241 if ( !total ) +00242 { +00243 +00244 getOwner()->setActive(); +00245 resume(); +00246 } +00247 } +00248 +00249 +00250 template< class EOT > void peoPopEval< EOT > :: notifySendingData() +00251 {} +00252 +00253 +00254 template< class EOT > void peoPopEval< EOT > :: notifySendingAllResourceRequests() +00255 { +00256 getOwner()->setPassive(); +00257 } +00258 +00259 +00260 #endif +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html index fe6024a01..c056121d9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoSyncIslandMig_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoSyncIslandMig.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoSyncIslandMig.h Source File @@ -22,12 +22,12 @@ -

    peoSyncIslandMig.h

    00001 /* 
    +

    peoSyncIslandMig.h

    00001 /*
     00002 * <peoSyncIslandMig.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoTransform_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoTransform_8h-source.html index e658e6ce8..c226dc806 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoTransform_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peoTransform_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peoTransform.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peoTransform.h Source File @@ -22,12 +22,12 @@ -

    peoTransform.h

    00001 /* 
    +

    peoTransform.h

    00001 /*
     00002 * <peoTransform.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo_8h-source.html index 698147329..a0fafe939 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo.h Source File @@ -22,12 +22,12 @@ -

    peo.h

    00001 /* 
    +

    peo.h

    00001 /*
     00002 * <peo.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,43 @@
     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 +00335 /* Cooperative island model */ +00336 #include "core/ring_topo.h" +00337 #include "core/star_topo.h" +00338 #include "core/random_topo.h" +00339 #include "core/complete_topo.h" +00340 #include "peoData.h" +00341 #include "peoSyncIslandMig.h" +00342 #include "peoAsyncIslandMig.h" +00343 +00344 /* Synchronous multi-start model */ +00345 #include "peoMultiStart.h" +00346 /* <------- components for parallel algorithms -------> */ +00347 +00348 /* Parallel PSO */ +00349 #include "peoPSO.h" +00350 +00351 #endif +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8cpp-source.html index 80f5471a8..290906509 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_debug.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_debug.cpp Source File @@ -22,12 +22,12 @@ -

    peo_debug.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8h-source.html index aa8049514..01a3db909 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__debug_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_debug.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_debug.h Source File @@ -22,12 +22,12 @@ -

    peo_debug.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8cpp-source.html index 59534a903..3956f1f2c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_fin.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_fin.cpp Source File @@ -22,12 +22,12 @@ -

    peo_fin.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8h-source.html index 3b51acf47..bfc80af63 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__fin_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_fin.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_fin.h Source File @@ -22,12 +22,12 @@ -

    peo_fin.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8cpp-source.html index aa826f960..d8116b4ad 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_init.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_init.cpp Source File @@ -22,12 +22,12 @@ -

    peo_init.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8h-source.html index 23a8d401f..388867a11 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__init_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_init.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_init.h Source File @@ -22,12 +22,12 @@ -

    peo_init.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8cpp-source.html index e96644b1a..1b34c50ba 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_param.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_param.cpp Source File @@ -22,12 +22,12 @@ -

    peo_param.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,8 +64,8 @@
     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);
     00047 
    @@ -75,7 +75,7 @@
     00051   if (debug_param.value () == "true")
     00052     setDebugMode ();
     00053 }
    -

    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8h-source.html index c8adfbebb..734f804d7 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__param_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_param.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_param.h Source File @@ -22,12 +22,12 @@ -

    peo_param.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8cpp-source.html index aeac16030..e446d5eda 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_run.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_run.cpp Source File @@ -22,12 +22,12 @@ -

    peo_run.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8h-source.html index d694de425..1590cbf87 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/peo__run_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: peo_run.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: peo_run.h Source File @@ -22,12 +22,12 @@ -

    peo_run.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8cpp-source.html index 8f4efaaab..ce6af72d3 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: reac_thread.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: reac_thread.cpp Source File @@ -22,12 +22,12 @@ -

    reac_thread.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8h-source.html index d7b48b719..f08eec87d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/reac__thread_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: reac_thread.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: reac_thread.h Source File @@ -22,12 +22,12 @@ -

    reac_thread.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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_*/ +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8cpp-source.html index 4062ac302..6095cb6c4 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: recv.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: recv.cpp Source File @@ -22,12 +22,12 @@ -

    recv.cpp

    00001 /* 
    +

    recv.cpp

    00001 /*
     00002 * <recv.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8h-source.html index fa8af7233..dc26c5a1c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/recv_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: recv.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: recv.h Source File @@ -22,12 +22,12 @@ -

    recv.h

    00001 /* 
    +

    recv.h

    00001 /*
     00002 * <recv.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,7 +64,7 @@
     00040 extern void receiveMessages ();
     00041 
     00042 #endif
    -

    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8cpp-source.html index f6b67ce85..4d71070cb 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: ring_topo.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: ring_topo.cpp Source File @@ -22,12 +22,12 @@ -

    ring_topo.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8h-source.html index 2d19ad101..8f5313bb8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/ring__topo_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: ring_topo.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: ring_topo.h Source File @@ -22,12 +22,12 @@ -

    ring_topo.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html index cf9389486..ff8335feb 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2runner_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: runner.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: runner.cpp Source File @@ -22,12 +22,12 @@ -

    runner.cpp

    00001 /* 
    +

    runner.cpp

    00001 /*
     00002 * <runner.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html index d24a7dccb..59d33726b 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_2mpi_2service_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: service.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: service.cpp Source File @@ -22,12 +22,12 @@ -

    service.cpp

    00001 /* 
    +

    service.cpp

    00001 /*
     00002 * <service.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8cpp-source.html index d12de1681..c4e125f57 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: rmc.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: rmc.cpp Source File @@ -22,12 +22,12 @@ -

    rmc.cpp

    00001 /* 
    +

    rmc.cpp

    00001 /*
     00002 * <rmc.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8h-source.html index 6e2d24667..926f6428c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/rmc_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: rmc.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: rmc.h Source File @@ -22,12 +22,12 @@ -

    rmc.h

    00001 /* 
    +

    rmc.h

    00001 /*
     00002 * <rmc.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8cpp-source.html index 9937479a9..7909e9773 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route.cpp Source File @@ -22,7 +22,7 @@ -

    route.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8h-source.html index b5139e667..8839da0db 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route.h Source File @@ -22,7 +22,7 @@ -

    route.h

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8cpp-source.html index 26cded3dd..7a188bbf8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route_eval.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route_eval.cpp Source File @@ -22,7 +22,7 @@ -

    route_eval.cpp

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8h-source.html index 0fcfb21fb..9bd3f6d4c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__eval_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route_eval.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route_eval.h Source File @@ -22,7 +22,7 @@ -

    route_eval.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8cpp-source.html index 824282875..47f617446 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route_init.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route_init.cpp Source File @@ -22,7 +22,7 @@ -

    route_init.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8h-source.html index 451e81a9a..71b964d99 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/route__init_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: route_init.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: route_init.h Source File @@ -22,7 +22,7 @@ -

    route_init.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/runner_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/runner_8h-source.html index 3975d3624..ee6bf3b97 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/runner_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/runner_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: runner.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: runner.h Source File @@ -22,12 +22,12 @@ -

    runner.h

    00001 /* 
    +

    runner.h

    00001 /*
     00002 * <runner.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8cpp-source.html index 20dc2624d..ed0e77194 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: scheduler.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: scheduler.cpp Source File @@ -22,12 +22,12 @@ -

    scheduler.cpp

    00001 /* 
    +

    scheduler.cpp

    00001 /*
     00002 * <scheduler.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8h-source.html index b012f4aa7..6173c688a 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/scheduler_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: scheduler.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: scheduler.h Source File @@ -22,12 +22,12 @@ -

    scheduler.h

    00001 /* 
    +

    scheduler.h

    00001 /*
     00002 * <scheduler.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8cpp-source.html index 27e89390c..a7c4d4ca8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: schema.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: schema.cpp Source File @@ -22,12 +22,12 @@ -

    schema.cpp

    00001 /* 
    +

    schema.cpp

    00001 /*
     00002 * <schema.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8h-source.html index b5044a17f..90d869a81 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/schema_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: schema.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: schema.h Source File @@ -22,12 +22,12 @@ -

    schema.h

    00001 /* 
    +

    schema.h

    00001 /*
     00002 * <schema.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.idx b/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.idx index 50b796a59..af22c45ac 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.idx and b/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.idx differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.php b/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.php index 861442bae..b5e036ca5 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.php +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/search.php @@ -375,7 +375,7 @@ main(); ?> -
    Generated on Mon Oct 8 11:16:50 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:48 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8cpp-source.html index 80d5342f7..67a958bde 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: send.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: send.cpp Source File @@ -22,12 +22,12 @@ -

    send.cpp

    00001 /* 
    +

    send.cpp

    00001 /*
     00002 * <send.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8h-source.html index 53b935c60..86b7baf6d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/send_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: send.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: send.h Source File @@ -22,12 +22,12 @@ -

    send.h

    00001 /* 
    +

    send.h

    00001 /*
     00002 * <send.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -72,7 +72,7 @@
     00048 extern void sendMessages ();
     00049 
     00050 #endif
    -

    Generated on Mon Oct 8 11:16:46 2007 for ParadisEO-PEOMovingObjects by  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/service_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/service_8h-source.html index a5a83054b..7177b9ba2 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/service_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/service_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: service.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: service.h Source File @@ -22,12 +22,12 @@ -

    service.h

    00001 /* 
    +

    service.h

    00001 /*
     00002 * <service.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html index d52cbc6c3..461722a25 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: node.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: node.cpp Source File @@ -22,12 +22,12 @@ -

    node.cpp

    00001 /* 
    +

    node.cpp

    00001 /*
     00002 * <node.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html index c107521e7..1a34d2f3f 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2node_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: node.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: node.h Source File @@ -22,12 +22,12 @@ -

    node.h

    00001 /* 
    +

    node.h

    00001 /*
     00002 * <node.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html index 4799a4a15..e34c4bac0 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: param.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: param.cpp Source File @@ -22,12 +22,12 @@ -

    param.cpp

    00001 /* 
    +

    param.cpp

    00001 /*
     00002 * <param.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html index 5de9ceb5d..a15f5bb31 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/src_2rmc_2mpi_2param_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: param.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: param.h Source File @@ -22,12 +22,12 @@ -

    param.h

    00001 /* 
    +

    param.h

    00001 /*
     00002 * <param.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST-members.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST-members.html index e3d9f7ca9..1b4f9ad52 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST-members.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST-members.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: Member List +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: Member List @@ -33,7 +33,7 @@ commSEND_REQUEST tagSEND_REQUEST toSEND_REQUEST -
    Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
    Generated on Wed Mar 12 15:23:47 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST.html index 307bc5ff4..719a10daa 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/structSEND__REQUEST.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: SEND_REQUEST Struct Reference +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: SEND_REQUEST Struct Reference @@ -47,9 +47,9 @@ int 52 of file send.cpp.
    The documentation for this struct was generated from the following file:
      +Definition at line 53 of file send.cpp.
      The documentation for this struct was generated from the following file: -
      Generated on Mon Oct 8 11:16:49 2007 for ParadisEO-PEOMovingObjects by  +
      Generated on Wed Mar 12 15:23:47 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
      diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tags_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tags_8h-source.html index 5527f749f..aa8600734 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tags_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tags_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: tags.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: tags.h Source File @@ -22,12 +22,12 @@
    -

    tags.h

    00001 /* 
    +

    tags.h

    00001 /*
     00002 * <tags.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8cpp-source.html index 766870290..6b2324c20 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: thread.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: thread.cpp Source File @@ -22,12 +22,12 @@ -

    thread.cpp

    00001 /* 
    +

    thread.cpp

    00001 /*
     00002 * <thread.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8h-source.html index 0ed667519..3b806d87f 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/thread_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: thread.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: thread.h Source File @@ -22,12 +22,12 @@ -

    thread.h

    00001 /* 
    +

    thread.h

    00001 /*
     00002 * <thread.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8cpp-source.html index d7bb2dd7c..575a52de6 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: topology.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: topology.cpp Source File @@ -22,12 +22,12 @@ -

    topology.cpp

    00001 /* 
    +

    topology.cpp

    00001 /*
     00002 * <topology.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8h-source.html index 6bc3277cd..08ce74a02 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/topology_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: topology.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: topology.h Source File @@ -22,12 +22,12 @@ -

    topology.h

    00001 /* 
    +

    topology.h

    00001 /*
     00002 * <topology.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tree.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tree.html index 560832a67..466b0621d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tree.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tree.html @@ -61,159 +61,262 @@
    -

    ParadisEO-PEOMovingObjects

    +

    ParadisEO-PEO-ParallelanddistributedEvolvingObjects

    o*The ParadisEO-PEO Framework

    o+Class List

    +

    |o*Algorithm

    +

    |o*CitySwap

    |o*Communicable

    |o*Communicator

    +

    |o*CompleteTopology

    +

    |o*continuator

    |o*Cooperative

    |o*DisplayBestRoute

    +

    |o*EdgeXover

    +

    |o*eoContinuator< EOT >

    +

    |o*eoReplace< EOT, TYPE >

    +

    |o*eoSelector< EOT, TYPE >

    +

    |o*eoSyncContinue

    |o*MergeRouteEval

    +

    |o*MPIThreadedEnv

    +

    |o*OrderXover

    +

    |o*PartialMappedXover

    +

    |o*PartRouteEval

    |o*peoAggEvalFunc< EOT >

    -

    |o*peoAsyncIslandMig< EOT >

    -

    |o*peoEA< EOT >

    +

    |o*peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >

    +

    |o*peoEvalFunc< EOT, FitT, FunctionArg >

    +

    |o*peoGlobalBestVelocity< POT >

    +

    |o*peoMultiStart< EntityType >

    +

    |o*peoMultiStart< EntityType >::AbstractAggregationAlgorithm

    +

    |o*peoMultiStart< EntityType >::AbstractAlgorithm

    +

    |o*peoMultiStart< EntityType >::AbstractDataType

    +

    |o*peoMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >

    +

    |o*peoMultiStart< EntityType >::Algorithm< AlgorithmType >

    +

    |o*peoMultiStart< EntityType >::DataType< Type >

    +

    |o*peoMultiStart< EntityType >::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >

    +

    |o*peoMultiStart< EntityType >::NoAggregationFunction

    |o*peoNoAggEvalFunc< EOT >

    -

    |o*peoParallelAlgorithmWrapper

    -

    |o*peoParallelAlgorithmWrapper::AbstractAlgorithm

    -

    |o*peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, AlgorithmDataType >

    -

    |o*peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void >

    -

    |o*peoParaPopEval< EOT >

    -

    |o*peoParaSGATransform< EOT >

    |o*peoPopEval< EOT >

    -

    |o*peoSeqPopEval< EOT >

    -

    |o*peoSeqTransform< EOT >

    -

    |o*peoSynchronousMultiStart< EntityType >

    -

    |o*peoSynchronousMultiStart< EntityType >::AbstractAggregationAlgorithm

    -

    |o*peoSynchronousMultiStart< EntityType >::AbstractAlgorithm

    -

    |o*peoSynchronousMultiStart< EntityType >::AbstractDataType

    -

    |o*peoSynchronousMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >

    -

    |o*peoSynchronousMultiStart< EntityType >::Algorithm< AlgorithmType >

    -

    |o*peoSynchronousMultiStart< EntityType >::DataType< Type >

    -

    |o*peoSynchronousMultiStart< EntityType >::NoAggregationFunction

    -

    |o*peoSyncIslandMig< EOT >

    -

    |o*peoSyncMultiStart< EOT >

    +

    |o*peoPSOSelect< POT >

    +

    |o*peoSyncIslandMig< TYPESELECT, TYPEREPLACE >

    |o*peoTransform< EOT >

    -

    |o*RandomExplorationAlgorithm

    +

    |o*peoWorstPositionReplacement< POT >

    +

    |o*peoWrapper

    +

    |o*peoWrapper::AbstractAlgorithm

    +

    |o*peoWrapper::Algorithm< AlgorithmType, AlgorithmDataType >

    +

    |o*peoWrapper::Algorithm< AlgorithmType, void >

    +

    |o*peoWrapper::FunctionAlgorithm< AlgorithmReturnType, AlgorithmDataType >

    +

    |o*peoWrapper::FunctionAlgorithm< AlgorithmReturnType, void >

    +

    |o*RandomTopology

    |o*ReactiveThread

    +

    |o*replacement< TYPE >

    |o*RingTopology

    +

    |o*RouteEval

    +

    |o*RouteInit

    |o*Runner

    +

    |o*selector< TYPE >

    |o*SEND_REQUEST

    |o*Service

    +

    |o*StarTopology

    +

    |o*SyncCompare

    +

    |o*SyncEntry

    |o*Thread

    |o*Topology

    +

    |o*TwoOpt

    +

    |o*TwoOptIncrEval

    +

    |o*TwoOptInit

    +

    |o*TwoOptNext

    +

    |o*TwoOptRand

    |\*Worker

    o+Class Hierarchy

    +

    |o*Algorithm

    |o+Communicable

    -

    |o+eoFunctorBase [external]

    -
    -

    ||o+eoBF< A1, A2, R > [external]

    -
    -

    |||o+peoAggEvalFunc< EOT >

    +

    |o+continuator

    + +

    |o+eoFunctorBase [external]

    +
    +

    ||o+eoBF< A1, A2, R > [external]

    + -

    ||o+eoF< void > [external]

    -
    -

    |||\+eoUpdater [external]

    -
    +

    ||o+eoBF< EOType &, EOType &, bool > [external]

    + +

    ||o+eoF< void > [external]

    + -

    ||\+eoUF< A1, R > [external]

    -
    -

    || \+eoTransform< EOT > [external]

    -
    -

    ||  \*peoTransform< EOT >

    +

    ||o+eoUF< A1, R > [external]

    + +

    ||o+eoUF< EOT &, void > [external]

    +
    +

    |||\+moMove< EOT > [external]

    +
    +

    ||| \*TwoOpt

    +
    +
    +

    ||\+eoUF< EOType &, bool > [external]

    +
    +

    || \+eoMonOp< EOType > [external]

    +
    -

    |o+peoParallelAlgorithmWrapper::AbstractAlgorithm

    -
    -

    ||o*peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, AlgorithmDataType >

    -

    ||\*peoParallelAlgorithmWrapper::Algorithm< AlgorithmType, void >

    +

    |o+eoOp< EOType > [external]

    +
    +

    ||o*eoMonOp< EOType > [external]

    +

    ||\*eoQuadOp< EOType > [external]

    -

    |o+peoSynchronousMultiStart< EntityType >::AbstractAggregationAlgorithm

    -
    -

    ||o*peoSynchronousMultiStart< EntityType >::AggregationAlgorithm< AggregationAlgorithmType >

    -

    ||\*peoSynchronousMultiStart< EntityType >::NoAggregationFunction

    +

    |o*MPIThreadedEnv

    +

    |o+peoMultiStart< EntityType >::AbstractAggregationAlgorithm

    + -

    |o+peoSynchronousMultiStart< EntityType >::AbstractAlgorithm

    -
    -

    ||\*peoSynchronousMultiStart< EntityType >::Algorithm< AlgorithmType >

    +

    |o+peoMultiStart< EntityType >::AbstractAlgorithm

    + -

    |o+peoSynchronousMultiStart< EntityType >::AbstractDataType

    -
    -

    ||\*peoSynchronousMultiStart< EntityType >::DataType< Type >

    +

    |o+peoMultiStart< EntityType >::AbstractDataType

    + +

    |o+peoWrapper::AbstractAlgorithm

    + +

    |o+replacement< TYPE >

    + +

    |o+selector< TYPE >

    + -

    |o*RandomExplorationAlgorithm

    |o*SEND_REQUEST

    -

    |o+Thread

    -
    -

    ||o+ReactiveThread

    -
    +

    |o*SyncCompare

    +

    |o*SyncEntry

    +

    |o+Thread

    + -

    |\+Topology

    -

    o*Class Members

    -

    o+Namespace List

    -
    +

    o+Namespace List

    +

    |\*peo

    o*Namespace Members

    -

    \+File List

    -
    +

    \+File List

    +

     o*city_swap.cpp

     o*city_swap.h

     o*comm.cpp

     o*comm.h

     o*communicable.cpp

     o*communicable.h

    -

     o*coop.cpp

    +

     o*complete_topo.cpp

    +

     o*complete_topo.h

    +

     o*cooperative.cpp

     o*cooperative.h

     o*data.cpp

     o*data.h

    @@ -221,20 +324,16 @@

     o*display.h

     o*display_best_route.cpp

     o*display_best_route.h

    -

     o*doclsn.h

     o*edge_xover.cpp

     o*edge_xover.h

    -

     o*eoPop_comm.h

    -

     o*eoVector_comm.h

    -

     o*exampleA.cpp

    -

     o*exampleB.cpp

    -

     o*exampleC.cpp

    -

     o*exampleD.cpp

    -

     o*exampleE.cpp

    -

     o*Lesson1/main.cpp

    -

     o*Lesson2/main.cpp

    -

     o*Lesson3/main.cpp

    -

     o*LessonParallelAlgorithm/main.cpp

    +

     o*eoPop_mesg.h

    +

     o*eoVector_mesg.h

    +

     o*Lesson1/mainEA.cpp

    +

     o*Lesson2/mainEA.cpp

    +

     o*Lesson3/mainEA.cpp

    +

     o*mainEALS.cpp

    +

     o*Lesson1/mainPSO.cpp

    +

     o*Lesson3/mainPSO.cpp

     o*merge_route_eval.cpp

     o*merge_route_eval.h

     o*mess.cpp

    @@ -270,18 +369,17 @@

     o*peo_run.h

     o*peoAggEvalFunc.h

     o*peoAsyncIslandMig.h

    -

     o*peoEA.h

    +

     o*peoData.h

    +

     o*peoEvalFunc.h

    +

     o*peoMultiStart.h

     o*peoNoAggEvalFunc.h

    -

     o*peoParallelAlgorithmWrapper.h

    -

     o*peoParaPopEval.h

    -

     o*peoParaSGATransform.h

     o*peoPopEval.h

    -

     o*peoSeqPopEval.h

    -

     o*peoSeqTransform.h

    -

     o*peoSynchronousMultiStart.h

    +

     o*peoPSO.h

     o*peoSyncIslandMig.h

    -

     o*peoSyncMultiStart.h

     o*peoTransform.h

    +

     o*peoWrapper.h

    +

     o*random_topo.cpp

    +

     o*random_topo.h

     o*reac_thread.cpp

     o*reac_thread.h

     o*README

    @@ -309,7 +407,20 @@

     o*core/service.cpp

     o*rmc/mpi/service.cpp

     o*service.h

    -

     o*t-peo.cpp

    +

     o*star_topo.cpp

    +

     o*star_topo.h

    +

     o*synchron.cpp

    +

     o*synchron.h

    +

     o*t-EAAsyncIsland.cpp

    +

     o*t-EASyncIsland.cpp

    +

     o*t-Mpdallexit.cpp

    +

     o*t-Mpdboot.cpp

    +

     o*t-MultiStart.cpp

    +

     o*t-ParallelEval.cpp

    +

     o*t-ParallelTransform.cpp

    +

     o*t-PSOGlobalBest.cpp

    +

     o*t-PSOSelect.cpp

    +

     o*t-PSOWorstPosition.cpp

     o*tags.h

     o*thread.cpp

     o*thread.h

    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8cpp-source.html index 9d6d9f2cb..393c93ba3 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: node.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: node.cpp Source File @@ -22,7 +22,7 @@
    -

    node.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html index c8d476ad7..e7d8353ab 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2node_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: node.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: node.h Source File @@ -22,7 +22,7 @@
    -

    node.h

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html index 2200d9b71..acc432015 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: param.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: param.cpp Source File @@ -22,7 +22,7 @@
    -

    param.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html index 1d8690989..757ca8704 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/tutorial_2examples_2tsp_2param_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: param.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: param.h Source File @@ -22,7 +22,7 @@
    -

    param.h

    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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8cpp-source.html index ddf4275dc..3d508fdd9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt.cpp Source File @@ -22,7 +22,7 @@
    -

    two_opt.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8h-source.html index 629e5011a..fe28627c9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt.h Source File @@ -22,7 +22,7 @@
    -

    two_opt.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html index 2a3fceadf..29d876295 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_incr_eval.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_incr_eval.cpp Source File @@ -22,7 +22,7 @@
    -

    two_opt_incr_eval.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html index 7a25390a2..d24b65dd9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__incr__eval_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_incr_eval.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_incr_eval.h Source File @@ -22,7 +22,7 @@
    -

    two_opt_incr_eval.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html index 4453764a6..141d0e4ce 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_init.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_init.cpp Source File @@ -22,7 +22,7 @@
    -

    two_opt_init.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8h-source.html index 0ce10347e..c4b0333c6 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__init_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_init.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_init.h Source File @@ -22,7 +22,7 @@
    -

    two_opt_init.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html index d5b5f6eed..0d57350fc 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_next.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_next.cpp Source File @@ -22,7 +22,7 @@
    -

    two_opt_next.cpp

    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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8h-source.html index e0b7e9092..0d0250618 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__next_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_next.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_next.h Source File @@ -22,7 +22,7 @@
    -

    two_opt_next.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html index 5ffc4e7c4..72c49cfc8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_rand.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_rand.cpp Source File @@ -22,7 +22,7 @@
    -

    two_opt_rand.cpp

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8h-source.html index a2c308c36..9c57fdc7e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/two__opt__rand_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: two_opt_rand.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: two_opt_rand.h Source File @@ -22,7 +22,7 @@
    -

    two_opt_rand.h

    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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8cpp-source.html index 869d2133f..2bd554e00 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: worker.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: worker.cpp Source File @@ -22,12 +22,12 @@
    -

    worker.cpp

    00001 /* 
    +

    worker.cpp

    00001 /*
     00002 * <worker.cpp>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8h-source.html index 7b0ee17e7..249f2b4f5 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/worker_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: worker.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: worker.h Source File @@ -22,12 +22,12 @@
    -

    worker.h

    00001 /* 
    +

    worker.h

    00001 /*
     00002 * <worker.h>
    -00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
    -00004 * (C) OPAC Team, LIFL, 2002-2007
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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 +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8cpp-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8cpp-source.html index d8f7d6632..de53efaf8 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8cpp-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8cpp-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: xml_parser.cpp Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: xml_parser.cpp Source File @@ -22,12 +22,12 @@
    -

    xml_parser.cpp

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,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 } +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8h-source.html b/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8h-source.html index 1d76ecd6d..988d7d7ac 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8h-source.html +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/html/xml__parser_8h-source.html @@ -1,6 +1,6 @@ -ParadisEO-PEOMovingObjects: xml_parser.h Source File +ParadisEO-PEO-ParallelanddistributedEvolvingObjects: xml_parser.h Source File @@ -22,12 +22,12 @@
    -

    xml_parser.h

    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
    +00003 * Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2008
    +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,
    @@ -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  +

    Generated on Wed Mar 12 15:23:42 2008 for ParadisEO-PEO-ParallelanddistributedEvolvingObjects by  doxygen 1.4.7
    diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/annotated.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/annotated.tex index c9220430d..eab17baa3 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/annotated.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/annotated.tex @@ -1,41 +1,67 @@ -\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{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{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 )}{\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/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.eps index bc98683b5..73d573356 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.eps +++ b/tags/paradiseo-1.1/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 30.1205 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 6.3 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 16.6 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 +/rows 3 def /cols 6 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -178,13 +178,11 @@ 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 +(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 +195,51 @@ 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 + (Communicable) 3 2 box + (Cooperative) 0.5 1 box + (Runner) 2 1 box + (Service) 4 1 box + (Worker) 5 1 box + (peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) 0 0 box + (peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) 1 0 box + (peoWrapper) 2 0 box + (peoMultiStart< EntityType >) 3 0 box + (peoPopEval< EOT >) 4 0 box (peoTransform< EOT >) 5 0 box -5 0 mark % ----- relations ----- solid -1 3 4.25 out +1 3 1.25 out solid -0 5 5 conn +0.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 1.75 in solid -0 5 4.75 in +1 4 0.25 out solid -0 0 3.5 hedge +3 5 1 conn solid -0 0 2.5 hedge +0 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 -solid -0 4 1.5 hedge -solid -0 4 0.5 hedge -solid -4 4 0.5 vedge +0 5 0.75 in diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.pdf index 9213c1a3e..83afac497 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.tex index 44bcd5647..85fbd0afe 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicable.tex +++ b/tags/paradiseo-1.1/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.843373cm]{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/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicator.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicator.pdf index 803364617..ad59e04c1 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicator.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCommunicator.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.eps index 60c6b6b94..874f08de1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.eps +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.pdf index d7a04b51a..df2e52d61 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.tex index 772edcf01..94011841d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classCooperative.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classDisplayBestRoute.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classDisplayBestRoute.pdf index 3e97f2f86..a5b297e3c 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classDisplayBestRoute.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classDisplayBestRoute.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classMergeRouteEval.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classMergeRouteEval.pdf index d469f7cf8..6c42b925a 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classMergeRouteEval.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classMergeRouteEval.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.pdf index 2e0f92b3c..abc21b55e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.pdf +++ b/tags/paradiseo-1.1/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 [(Õ"÷îòo6îÅcÊ¿O¥)(Õ"÷îòo6îÅcÊ¿O¥)] >> startxref 1117 diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.tex index 1b9508e9d..6b4776025 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classReactiveThread.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classRingTopology.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRingTopology.pdf index 3b9bdd5d6..fb4db0de4 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRingTopology.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRingTopology.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.eps index 0bc955061..ba647bc6c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.eps +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.pdf index c9bfd3d1a..30be357a1 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.tex index ce98b3b32..3038e1337 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classRunner.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classService.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.eps index b2c160b85..105f0dbe9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.eps +++ b/tags/paradiseo-1.1/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 112.994 %%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 4.425 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 3 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -175,14 +175,9 @@ boxfont setfont 1 boundaspect scale (Service) cw (Communicable) 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 +189,25 @@ 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 1 box + (Communicable) 1 2 box + (peoMultiStart< EntityType >) 0 0 box + (peoPopEval< EOT >) 1 0 box + (peoTransform< EOT >) 2 0 box % ----- relations ----- solid -0 2 2 out +0 1 1 out solid -1 2 3 in +1 1 2 in solid -1 2 1.25 out +1 1 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 2 1 conn solid 0 0 0.75 in solid 0 1 0.75 in solid -0 3 0.75 in -solid -0 4 0.75 in +0 2 0.75 in diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.pdf index c9b2abcb1..a4bd889ab 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.tex index fad0d49e2..e1180ea9e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classService.tex +++ b/tags/paradiseo-1.1/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=3cm]{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/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.eps index b0fe5e8f1..9528bf148 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.eps +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.pdf index 2e71727a7..ee316f0db 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.tex index 2c95acf63..3e34d2e99 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classThread.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.eps index 45dacefa6..c9cbd641d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.eps +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.pdf index dfcce5d06..71f785cbf 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.tex index 532211163..6619e78a6 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classTopology.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.pdf index e43d46552..275ebe9f3 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.tex index 4cd676866..b76f66d0b 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classWorker.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf index 474c0d8dd..6c2ad9d0a 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAggEvalFunc.pdf @@ -45,8 +45,8 @@ endobj endobj 2 0 obj <>endobj @@ -65,7 +65,7 @@ xref 0000000853 00000 n trailer << /Size 11 /Root 1 0 R /Info 2 0 R -/ID [(XÄ›}yõ¾^}årðz'š)(XÄ›}yõ¾^}årðz'š)] +/ID [(Ÿ‰$.†“5õ {?ÐÛg )(Ÿ‰$.†“5õ {?ÐÛg )] >> startxref 1106 diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps index 292b6cce7..f7a273960 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.eps +++ b/tags/paradiseo-1.1/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 120.482 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,7 +19,7 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.25 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 4.15 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def @@ -173,7 +173,7 @@ boxfont setfont 1 boundaspect scale -(peoAsyncIslandMig< EOT >) cw +(peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) cw (Cooperative) cw (eoUpdater) cw (Communicable) cw @@ -190,7 +190,7 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- - (peoAsyncIslandMig< EOT >) 0.5 0 box + (peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >) 0.5 0 box (Cooperative) 0 1 box (eoUpdater) 1 1 box (Communicable) 0 2 box diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf index 45d2aac49..e1fd496f8 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex index bb0bcc2cf..353a2e46e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoAsyncIslandMig.tex @@ -1,217 +1,149 @@ \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=3.37349cm]{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) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\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 \doxyref{Function} realizing packages. \item\end{CompactList}\item +\hypertarget{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8}{ +void \hyperlink{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8}{unpack} ()} +\label{classpeoAsyncIslandMig_c32a27e387bcd8ce383a4cb1732dbed8} + +\begin{CompactList}\small\item\em \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{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} \doxyref{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. +Constructor. \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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf index 6c9a46e11..60e1ef72d 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex index ff2628bb6..f032ccf3f 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoNoAggEvalFunc.tex @@ -16,10 +16,7 @@ Inheritance diagram for peo\-No\-Agg\-Eval\-Func$<$ EOT $>$::\begin{figure}[H] \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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.eps index b486aceee..251d770da 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.eps +++ b/tags/paradiseo-1.1/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 251.572 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,7 +19,7 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.05 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.9875 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def @@ -175,9 +175,10 @@ boxfont setfont 1 boundaspect scale (peoPopEval< EOT >) cw (Service) cw +(eoPopEvalFunc< EOT >) cw (Communicable) cw -(peoParaPopEval< EOT >) cw -(peoSeqPopEval< 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 @@ -189,27 +190,32 @@ 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.5 0 box + (Service) 0 1 box + (eoPopEvalFunc< EOT >) 1 1 box + (Communicable) 0 2 box + (eoBF< A1, A2, R >) 1 2 box + (eoFunctorBase) 1 3 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 +0 0.5 0 out solid 0 1 1 conn solid -0 0 0.75 in +1 0 1 in solid -0 1 0.75 in +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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.pdf index 4e901adc8..5d4100332 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.tex index a43d26bb8..f0f1fa298 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoPopEval.tex @@ -2,7 +2,7 @@ \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. {\tt \#include $<$peo\-Pop\-Eval.h$>$} @@ -16,23 +16,284 @@ Inheritance diagram for peo\-Pop\-Eval$<$ EOT $>$::\begin{figure}[H] \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} (\bf{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$<$ \bf{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()} (\bf{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()} (\bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-dummy, \bf{eo\-Pop}$<$ EOT $>$ \&\_\-\_\-pop) +\begin{CompactList}\small\item\em Operator ()( eo\-Pop$<$ EOT $>$\& \_\-\_\-dummy, eo\-Pop$<$ EOT $>$\& \_\-\_\-pop ). \item\end{CompactList}\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$<$ \bf{eo\-Eval\-Func}$<$ EOT $>$ $\ast$ $>$ \& \hyperlink{classpeoPopEval_5862b3661c5b0531d55870b5f3881d1e}{funcs} +\item +\hypertarget{classpeoPopEval_4c563a67b776d97b25a05013ddc99921}{ +std::vector$<$ \bf{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. -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} \doxyref{eo\-Pop\-Eval\-Func} \end{Desc} +\begin{Desc} +\item[Version:]1.2 \end{Desc} +\begin{Desc} +\item[Date:]2006 \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} (\bf{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$<$ \bf{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$<$ \doxyref{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() (\bf{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() (\bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-dummy}, \bf{eo\-Pop}$<$ EOT $>$ \& {\em \_\-\_\-pop})}} +\label{classpeoPopEval_fd942c2b66f31c7d12a9ad48f1529a16} + + +Operator ()( eo\-Pop$<$ EOT $>$\& \_\-\_\-dummy, eo\-Pop$<$ EOT $>$\& \_\-\_\-pop ). + +\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 176 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 190 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 208 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 217 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 250 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 254 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$<$ \bf{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$<$ \doxyref{eo\-Eval\-Func} $<$ EOT $>$$\ast$ $>$\& funcs \item[{\em std}]:: vector$<$ \doxyref{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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps index 6f0fb127a..7ce165ba5 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.eps +++ b/tags/paradiseo-1.1/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 123.077 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,7 +19,7 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2.1625 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 4.0625 def % aspect ratio of the BoundingBox (width/height) /boundx 500 def /boundy boundx boundaspect div def /xspacing 0 def @@ -173,7 +173,7 @@ boxfont setfont 1 boundaspect scale -(peoSyncIslandMig< EOT >) cw +(peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) cw (Cooperative) cw (eoUpdater) cw (Communicable) cw @@ -190,7 +190,7 @@ boundx scalefactor div boundy scalefactor div scale % ----- classes ----- - (peoSyncIslandMig< EOT >) 0.5 0 box + (peoSyncIslandMig< TYPESELECT, TYPEREPLACE >) 0.5 0 box (Cooperative) 0 1 box (eoUpdater) 1 1 box (Communicable) 0 2 box diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf index 7b727b208..fa1fce03d 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex index 9a94013a2..d81654697 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoSyncIslandMig.tex @@ -1,226 +1,204 @@ \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=3.44615cm]{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) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\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 \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{Function} notify\-Sending. \item\end{CompactList}\item +\hypertarget{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f}{ +void \hyperlink{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f}{notify\-Receiving} ()} +\label{classpeoSyncIslandMig_75aacd3f7ffbc302c69addc342f45b8f} + +\begin{CompactList}\small\item\em \doxyref{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} \doxyref{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. +Constructor. \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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.eps b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.eps index 685b4bc71..7db54c40c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.eps +++ b/tags/paradiseo-1.1/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 272.109 %%Pages: 0 %%BeginSetup %%EndSetup @@ -19,12 +19,12 @@ /marginwidth 10 def /distx 20 def /disty 40 def -/boundaspect 2 def % aspect ratio of the BoundingBox (width/height) +/boundaspect 1.8375 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 +/rows 4 def /cols 2 def /scalefactor 0 def /boxfont /Times-Roman findfont fontheight scalefont def @@ -179,8 +179,6 @@ boxfont setfont (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 +190,32 @@ 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.5 0 box + (Service) 0 1 box + (eoTransform< EOT >) 1 1 box + (Communicable) 0 2 box + (eoUF< A1, R >) 1 2 box + (eoFunctorBase) 1 3 box % ----- relations ----- solid -0 0.5 1 out +0 0.5 0 out solid -0 1 2 conn +0 1 1 conn +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 -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/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.pdf b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.pdf index 936add316..43c6c0301 100644 Binary files a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.pdf and b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.pdf differ diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.tex index 5207893f6..b019fa9b1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/classpeoTransform.tex +++ b/tags/paradiseo-1.1/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=4cm]{classpeoTransform} \end{center} \end{figure} +\subsection*{Public Member Functions} +\begin{CompactItemize} +\item +\hyperlink{classpeoTransform_755989a2d080903d0cade75643de0788}{peo\-Transform} (\bf{eo\-Quad\-Op}$<$ EOT $>$ \&\_\-\_\-cross, double \_\-\_\-cross\_\-rate, \bf{eo\-Mon\-Op}$<$ EOT $>$ \&\_\-\_\-mut, double \_\-\_\-mut\_\-rate) +\begin{CompactList}\small\item\em Constructor. \item\end{CompactList}\item +void \hyperlink{classpeoTransform_9322aa28ad272289132e342624a0adb4}{operator()} (\bf{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 \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{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 \doxyref{Function} notify\-Sending\-All\-Resource\-Requests. \item\end{CompactList}\end{CompactItemize} +\subsection*{Private Attributes} +\begin{CompactItemize} +\item +\bf{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}{ +\bf{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}{ +\bf{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} \doxyref{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} (\bf{eo\-Quad\-Op}$<$ EOT $>$ \& {\em \_\-\_\-cross}, double {\em \_\-\_\-cross\_\-rate}, \bf{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() (\bf{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$>$ \bf{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/paradiseo-1.1/paradiseo-peo/doc/latex/doxygen.sty b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/doxygen.sty index e00898f58..fb975d947 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/doxygen.sty +++ b/tags/paradiseo-1.1/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 Wed Mar 12 15:23:42 2008 for Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects by Doxygen }]{} +\lfoot[]{\fancyplain{}{\bfseries\scriptsize Generated on Wed Mar 12 15:23:42 2008 for Paradis\-EO-PEO-Parallelanddistributed\-Evolving\-Objects by Doxygen }} \cfoot{} \newenvironment{Code} {\footnotesize} diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/hierarchy.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/hierarchy.tex index 385abf60e..cfb84c513 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/hierarchy.tex +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/hierarchy.tex @@ -1,36 +1,48 @@ -\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}{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\-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 \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 eo\-Functor\-Base{\tt \mbox{[}external\mbox{]}}\begin{CompactList} \item eo\-BF$<$ A1, A2, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Pop\-Eval\-Func$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-Pop\-Eval$<$ EOT $>$}{\pageref{classpeoPopEval}}{} +\end{CompactList} +\item eo\-Replacement$<$ POT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-Global\-Best\-Velocity$<$ POT $>$}{\pageref{classpeoGlobalBestVelocity}}{} +\item \contentsline{section}{peo\-Worst\-Position\-Replacement$<$ POT $>$}{\pageref{classpeoWorstPositionReplacement}}{} +\end{CompactList} +\item mo\-Move\-Incr\-Eval$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Incr\-Eval}{\pageref{classTwoOptIncrEval}}{} +\end{CompactList} +\item mo\-Move\-Init$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Init}{\pageref{classTwoOptInit}}{} +\end{CompactList} +\item mo\-Next\-Move$<$ Two\-Opt $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt\-Next}{\pageref{classTwoOptNext}}{} +\end{CompactList} \item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ EOT $>$}{\pageref{classpeoAggEvalFunc}}{} \begin{CompactList} \item \contentsline{section}{Merge\-Route\-Eval}{\pageref{classMergeRouteEval}}{} @@ -38,40 +50,82 @@ This inheritance list is sorted roughly, but not completely, alphabetically:\beg \end{CompactList} \item \contentsline{section}{peo\-Agg\-Eval\-Func$<$ eo\-Vector$<$ int, Node $>$ $>$}{\pageref{classpeoAggEvalFunc}}{} \end{CompactList} +\item eo\-BF$<$ EOType \&, EOType \&, bool $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Quad\-Op$<$ EOType $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Edge\-Xover}{\pageref{classEdgeXover}}{} +\item \contentsline{section}{Order\-Xover}{\pageref{classOrderXover}}{} +\item \contentsline{section}{Partial\-Mapped\-Xover}{\pageref{classPartialMappedXover}}{} +\end{CompactList} +\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}}{} +\item \contentsline{section}{peo\-Async\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}{\pageref{classpeoAsyncIslandMig}}{} +\item \contentsline{section}{peo\-Sync\-Island\-Mig$<$ TYPESELECT, TYPEREPLACE $>$}{\pageref{classpeoSyncIslandMig}}{} \end{CompactList} \end{CompactList} \item eo\-UF$<$ A1, R $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Eval\-Func$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Part\-Route\-Eval}{\pageref{classPartRouteEval}}{} +\item \contentsline{section}{peo\-Eval\-Func$<$ EOT, Fit\-T, Function\-Arg $>$}{\pageref{structpeoEvalFunc}}{} +\item \contentsline{section}{Route\-Eval}{\pageref{classRouteEval}}{} +\end{CompactList} +\item eo\-Init$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Route\-Init}{\pageref{classRouteInit}}{} +\end{CompactList} +\item eo\-Select\-One$<$ POT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{peo\-PSOSelect$<$ POT $>$}{\pageref{classpeoPSOSelect}}{} +\end{CompactList} \item eo\-Transform$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} \item \contentsline{section}{peo\-Transform$<$ EOT $>$}{\pageref{classpeoTransform}}{} \end{CompactList} \end{CompactList} +\item eo\-UF$<$ EOT \&, void $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item mo\-Move$<$ EOT $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{Two\-Opt}{\pageref{classTwoOpt}}{} \end{CompactList} -\item \contentsline{section}{peo\-Parallel\-Algorithm\-Wrapper::Abstract\-Algorithm}{\pageref{structpeoParallelAlgorithmWrapper_1_1AbstractAlgorithm}}{} +\end{CompactList} +\item eo\-UF$<$ EOType \&, bool $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Mon\-Op$<$ EOType $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item \contentsline{section}{City\-Swap}{\pageref{classCitySwap}}{} +\end{CompactList} +\end{CompactList} +\end{CompactList} +\item eo\-Op$<$ EOType $>${\tt \mbox{[}external\mbox{]}}\begin{CompactList} +\item eo\-Mon\-Op$<$ EOType $>${\tt \mbox{[}external\mbox{]}}\item eo\-Quad\-Op$<$ EOType $>${\tt \mbox{[}external\mbox{]}}\end{CompactList} +\item \contentsline{section}{MPIThreaded\-Env}{\pageref{classMPIThreadedEnv}}{} +\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\-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}{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 +137,10 @@ 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\-Rand}{\pageref{classTwoOptRand}}{} \end{CompactList} diff --git a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/namespaces.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/namespaces.tex index c69deee37..ac9063657 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/namespaces.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/latex/refman.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/refman.tex index e2e595b18..f54f06f0c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/refman.tex +++ b/tags/paradiseo-1.1/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 Wed Mar 12 15:23:42 2008}\\ \end{center} \end{titlepage} \clearemptydoublepage @@ -45,52 +45,78 @@ \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{classOrderXover} +\include{classPartialMappedXover} +\include{classPartRouteEval} \include{classpeoAggEvalFunc} \include{classpeoAsyncIslandMig} -\include{classpeoEA} +\include{structpeoEvalFunc} +\include{classpeoGlobalBestVelocity} +\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/paradiseo-1.1/paradiseo-peo/doc/latex/structSEND__REQUEST.tex b/tags/paradiseo-1.1/paradiseo-peo/doc/latex/structSEND__REQUEST.tex index 7b319bcac..47fd5035c 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/latex/structSEND__REQUEST.tex +++ b/tags/paradiseo-1.1/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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicable.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicable.3 index d0e543861..b5cc18272 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicable.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicator.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicator.3 index 4c541f2d4..82c1d2eff 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Communicator.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Cooperative.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Cooperative.3 index 9aa4a6bc7..9affa3e35 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Cooperative.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/DisplayBestRoute.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/DisplayBestRoute.3 index 18f1c70df..bce27b36e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/DisplayBestRoute.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME @@ -31,4 +31,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/paradiseo-1.1/paradiseo-peo/doc/man/man3/MergeRouteEval.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/MergeRouteEval.3 index 96d7907c5..f32169b05 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/MergeRouteEval.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME @@ -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/paradiseo-1.1/paradiseo-peo/doc/man/man3/ReactiveThread.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/ReactiveThread.3 index 8467f49d3..81768da4d 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/ReactiveThread.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/RingTopology.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/RingTopology.3 index a8d404156..d1670c2c4 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/RingTopology.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Runner.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Runner.3 index abdc983ec..318627d66 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Runner.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 index de6fbfb17..b94ace805 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/SEND_REQUEST.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Service.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Service.3 index 242238f59..e13310e07 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Service.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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 \fBpeoMultiStart< EntityType >\fP, \fBpeoPopEval< EOT >\fP, \fBpeoPopEval< eoReal< 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Thread.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Thread.3 index 668641367..04e88f682 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Thread.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Topology.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Topology.3 index 5d4e939ee..4f9af66a1 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Topology.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/Worker.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Worker.3 index 2327bb56a..0d7718e0f 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/Worker.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peo.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peo.3 index ed1fecf92..60cb0ec18 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peo.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 index 4109b0e40..947f6782e 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAggEvalFunc.3 +++ b/tags/paradiseo-1.1/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 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME @@ -30,4 +30,4 @@ Definition at line 53 of file peoAggEvalFunc.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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 index fd5d5126c..6e9be2fb0 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoAsyncIslandMig.3 @@ -1,8 +1,8 @@ -.TH "peoAsyncIslandMig" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*- +.TH "peoAsyncIslandMig" 3 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME -peoAsyncIslandMig \- The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +peoAsyncIslandMig \- Specific class for a asynchronous migration. .PP .SH SYNOPSIS @@ -16,21 +16,25 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .in +1c .ti -1c -.RI "\fBpeoAsyncIslandMig\fP (\fBeoContinue\fP< EOT > &__cont, \fBeoSelect\fP< EOT > &__select, \fBeoReplacement\fP< EOT > &__replace, \fBTopology\fP &__topology, \fBeoPop\fP< EOT > &__source, \fBeoPop\fP< EOT > &__destination)" +.RI "\fBpeoAsyncIslandMig\fP (\fBcontinuator\fP &__cont, \fBselector\fP< TYPESELECT > &__select, \fBreplacement\fP< TYPEREPLACE > &__replace, \fBTopology\fP &__topology)" .br -.RI "\fIConstructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. \fP" +.RI "\fIConstructor. \fP" .ti -1c .RI "void \fBoperator()\fP ()" .br -.RI "\fI\fBFunction\fP operator to be called as checkpoint for performing the migration step. \fP" +.RI "\fIoperator \fP" .ti -1c .RI "void \fBpack\fP ()" .br -.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.RI "\fI\fBFunction\fP realizing packages. \fP" .ti -1c .RI "void \fBunpack\fP ()" .br -.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.RI "\fI\fBFunction\fP reconstituting packages. \fP" +.ti -1c +.RI "void \fBpackSynchronizeReq\fP ()" +.br +.RI "\fI\fBFunction\fP packSynchronizeReq. \fP" .in -1c .SS "Private Member Functions" @@ -38,36 +42,32 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .ti -1c .RI "void \fBemigrate\fP ()" .br +.RI "\fI\fBFunction\fP which sends some emigrants. \fP" .ti -1c .RI "void \fBimmigrate\fP ()" .br +.RI "\fI\fBFunction\fP which receives some immigrants. \fP" .in -1c .SS "Private Attributes" .in +1c .ti -1c -.RI "\fBeoContinue\fP< EOT > & \fBcont\fP" +.RI "\fBcontinuator\fP & \fBcont\fP" .br .ti -1c -.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.RI "\fBselector\fP< TYPESELECT > & \fBselect\fP" .br .ti -1c -.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.RI "\fBreplacement\fP< TYPEREPLACE > & \fBreplace\fP" .br .ti -1c .RI "\fBTopology\fP & \fBtopology\fP" .br .ti -1c -.RI "\fBeoPop\fP< EOT > & \fBsource\fP" +.RI "std::queue< TYPEREPLACE > \fBimm\fP" .br .ti -1c -.RI "\fBeoPop\fP< EOT > & \fBdestination\fP" -.br -.ti -1c -.RI "std::queue< \fBeoPop\fP< EOT > > \fBimm\fP" -.br -.ti -1c -.RI "std::queue< \fBeoPop\fP< EOT > > \fBem\fP" +.RI "std::queue< TYPESELECT > \fBem\fP" .br .ti -1c .RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" @@ -76,101 +76,76 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .SH "Detailed Description" .PP -.SS "template class peoAsyncIslandMig< EOT >" -The \fBpeoAsyncIslandMig\fP class offers the elementary basis for implementating an asynchronous island migration model - requires the specification of several basic parameters, i.e. +.SS "template class peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >" +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. -.PP -The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: -.PP -\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offsprings replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified -.PP -Constructing an asynchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: -.PP -.PD 0 -.IP "1." 4 -topological model to be followed when performing migrations: -.br - -.br - \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands -.PP - -.IP "2." 4 -the continuation criterion, selection and replacement strategy etc. are defined: -.br - -.br - eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoPeriodicContinue< EOT > migCont( MIG_FREQ ); // migrations occur periodically at MIG_FREQ iterations eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoAsyncIslandMig< EOT > asyncMigration( -.br - migCont, migSelect, migReplace, migTopology, -.br - population, population -.br - ); // asynchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated -.PP - -.IP "3." 4 -creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): -.br - -.br - ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( asyncMigration ); // adding the migration operator as checkpoint element ... -.PP - -.IP "4." 4 -definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): -.br - -.br - peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above asyncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population -.PP -.PP -The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. -.PP -The above steps only create an asynchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). -.PP -Definition at line 140 of file peoAsyncIslandMig.h. -.SH "Constructor & Destructor Documentation" -.PP -.SS "template \fBpeoAsyncIslandMig\fP< EOT >::\fBpeoAsyncIslandMig\fP (\fBeoContinue\fP< EOT > & __cont, \fBeoSelect\fP< EOT > & __select, \fBeoReplacement\fP< EOT > & __replace, \fBTopology\fP & __topology, \fBeoPop\fP< EOT > & __source, \fBeoPop\fP< EOT > & __destination)" -.PP -Constructor for the \fBpeoAsyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. -.PP -\fBParameters:\fP +\fBSee also:\fP .RS 4 -\fIeoContinue<\fP EOT >& __cont - continuation criterion specifying whether the migration is performed or not; -.br -\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; -.br -\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; -.br -\fITopology&\fP __topology - topological model to be followed when performing migrations; -.br -\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; -.br -\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +\fBCooperative\fP \fBeoUpdater\fP +.RE +.PP +\fBVersion:\fP +.RS 4 +2.0 +.RE +.PP +\fBDate:\fP +.RS 4 +january 2008 .RE .PP .PP -Definition at line 199 of file peoAsyncIslandMig.h. +Definition at line 64 of file peoAsyncIslandMig.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoAsyncIslandMig\fP< TYPESELECT, TYPEREPLACE >::\fBpeoAsyncIslandMig\fP (\fBcontinuator\fP & __cont, \fBselector\fP< TYPESELECT > & __select, \fBreplacement\fP< TYPEREPLACE > & __replace, \fBTopology\fP & __topology)" +.PP +Constructor. +.PP +\fBParameters:\fP +.RS 4 +\fIcontinuator\fP & __cont +.br +\fIselector\fP & __select +.br +\fIreplacement\fP & __replace +.br +\fITopology&\fP __topology +.RE +.PP + +.PP +Definition at line 114 of file peoAsyncIslandMig.h. .PP References Topology::add(). -.SH "Member Function Documentation" +.SH "Member Data Documentation" .PP -.SS "template void \fBpeoAsyncIslandMig\fP< EOT >::operator() ()\fC [virtual]\fP" +.SS "template \fBcontinuator\fP& \fBpeoAsyncIslandMig\fP< TYPESELECT, TYPEREPLACE >::\fBcont\fP\fC [private]\fP" .PP -\fBFunction\fP operator to be called as checkpoint for performing the migration step. +\fBParameters:\fP +.RS 4 +\fIcontinuator\fP & cont +.br +\fIselector\fP & select +.br +\fIreplacement\fP & replace +.br +\fITopology&\fP topology +.br +\fIstd\fP :: queue< TYPEREPLACE > imm +.br +\fIstd\fP :: queue< TYPESELECT > em +.br +\fIstd\fP :: queue< Cooperative* > coop_em +.RE .PP -The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. + .PP -Implements \fBeoF< void >\fP. +Definition at line 104 of file peoAsyncIslandMig.h. .PP -Definition at line 276 of file peoAsyncIslandMig.h. -.PP -References peoAsyncIslandMig< EOT >::cont, peoAsyncIslandMig< EOT >::emigrate(), peoAsyncIslandMig< EOT >::immigrate(), and peoAsyncIslandMig< EOT >::source. +Referenced by peoAsyncIslandMig< TYPESELECT, TYPEREPLACE >::operator()(). .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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 index caa54ee6a..c7d632e51 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoNoAggEvalFunc.3 @@ -1,4 +1,4 @@ -.TH "peoNoAggEvalFunc" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*- +.TH "peoNoAggEvalFunc" 3 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME @@ -29,7 +29,23 @@ The \fBpeoNoAggEvalFunc\fP class does nothing more than an association between a The class is provided as a mean of declaring that no aggregation is required for the evaluation function - the fitness value is explicitly specified. .PP Definition at line 47 of file peoNoAggEvalFunc.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoNoAggEvalFunc\fP< EOT >::operator() (EOT & __sol, const typename EOT::Fitness & __fit)" +.PP +Operator which sets as fitness the \fB__fit\fP value for the \fB__sol\fP individual. +.PP +\fBParameters:\fP +.RS 4 +\fIEOT&\fP __sol +.br +\fItypename\fP EOT :: Fitness& __fit +.RE +.PP + +.PP +Definition at line 59 of file peoNoAggEvalFunc.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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoPopEval.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoPopEval.3 index 2b0d9884f..1e9d07ea9 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoPopEval.3 +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoPopEval.3 @@ -1,8 +1,8 @@ -.TH "peoPopEval" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*- +.TH "peoPopEval" 3 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME -peoPopEval \- The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. +peoPopEval \- Parallel evaluation functor wrapper. .PP .SH SYNOPSIS @@ -10,28 +10,275 @@ peoPopEval \- The \fB\fBpeoPopEval\fP\fP class provides the interface for constr .PP \fC#include \fP .PP -Inherits \fBService\fP. -.PP -Inherited by \fBpeoParaPopEval< EOT >\fP, and \fBpeoSeqPopEval< EOT >\fP. +Inherits \fBService\fP, and \fBeoPopEvalFunc< EOT >< EOT >\fP. .PP .SS "Public Member Functions" .in +1c .ti -1c -.RI "virtual void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)=0" +.RI "\fBpeoPopEval\fP (\fBeoEvalFunc\fP< EOT > &__eval_func)" +.br +.RI "\fIConstructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. \fP" +.ti -1c +.RI "\fBpeoPopEval\fP (const std::vector< \fBeoEvalFunc\fP< EOT > * > &__funcs, \fBpeoAggEvalFunc\fP< EOT > &__merge_eval)" +.br +.RI "\fIConstructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__dummy, \fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator ()( eoPop< EOT >& __dummy, eoPop< EOT >& __pop ). \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fIAuxiliary function - it calls the specified evaluation functor(s). There is no need to explicitly call the function. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fIAuxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fIAuxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "const std::vector< \fBeoEvalFunc\fP< EOT > * > & \fBfuncs\fP" +.br +.ti -1c +.RI "std::vector< \fBeoEvalFunc\fP< EOT > * > \fBone_func\fP" +.br +.ti -1c +.RI "\fBpeoAggEvalFunc\fP< EOT > & \fBmerge_eval\fP" +.br +.ti -1c +.RI "\fBpeoNoAggEvalFunc\fP< EOT > \fBno_merge_eval\fP" +.br +.ti -1c +.RI "std::queue< EOT * > \fBtasks\fP" +.br +.ti -1c +.RI "std::map< EOT *, std::pair< unsigned, unsigned > > \fBprogression\fP" +.br +.ti -1c +.RI "unsigned \fBnum_func\fP" +.br +.ti -1c +.RI "EOT \fBsol\fP" +.br +.ti -1c +.RI "EOT * \fBad_sol\fP" +.br +.ti -1c +.RI "unsigned \fBtotal\fP" .br -.RI "\fIInterface function providing the signature for constructing an evaluation functor. \fP" .in -1c .SH "Detailed Description" .PP .SS "template class peoPopEval< EOT >" -The \fB\fBpeoPopEval\fP\fP class provides the interface for constructing ParadisEO specific evaluation functors. +Parallel evaluation functor wrapper. -The derived classes may be used as wrappers for \fB\fBEO\fP\fP-derived evaluation functors. In order to have an example, please refer to the implementation of the \fB\fBpeoSeqPopEval\fP\fP and \fB\fBpeoParaPopEval\fP\fP classes. +\fBSee also:\fP +.RS 4 +\fBService\fP \fBeoPopEvalFunc\fP +.RE .PP -Definition at line 47 of file peoPopEval.h. +\fBVersion:\fP +.RS 4 +1.2 +.RE +.PP +\fBDate:\fP +.RS 4 +2006 +.RE +.PP + +.PP +Definition at line 53 of file peoPopEval.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoPopEval\fP< EOT >::\fBpeoPopEval\fP (\fBeoEvalFunc\fP< EOT > & __eval_func)" +.PP +Constructor function - an EO-derived evaluation functor has to be specified; an internal reference is set towards the specified evaluation functor. +.PP +\fBParameters:\fP +.RS 4 +\fIeoEvalFunc<\fP EOT >& __eval_func - EO-derived evaluation functor to be applied in parallel on each individual of a specified population +.RE +.PP + +.PP +Definition at line 132 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::one_func. +.SS "template \fBpeoPopEval\fP< EOT >::\fBpeoPopEval\fP (const std::vector< \fBeoEvalFunc\fP< EOT > * > & __funcs, \fBpeoAggEvalFunc\fP< EOT > & __merge_eval)" +.PP +Constructor function - a vector of EO-derived evaluation functors has to be specified as well as an aggregation function. +.PP +\fBParameters:\fP +.RS 4 +\fIconst\fP std :: vector< \fBeoEvalFunc\fP < EOT >* >& __funcs - vector of EO-derived partial evaluation functors; +.br +\fIpeoAggEvalFunc<\fP EOT >& __merge_eval - aggregation functor for creating a fitness value out of the partial fitness values. +.RE +.PP + +.PP +Definition at line 141 of file peoPopEval.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoPopEval\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)" +.PP +Operator for applying the evaluation functor (direct or aggregate) for each individual of the specified population. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop - population to be evaluated by applying the evaluation functor specified in the constructor. +.RE +.PP + +.PP +Definition at line 154 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::funcs, peoPopEval< EOT >::progression, Service::requestResourceRequest(), Communicable::stop(), peoPopEval< EOT >::tasks, and peoPopEval< EOT >::total. +.PP +Referenced by peoPopEval< EOT >::operator()(). +.SS "template void \fBpeoPopEval\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __dummy, \fBeoPop\fP< EOT > & __pop)" +.PP +Operator ()( eoPop< EOT >& __dummy, eoPop< EOT >& __pop ). +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __dummy +.br +\fIeoPop<\fP EOT >& __pop +.RE +.PP + +.PP +Definition at line 149 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::operator()(). +.SS "template void \fBpeoPopEval\fP< EOT >::packData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 176 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::progression, and peoPopEval< EOT >::tasks. +.SS "template void \fBpeoPopEval\fP< EOT >::unpackData ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 190 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::ad_sol, peoPopEval< EOT >::num_func, and peoPopEval< EOT >::sol. +.SS "template void \fBpeoPopEval\fP< EOT >::packResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 208 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::ad_sol, and peoPopEval< EOT >::sol. +.SS "template void \fBpeoPopEval\fP< EOT >::unpackResult ()\fC [virtual]\fP" +.PP +Auxiliary function for transferring data between the process requesting an evaluation operation and the process that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 217 of file peoPopEval.h. +.PP +References peoPopEval< EOT >::ad_sol, Service::getOwner(), peoPopEval< EOT >::merge_eval, peoPopEval< EOT >::progression, Communicable::resume(), Thread::setActive(), and peoPopEval< EOT >::total. +.SS "template void \fBpeoPopEval\fP< EOT >::notifySendingData ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 250 of file peoPopEval.h. +.SS "template void \fBpeoPopEval\fP< EOT >::notifySendingAllResourceRequests ()\fC [virtual]\fP" +.PP +Auxiliary function for notifications between the process requesting an evaluation operation and the processes that performs the actual evaluation phase. +.PP +There is no need to explicitly call the function. +.PP +Reimplemented from \fBService\fP. +.PP +Definition at line 254 of file peoPopEval.h. +.PP +References Service::getOwner(), and Thread::setPassive(). +.SH "Member Data Documentation" +.PP +.SS "template const std :: vector< \fBeoEvalFunc\fP < EOT >* >& \fBpeoPopEval\fP< EOT >::\fBfuncs\fP\fC [private]\fP" +.PP +\fBParameters:\fP +.RS 4 +\fIstd\fP :: vector< \fBeoEvalFunc\fP < EOT >* >& funcs +.br +\fIstd\fP :: vector< \fBeoEvalFunc\fP < EOT >* > one_func +.br +\fIpeoAggEvalFunc<\fP EOT >& merge_eval +.br +\fIpeoNoAggEvalFunc<\fP EOT > no_merge_eval +.br +\fIstd\fP :: queue< EOT* >tasks +.br +\fIstd\fP :: map< EOT*, std :: pair< unsigned, unsigned > > progression +.br +\fIunsigned\fP num_func +.br +\fIEOT\fP sol +.br +\fIEOT\fP *ad_sol +.br +\fIunsigned\fP total +.RE +.PP + +.PP +Definition at line 119 of file peoPopEval.h. +.PP +Referenced by peoPopEval< EOT >::execute(), and peoPopEval< EOT >::operator()(). .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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 index d9854a182..8f2836a87 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoSyncIslandMig.3 @@ -1,8 +1,8 @@ -.TH "peoSyncIslandMig" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*- +.TH "peoSyncIslandMig" 3 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME -peoSyncIslandMig \- The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +peoSyncIslandMig \- Specific class for a synchronous migration. .PP .SH SYNOPSIS @@ -16,25 +16,41 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .in +1c .ti -1c -.RI "\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBeoSelect\fP< EOT > &__select, \fBeoReplacement\fP< EOT > &__replace, \fBTopology\fP &__topology, \fBeoPop\fP< EOT > &__source, \fBeoPop\fP< EOT > &__destination)" +.RI "\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBselector\fP< TYPESELECT > &__select, \fBreplacement\fP< TYPEREPLACE > &__replace, \fBTopology\fP &__topology)" .br -.RI "\fIConstructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. \fP" +.RI "\fIConstructor. \fP" .ti -1c .RI "void \fBoperator()\fP ()" .br -.RI "\fI\fBFunction\fP operator to be called as checkpoint for performing the migration step. \fP" +.RI "\fIoperator \fP" .ti -1c .RI "void \fBpack\fP ()" .br -.RI "\fIAuxiliary function dealing with sending the emigrant individuals. There is no need to explicitly call the function. \fP" +.RI "\fI\fBFunction\fP realizing packages. \fP" .ti -1c .RI "void \fBunpack\fP ()" .br -.RI "\fIAuxiliary function dealing with receiving immigrant individuals. There is no need to explicitly call the function. \fP" +.RI "\fI\fBFunction\fP reconstituting packages. \fP" +.ti -1c +.RI "void \fBpackSynchronizeReq\fP ()" +.br +.RI "\fI\fBFunction\fP packSynchronizeReq. \fP" .ti -1c .RI "void \fBnotifySending\fP ()" .br -.RI "\fIAuxiliary function dealing with migration notifications. There is no need to explicitly call the function. \fP" +.RI "\fI\fBFunction\fP notifySending. \fP" +.ti -1c +.RI "void \fBnotifyReceiving\fP ()" +.br +.RI "\fI\fBFunction\fP notifyReceiving. \fP" +.ti -1c +.RI "void \fBnotifySendingSyncReq\fP ()" +.br +.RI "\fInotifySendingSyncReq \fP" +.ti -1c +.RI "void \fBnotifySynchronized\fP ()" +.br +.RI "\fInotifySynchronized \fP" .in -1c .SS "Private Member Functions" @@ -50,28 +66,22 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .in +1c .ti -1c -.RI "\fBeoPeriodicContinue\fP< EOT > \fBcont\fP" +.RI "\fBeoSyncContinue\fP \fBcont\fP" .br .ti -1c -.RI "\fBeoSelect\fP< EOT > & \fBselect\fP" +.RI "\fBselector\fP< TYPESELECT > & \fBselect\fP" .br .ti -1c -.RI "\fBeoReplacement\fP< EOT > & \fBreplace\fP" +.RI "\fBreplacement\fP< TYPEREPLACE > & \fBreplace\fP" .br .ti -1c .RI "\fBTopology\fP & \fBtopology\fP" .br .ti -1c -.RI "\fBeoPop\fP< EOT > & \fBsource\fP" +.RI "std::queue< TYPEREPLACE > \fBimm\fP" .br .ti -1c -.RI "\fBeoPop\fP< EOT > & \fBdestination\fP" -.br -.ti -1c -.RI "std::queue< \fBeoPop\fP< EOT > > \fBimm\fP" -.br -.ti -1c -.RI "std::queue< \fBeoPop\fP< EOT > > \fBem\fP" +.RI "std::queue< TYPESELECT > \fBem\fP" .br .ti -1c .RI "std::queue< \fBCooperative\fP * > \fBcoop_em\fP" @@ -79,105 +89,108 @@ Inherits \fBCooperative\fP, and \fBeoUpdater\fP. .ti -1c .RI "sem_t \fBsync\fP" .br +.ti -1c +.RI "bool \fBexplicitPassive\fP" +.br +.ti -1c +.RI "bool \fBstandbyMigration\fP" +.br +.ti -1c +.RI "std::vector< \fBCooperative\fP * > \fBin\fP" +.br +.ti -1c +.RI "std::vector< \fBCooperative\fP * > \fBout\fP" +.br +.ti -1c +.RI "std::vector< \fBCooperative\fP * > \fBall\fP" +.br +.ti -1c +.RI "unsigned \fBnbMigrations\fP" +.br .in -1c .SH "Detailed Description" .PP -.SS "template class peoSyncIslandMig< EOT >" -The \fBpeoSyncIslandMig\fP class offers the elementary basis for implementating a synchronous island migration model - requires the specification of several basic parameters, i.e. +.SS "template class peoSyncIslandMig< TYPESELECT, TYPEREPLACE >" +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. -.PP -The migration operator is called at the end of each generation of an evolutionary algorithms as a checkpoint object - the following code exposes the structure of a classic evolutionary algorithm: -.PP -\fBdo\fP { select( population, offsprings ); // select the offsprings from the current population transform( offsprings ); // crossover and mutation operators are applied on the selected offsprings evaluate( offsprings ); // evaluation step of the resulting offspring replace( population, offsprings ); // replace the individuals in the current population whith individuals from the offspring population, according to a specified replacement strategy } \fBwhile\fP ( eaCheckpointContinue( population ) ); // checkpoint operators are applied on the current population, including the migration operator, if any specified -.PP -Constructing a synchronous island migration model requires having defined (1) a topological migration model, (2) the control parameters of the migration process, (3) a checkpoint object associated with an evolutionary algorithm, and (4) an owner object must be set. The owner object must be derived from the \fB\fBRunner\fP\fP class (for example a \fBpeoEA\fP object represents a possible owner). A simple example is offered bellow: -.PP -.PD 0 -.IP "1." 4 -topological model to be followed when performing migrations: -.br - -.br - \fBRingTopology\fP migTopology; // a simple ring topological model - each island communicates with two other islands -.PP - -.IP "2." 4 -the continuation criterion, selection and replacement strategy etc. are defined: -.br - -.br - eoPop< EOT > population( POP_SIZE, popInitializer ); // population of individuals to be used for the evolutionary algorithm eoRandomSelect< EOT > migSelectStrategy; // selection strategy - in this case a random selection is applied eoSelectNumber< EOT > migSelect( migSelectStrategy, MIG_SIZE ); // number of individuals to be selected using the specified strategy eoPlusReplacement< EOT > migReplace; // immigration strategy - the worse individuals in the destination population are replaced by the immigrant individuals peoSyncIslandMig< EOT > syncMigration( -.br - MIG_FREQ, migSelect, migReplace, migTopology, -.br - population, population -.br - ); // synchronous migration object - the emigrant individuals are selected from the same from population in which the immigrant individuals are being integrated -.PP - -.IP "3." 4 -creation of a checkpoint object as part of the definition of an evolutionary algoritm (details of th EA not given as being out of scope): -.br - -.br - ... eoGenContinue< EOT > eaCont( NUM_GEN ); // the evolutionary algorithm will stop after NUM_GEN generations eoCheckPoint< EOT > eaCheckpointContinue( eaCont ); // number of individuals to be selected using the specified strategy ... eaCheckpointContinue.add( syncMigration ); // adding the migration operator as checkpoint element ... -.PP - -.IP "4." 4 -definition of an owner evolutionary algorithm (an object inheriting the \fB\fBRunner\fP\fP class): -.br - -.br - peoEA< EOT > eaAlg( eaCheckpointContinue, eaPopEval, eaSelect, eaTransform, eaReplace); // evolutionary algorithm having as checkpoint the eaCheckpointContinue object defined above syncMigration.setOwner( eaAlg ); // setting the evolutionary algorithm as owner of the migration object eaAlg( population ); // applying the evolutionary algorithm on a given population -.PP -.PP -The source and the destination population for the migration object were specified as being the same, in step no. 2, as we are usually interested in selecting the emigrants and integrating the immigrant individuals from and in, respectively, one unique population, iteratively evolved by an evolutionary algorithm. There is no restriction in having two distinct populations as source and destination for the emigrant and immigrant individuals respectively. -.PP -The above steps only create a synchronous migration object associated to an evolutionary algorithm. The creation of several islands requires the reiteration of the steps 2 through 4 for creating distinct algorithms, with distinct populations and the associated distinctly parametrized migration objects. The interconnecting element is the underlying topology, defined at step 1 (the same C++ migTopology object has to be passed as parameter for all the migration objects, in order to interconnect them). -.PP -Definition at line 142 of file peoSyncIslandMig.h. -.SH "Constructor & Destructor Documentation" -.PP -.SS "template \fBpeoSyncIslandMig\fP< EOT >::\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBeoSelect\fP< EOT > & __select, \fBeoReplacement\fP< EOT > & __replace, \fBTopology\fP & __topology, \fBeoPop\fP< EOT > & __source, \fBeoPop\fP< EOT > & __destination)" -.PP -Constructor for the \fBpeoSyncIslandMig\fP class; the characteristics of the migration model are defined through the specified parameters - out of the box objects provided in \fBEO\fP, etc., or custom, derived objects may be passed as parameters. -.PP -\fBParameters:\fP +\fBSee also:\fP .RS 4 -\fIunsigned\fP __frequency - frequency of the migrations - the migrations occur periodically; -.br -\fIeoSelect<\fP EOT >& __select - selection strategy to be applied for constructing a list of emigrant individuals out of the source population; -.br -\fIeoReplacement<\fP EOT >& __replace - replacement strategy used for integrating the immigrant individuals in the destination population; -.br -\fITopology&\fP __topology - topological model to be followed when performing migrations; -.br -\fIeoPop<\fP EOT >& __source - source population from which the emigrant individuals are selected; -.br -\fIeoPop<\fP EOT >& __destination - destination population in which the immigrant population are integrated. +\fBCooperative\fP \fBeoUpdater\fP +.RE +.PP +\fBVersion:\fP +.RS 4 +2.0 +.RE +.PP +\fBDate:\fP +.RS 4 +january 2008 .RE .PP .PP -Definition at line 206 of file peoSyncIslandMig.h. -.PP -References Topology::add(), and peoSyncIslandMig< EOT >::sync. -.SH "Member Function Documentation" +Definition at line 71 of file peoSyncIslandMig.h. +.SH "Constructor & Destructor Documentation" .PP -.SS "template void \fBpeoSyncIslandMig\fP< EOT >::operator() ()\fC [virtual]\fP" +.SS "template \fBpeoSyncIslandMig\fP< TYPESELECT, TYPEREPLACE >::\fBpeoSyncIslandMig\fP (unsigned __frequency, \fBselector\fP< TYPESELECT > & __select, \fBreplacement\fP< TYPEREPLACE > & __replace, \fBTopology\fP & __topology)" .PP -\fBFunction\fP operator to be called as checkpoint for performing the migration step. +Constructor. .PP -The emigrant individuals are selected from the source population and sent to the next island (defined by the topology object) while the immigrant individuals are integrated in the destination population. There is no need to explicitly call the function - the wrapper checkpoint object (please refer to the above example) will perform the call when required. +\fBParameters:\fP +.RS 4 +\fIunsigned\fP __frequency +.br +\fIselector\fP & __select +.br +\fIreplacement\fP & __replace +.br +\fITopology&\fP __topology +.RE .PP -Implements \fBeoF< void >\fP. + .PP -Definition at line 280 of file peoSyncIslandMig.h. +Definition at line 139 of file peoSyncIslandMig.h. .PP -References peoSyncIslandMig< EOT >::cont, peoSyncIslandMig< EOT >::emigrate(), Cooperative::getOwner(), peoSyncIslandMig< EOT >::immigrate(), Thread::setActive(), peoSyncIslandMig< EOT >::source, Communicable::stop(), and peoSyncIslandMig< EOT >::sync. +References Topology::add(), and peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::sync. +.SH "Member Data Documentation" +.PP +.SS "template \fBeoSyncContinue\fP \fBpeoSyncIslandMig\fP< TYPESELECT, TYPEREPLACE >::\fBcont\fP\fC [private]\fP" +.PP +\fBParameters:\fP +.RS 4 +\fI\fBeoSyncContinue\fP\fP cont +.br +\fIselector\fP & select +.br +\fIreplacement\fP & replace +.br +\fITopology&\fP topology +.br +\fIstd\fP :: queue< TYPEREPLACE > imm +.br +\fIstd\fP :: queue< TYPESELECT > em +.br +\fIstd\fP :: queue< Cooperative* > coop_em +.br +\fIsem_t\fP sync +.br +\fIbool\fP explicitPassive +.br +\fIbool\fP standbyMigration +.br +\fIstd\fP :: vector< Cooperative* > in, out, all +.br +\fIunsigned\fP nbMigrations +.RE +.PP + +.PP +Definition at line 124 of file peoSyncIslandMig.h. +.PP +Referenced by peoSyncIslandMig< TYPESELECT, TYPEREPLACE >::operator()(). .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/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoTransform.3 b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoTransform.3 index 2ffdb3dd9..6a5ad1c37 100644 --- a/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoTransform.3 +++ b/tags/paradiseo-1.1/paradiseo-peo/doc/man/man3/peoTransform.3 @@ -1,8 +1,8 @@ -.TH "peoTransform" 3 "8 Oct 2007" "Version 1.0" "ParadisEO-PEOMovingObjects" \" -*- nroff -*- +.TH "peoTransform" 3 "12 Mar 2008" "Version 1.1" "ParadisEO-PEO-ParallelanddistributedEvolvingObjects" \" -*- nroff -*- .ad l .nh .SH NAME -peoTransform \- The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. +peoTransform \- Class for a parallel transform. .PP .SH SYNOPSIS @@ -12,16 +12,168 @@ peoTransform \- The \fBpeoTransform\fP class acts only as an interface for creat .PP Inherits \fBService\fP, and \fBeoTransform< EOT >< EOT >\fP. .PP -Inherited by \fBpeoParaSGATransform< EOT >\fP, and \fBpeoSeqTransform< EOT >\fP. -.PP +.SS "Public Member Functions" + +.in +1c +.ti -1c +.RI "\fBpeoTransform\fP (\fBeoQuadOp\fP< EOT > &__cross, double __cross_rate, \fBeoMonOp\fP< EOT > &__mut, double __mut_rate)" +.br +.RI "\fIConstructor. \fP" +.ti -1c +.RI "void \fBoperator()\fP (\fBeoPop\fP< EOT > &__pop)" +.br +.RI "\fIOperator. \fP" +.ti -1c +.RI "void \fBpackData\fP ()" +.br +.RI "\fI\fBFunction\fP realizing packages of data. \fP" +.ti -1c +.RI "void \fBunpackData\fP ()" +.br +.RI "\fI\fBFunction\fP reconstituting packages of data. \fP" +.ti -1c +.RI "void \fBexecute\fP ()" +.br +.RI "\fI\fBFunction\fP which executes the algorithm. \fP" +.ti -1c +.RI "void \fBpackResult\fP ()" +.br +.RI "\fI\fBFunction\fP realizing packages of the result. \fP" +.ti -1c +.RI "void \fBunpackResult\fP ()" +.br +.RI "\fI\fBFunction\fP reconstituting packages of result. \fP" +.ti -1c +.RI "void \fBnotifySendingData\fP ()" +.br +.RI "\fI\fBFunction\fP notifySendingData. \fP" +.ti -1c +.RI "void \fBnotifySendingAllResourceRequests\fP ()" +.br +.RI "\fI\fBFunction\fP notifySendingAllResourceRequests. \fP" +.in -1c +.SS "Private Attributes" + +.in +1c +.ti -1c +.RI "\fBeoQuadOp\fP< EOT > & \fBcross\fP" +.br +.ti -1c +.RI "double \fBcross_rate\fP" +.br +.ti -1c +.RI "\fBeoMonOp\fP< EOT > & \fBmut\fP" +.br +.ti -1c +.RI "double \fBmut_rate\fP" +.br +.ti -1c +.RI "unsigned \fBidx\fP" +.br +.ti -1c +.RI "\fBeoPop\fP< EOT > * \fBpop\fP" +.br +.ti -1c +.RI "EOT \fBfather\fP" +.br +.ti -1c +.RI "EOT \fBmother\fP" +.br +.ti -1c +.RI "unsigned \fBnum_term\fP" +.br +.in -1c .SH "Detailed Description" .PP .SS "template class peoTransform< EOT >" -The \fBpeoTransform\fP class acts only as an interface for creating transform operators - for an example please refer to the \fB\fBpeoSeqTransform\fP\fP and the \fB\fBpeoParaSGATransform\fP\fP classes. +Class for a parallel transform. + +\fBSee also:\fP +.RS 4 +\fBService\fP \fBeoTransform\fP +.RE .PP -Definition at line 48 of file peoTransform.h. +\fBVersion:\fP +.RS 4 +1.1 +.RE +.PP +\fBDate:\fP +.RS 4 +january 2008 +.RE +.PP + +.PP +Definition at line 53 of file peoTransform.h. +.SH "Constructor & Destructor Documentation" +.PP +.SS "template \fBpeoTransform\fP< EOT >::\fBpeoTransform\fP (\fBeoQuadOp\fP< EOT > & __cross, double __cross_rate, \fBeoMonOp\fP< EOT > & __mut, double __mut_rate)" +.PP +Constructor. +.PP +\fBParameters:\fP +.RS 4 +\fIeoQuadOp<\fP EOT >& __cross +.br +\fIdouble\fP __cross_rate +.br +\fIeoMonOp<\fP EOT >& __mut +.br +\fIdouble\fP __mut_rate +.RE +.PP + +.PP +Definition at line 108 of file peoTransform.h. +.SH "Member Function Documentation" +.PP +.SS "template void \fBpeoTransform\fP< EOT >::operator() (\fBeoPop\fP< EOT > & __pop)" +.PP +Operator. +.PP +\fBParameters:\fP +.RS 4 +\fIeoPop<\fP EOT >& __pop +.RE +.PP + +.PP +Definition at line 176 of file peoTransform.h. +.PP +References peoTransform< EOT >::idx, peoTransform< EOT >::num_term, peoTransform< EOT >::pop, Service::requestResourceRequest(), and Communicable::stop(). +.SH "Member Data Documentation" +.PP +.SS "template \fBeoQuadOp\fP< EOT >& \fBpeoTransform\fP< EOT >::\fBcross\fP\fC [private]\fP" +.PP +\fBParameters:\fP +.RS 4 +\fIeoQuadOp<\fP EOT >& cross +.br +\fIdouble\fP cross_rate +.br +\fIeoMonOp<\fP EOT >& mut +.br +\fIdouble\fP mut_rate +.br +\fIunsigned\fP idx +.br +\fIeoPop<\fP EOT >* pop +.br +\fIEOT\fP father +.br +\fImother\fP +.br +\fIunsigned\fP num_term +.RE +.PP + +.PP +Definition at line 98 of file peoTransform.h. +.PP +Referenced by peoTransform< EOT >::execute(). .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.