From fc23c479afc811a584f6edb6468d03c2f31add38 Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Tue, 7 Aug 2012 15:39:10 +0200 Subject: [PATCH 1/6] add eo::mpi in the feature list --- website/index.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/website/index.html b/website/index.html index 8f8de867b..90f31af77 100644 --- a/website/index.html +++ b/website/index.html @@ -174,6 +174,7 @@

Alternatively, you can join us on the official chatroom. You can try our webchat interface, or if you already use IRC, you can directly connect to the irc.freenode.org/#paradiseo multi-user chatroom with your favorite client.

+

If you want to know how to help us to improve EO, the easiest way is to click on the following button:

@@ -193,6 +194,7 @@ #openhatch-wannahelp-button:focus { outline-color:-moz-use-text-color; outline-style:none; outline-width:medium; } +

@@ -269,6 +271,15 @@
  • +
  • Parallelization tools
  • +
  • Portable and human-readable parameter files
  • Suspend and load population from files
  • Versatile checkpointing and logging: From 73d077de5a0ed1d69249003251d045d8cf06762f Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Tue, 7 Aug 2012 15:40:13 +0200 Subject: [PATCH 2/6] deactivate the openhatch button --- website/index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/website/index.html b/website/index.html index 90f31af77..bd5a28ece 100644 --- a/website/index.html +++ b/website/index.html @@ -174,7 +174,7 @@

    Alternatively, you can join us on the official chatroom. You can try our webchat interface, or if you already use IRC, you can directly connect to the irc.freenode.org/#paradiseo multi-user chatroom with your favorite client.

    - + +

    From b0546f156772b2b31d1e68282b7cbdaef638629d Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Tue, 7 Aug 2012 15:48:17 +0200 Subject: [PATCH 3/6] clean the indentation of the web page --- website/index.html | 909 ++++++++++++++++++++++----------------------- 1 file changed, 452 insertions(+), 457 deletions(-) diff --git a/website/index.html b/website/index.html index bd5a28ece..358a12361 100644 --- a/website/index.html +++ b/website/index.html @@ -1,156 +1,155 @@ +"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> - - - - - - - + + + + + + + - + - + - Evolving Objects (EO): Evolutionary Computation Framework + Evolving Objects (EO): Evolutionary Computation Framework - - + + - - + + - + -
    - Evolving Objects logo - - - - - - + try { + var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1); + piwikTracker.trackPageView(); + piwikTracker.enableLinkTracking(); + } catch( err ) {} + + From 880b6e83b3cfb3c8def3d888252495879a9981ee Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Tue, 7 Aug 2012 16:01:19 +0200 Subject: [PATCH 4/6] link to the eompi tutorial --- website/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/website/index.html b/website/index.html index 358a12361..8de44ca42 100644 --- a/website/index.html +++ b/website/index.html @@ -348,6 +348,8 @@ library", Artificial Evolution, 2310, 829--888 (2002).

    +

    If you want to understand the message-passing parallelization module, check the introduction to eo::MPI by Benjamin Bouvier.

    +

    @Article{Keijzer2001,
    From 8e56bed9a0b89864f43a7b7e0f35bcaeadc1a51c Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Tue, 7 Aug 2012 16:20:13 +0200 Subject: [PATCH 5/6] nested lists fix ; add Benjamin has an author --- website/index.html | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/website/index.html b/website/index.html index 8de44ca42..ff422a63f 100644 --- a/website/index.html +++ b/website/index.html @@ -270,15 +270,17 @@

  • -
  • Parallelization tools
  • +
  • Parallelization tools:
    • Shared memory loops unrolling (with OpenMP)
    • -
    • Message passing parallelization (with openMPI)
    • +
    • Message passing parallelization (with openMPI):
        -
      • map/reduce-like design, with operators choice, as in EO
      • +
      • map/reduce-like design, with operators choice, as in EO
      • useful existing operators (parallel dynamic multi-start, static evaluations, …)
      +
    +
  • Portable and human-readable parameter files
  • Suspend and load population from files
  • Versatile checkpointing and logging: @@ -348,8 +350,6 @@ library", Artificial Evolution, 2310, 829--888 (2002).

    -

    If you want to understand the message-passing parallelization module, check the introduction to eo::MPI by Benjamin Bouvier.

    -

    @Article{Keijzer2001,
    @@ -373,6 +373,8 @@

    +

    If you want to understand the message-passing parallelization module, check the introduction to eo::MPI by Benjamin Bouvier.

    +

    Here is a list of some known publications that used EO:

    • J.J. Gilijamse, J. Küpper, S. Hoekstra, S.Y.T. van de Meerakker, G. Meijer, @@ -538,7 +540,9 @@ infrastructure maintenance.

      The project is now maintained by Johann Dréo, - working on it with the help of Caner Candan.

      + working on it with the help of Caner Candan. + Benjamin Bouvier have designed a + whole new MPI parallelization module.

      Links

      From 877604db37013ce5a2aed612b7e1cb51037e9c17 Mon Sep 17 00:00:00 2001 From: Johann Dreo Date: Fri, 10 Aug 2012 22:28:54 +0200 Subject: [PATCH 6/6] Add a test for variable length init. Demonstrate how to use eoInitVariableLength along with an adhoc atom type of our own to create a random pop. --- eo/test/CMakeLists.txt | 1 + eo/test/t-eoInitVariableLength.cpp | 98 ++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 eo/test/t-eoInitVariableLength.cpp diff --git a/eo/test/CMakeLists.txt b/eo/test/CMakeLists.txt index 9bfc296b4..5f098d3bf 100644 --- a/eo/test/CMakeLists.txt +++ b/eo/test/CMakeLists.txt @@ -34,6 +34,7 @@ ENDIF() ###################################################################################### SET (TEST_LIST + t-eoInitVariableLength t-eofitness t-eoRandom t-eobin diff --git a/eo/test/t-eoInitVariableLength.cpp b/eo/test/t-eoInitVariableLength.cpp new file mode 100644 index 000000000..68dee1b9c --- /dev/null +++ b/eo/test/t-eoInitVariableLength.cpp @@ -0,0 +1,98 @@ +#include +#include +#include + +// An adhoc atom type of our own +class Quad : public std::vector +{ + public: + // Just four times zero + Quad() : std::vector(4,0) {} +}; + +// EO somewhat forces you to implement a way to read/print your atom type +// You can either inherit from eoPrintable and overload readFrom/printOn +// or, just like here, directly overload stream operators. + +// read +std::istream& operator>>( std::istream& is, Quad& q ) +{ + for( unsigned int i=0, n=4; i> q[i]; + } + return is; +} + +// print +std::ostream& operator<<( std::ostream& os, const Quad& q ) +{ + os << q[0]; + for( unsigned int i=1, n=4; i +{ + public: + // this is the API: an init modify the solution + void operator()( Quad& q ) { + for( unsigned int i=0, n=4; i +{}; + + +int main() +{ + unsigned int vec_size_min = 1; + unsigned int vec_size_max = 10; + unsigned int pop_size = 10; + + // Fix a seed for the random generator, + // thus, the results are predictable. + // Set it to zero if you want pseudo-random numbers + // that changes at each calls. + rng.reseed( 1 ); + + // The operator that produce a random vector of four values. + QuadInit atom_init; + + // The operator that produces a random vector of a (vector of four values). + eoInitVariableLength vec_init( vec_size_min, vec_size_max, atom_init ); + + // You can initialize a population of N individuals by passing an initializer to it. + eoPop pop( pop_size, vec_init ); + + // eoPop can be printed easily, + // thanks to the overloadings above. + std::cout << pop << std::endl; + +// With a seed at 1, this should output: +/* +10 +INVALID 6 5 9 5 9 0 1 6 0 4 8 9 0 6 9 4 9 5 5 3 6 3 0 2 8 +INVALID 9 9 2 0 3 2 4 3 3 6 2 8 2 4 5 4 7 5 3 0 5 4 9 8 3 2 7 7 9 4 4 4 6 6 3 9 2 +INVALID 1 1 4 1 4 +INVALID 5 3 8 9 8 8 1 4 1 6 6 5 4 3 2 7 5 1 2 6 1 +INVALID 3 7 8 1 4 0 9 1 0 6 4 2 1 +INVALID 6 7 4 6 8 1 2 6 0 5 1 2 6 9 2 6 8 6 1 5 5 4 1 0 3 +INVALID 5 2 7 7 6 1 4 0 7 5 5 9 7 2 4 7 1 6 1 9 0 +INVALID 3 5 5 3 9 2 9 9 1 1 7 2 1 +INVALID 6 9 9 9 0 0 7 1 7 9 7 8 5 3 7 5 6 7 3 6 7 6 3 3 5 +INVALID 1 6 2 4 3 +*/ +}