SlideShare a Scribd company logo
Evolving Objects:
           Yet Another Evolutionary
            Computation Library?
 M. Keijzer1, J. J. Merelo2, G. Romero2, M. Schoenauer 3
      http://eodev.sourceforge.net/

                Presented at EA’01 – October 29. 2001


1-Vrije Universiteit Amsterdam   2-Universidad de Granada        3-INRIA Rocquencourt

                                                  •First •Last •Go Back •Go To •Find
What is EO?
An Open Source STL-based C++ EC library

         Don’t’ worry, this is a functional talk :-)

 • Paradigm-free         supersedes EP, ES, GP, GA and many more!

 • General operators                                          n→m

 • Generic operators                     Representation independent

 • User parameter definition           Command-line / parameter file

 • Visualization, saving/restarting                 and many more!

 • Getting started “facilities” and GUI                   . . . EASEA



                                      •First •Last •Go Back •Go To •Find
The technical slide
Re-entering code
  • No global variable :-)
  • → co-evolution, meta-evolution, subroutine use, . . .
Objects, not functions                               STL functors

  • Class with single interface/method: operator()
  • Private data, can be passed as a whole
Combination of objects (functors)
  • Choosing among different possibilities at run times
  • A combined blip is a blip

                                    •First •Last •Go Back •Go To •Find
•First •Last •Go Back •Go To •Find
                                                                   From EO tutorial
                                                       Checkpointing: stopping criterion and statistics                                                                                                                                                                               ¡
                                                                                                                                                                                                                                                                                      ¡01 1
                                                       Main CPU cost
                                                                                                                                                                                                                                                                                       1¡¡0¡
                                                                                                                                                                                                                                                                                0101¡¡0101¡¡0101
                                                                                                                                                                                                                                                                                      ¡¡¡0¡
                                                                                                                                                                                                                                                                                       0¡¡1¡
                                                       "Darwinism" (stochastic or determinist)
                                                                                                                                                                                                                                                                             )()()()()()()()()() (
                                                       Stochastic operators: Representation dependent
                                                                                                                                                                                                                                                                           ¡¡¡¡¡
                                                                                                                                                                                                                                                                           ¡¡¡¡¡
                                                                                                                                                                                                                                                                             
                                                                                                                                                                                                                                                                                    ¡¡¡¡
                                                                                                                                                                                                                                                                                      ¡¡¡¡
                                                                                                                                                                                                                                                                                          
             Mutation, ...
             ¡¡¡¡¡¡¡
             ¡¡¡¡¡¡¡                                      Offspring
                                                         ¥¦¡¡¥¦¡¡¡¡¡¥¦   ¥¦ ¥¦ ¥¦ ¥¦ ¥¦
                                                               ¡¡¡¦¥¡¦¥¡¡¡                                                     
                                                                                                                                                            Evaluation
             ## ## # # #
             Crossover,
             ¡¡¡¡#¡#¡#¡
             ¡#¡¡#¡#¡#¡#¡#
             ¡#¡¡#¡¡¡¡#                                 ¦¥¦¥¡¡¦¥¦¥¡¡¡¡¡¦¥¦¥
                                                               ¡¡¡¦¡¦¡¡¡   ¦¥¦¥ ¥ ¥ ¦¥¦¥ ¦¥¦¥                                  
             ¡#¡¡#¡¡¡¡#
                # #   
                 Genitors¡¡¡£¡£¡¡¡
                         ¡¡¡¤¡¤¡¡¡
                              ¤£¤ ¤ ¤ ¤£¤
                         ¡¡¡£¡£¡¡¡                          Generation                                                   ¡¡¡¡¡¡¡
                                                                                                                         ¡¡¡¡¡¡¡
                                                                                                                                                        Replacement
                   ¤£¤¡¤£¤¡¡¤¡¤¡¤£¤¡¡¤£¤                                                                                 ¡¡¡¡¡¡¡
                                                                                                                         ¡¡¡¡¡¡¡
                      £¤£¡£¤£¡¡¡¡£¤£¡¡£¤£
                                 £¤£ £ £ £¤£                                                                             ¡¡¡¡¡¡¡
                                                                                                                               
                   ¡¡¡¡¡¡¡
                    ! ! !
               !¡¡!¡¡!¡¡!¡!
                 Selection                                                      ¡$¡$% %
                                                                                 $% %
                                                                                %¡%¡¡%¡
                                                                                ¡$¡¡$¡
                                                                             Stop ?         %¡$¡                         ¡¡¡¡¡¡¡
                                                                                                                               ¢ ¢ ¢ ¢ ¢
                                                                                                                         ¡¡¢¡¡¡¢¡¡¢                                       Parents                                                                   
                                                                                                                                                                                                                                        © ©©©©©©©©©©©
                                                                                                                                                                                                                                          Evaluation                                                                                      
                   ¡¡¡¡¡¡¡
                     ! ! !
                !¡¡!¡¡!¡¡!¡!                                                    ¡%¡¡%¡%
                                                                                ¡$¡¡$¡
                                                                                ¡%¡¡%¡%$
                                                                                   %$%$ %$%$
                                                                                ¡$¡¡$¡$                                  ¡¡¡¡¡¡¡
                                                                                                                         ¡¡¢ ¡¡¡¢ ¡¡¢ 
                                                                                                                                 ¢   ¢   ¢   ¢   ¢                                                                                       ©©©©©©
                                                                                                                                                                                                                                                               © © © © © © © © © © © ©
                   ¡¡¡¡¡¡¡
                   ¡¡¡¡¡¡¡
                   ¡¡¡¡¡¡¡
                      !! !! !!
                 !!¡¡!!¡¡!!¡¡!!¡!!
                                                                                ¡%¡¡%¡%
                                                                                ¡$¡¡$¡$
                                                                                ¡$¡¡$¡%
                                                                                ¡¡¡¡$$%$
                                                                                       $$%$ $$%$                         ¡¡ ¡¡¡ ¡¡ 
                                                                                                                         ¡¡ ¢¡¡¡ ¢¡¡ ¢
                                                                                                                                    ¢  ¢  ¢  ¢  ¢                                                                                         ©©© © ©©©©©  ©©©©© ©  ©©©©©© ©  © ©©©©  ©  ©©
                                               '¡¡'¡¡¡¡¡¡¡¡¡¡' ' ' ' ' ' ' ' ' ' '
                                                        Best individual
                                                        ¡¡¡'¡'¡'¡¡¡¡¡'¡'¡                                                                                                                                                                     ¨¡§¡¡¡¡¡§¡
                                                ''¡¡''¡¡¡¡¡¡¡¡¡¡''
                                                        ¡¡¡''¡''¡''¡¡¡¡¡''¡''¡
                                                        ¡¡¡¡¡¡¡¡¡¡¡¡
                                                                ''    ''' ''' ''' '''                                                                                                                           Initialisation
                                                                                                                                                                                                                                               ¨¡¡¡¨§¨¡¡¨§¨¡¡¨§¨
                                                                                                                                                                                                                                                §§¡¨§¡¡¡¡¡¨§¡
                                                                                                                                                                                                                                                                ¨ ¨§¨ ¨§¨ ¨
                                                                                                                                                                                                                                                                              § §
                                                     '¡¡'¡¡¡¡¡¡¡¡¡¡'
                                                        ¡¡¡¡¡¡¡¡¡¡¡¡
                                                                     '                                                                                                                                                                      ¨¡¨¡¡§¡¡§¡¨¡§
                                                                                                                                                                                                                                                   §¡§¡¡¡¡¡§¡
                                                                                                                                                                                                                                                    ¡¡¡§¨¡¡§¨¡¡§¨              §¨ §¨
                                An Evolutionary Algorithm
Representation




• Any structure                   Later templatized over the fitness

• Use of STL containers                        vectors, lists, . . .
                       Relieves from (most) memory management

• Easy construct complex structures
                     and of instantiated generic variation operators




                                   •First •Last •Go Back •Go To •Find
Fitness computation



Any fitness type      Scalar, scalar with constraints, multi-objective, . . .

  • The only code to write for existing representations
  • No useless computation                      Through EOs invalid flag

  • Trivial embedding of plain C-code               with correct interface

  • Call of existing objects (C, Fortran)           with correct interface




                                         •First •Last •Go Back •Go To •Find
Evolution Engine


Selection
  • Popular scalar routines     Roulette, ranking, tournament, . . .

  • Multi-objective                                        NSGA2

Replacement: A general scheme
 1. Selector among parents and children                     or none

 2. ± Merging with parents
 3. ± Selector among merged population
± Weak and strong elitism
                                  •First •Last •Go Back •Go To •Find
Variation operators



• Objects, not methods                    Encapsulation

• Standard types
   – Mutation                              Unary, 1 → 1
   – Crossovers                          Binary, 2 → 1
                                     “Quadratic”, 2 → 2

• General type                                   n→m




                         •First •Last •Go Back •Go To •Find
General operators
                      n→m


  • n → 1: Orgy operators
  • P → 1: Global recombination
                                Uses the whole population as parents

  • 0 → m: Creation of new individuals
                                             Partial restart, SDM, . . .

Embedded in a breeder object
                            that takes care of the number of offspring




                                     •First •Last •Go Back •Go To •Find
Combining operators


Real-world EAs use more than one operator of each kind!

EO solution: combine them                      Recursive structure


Proportional combination
  • User-defined relative weights
  • Roulette-wheel choice
  • One and only one will be applied



                                   •First •Last •Go Back •Go To •Find
Combining operators (2)


Sequential combination
  • Each operator is applied with its own probability
  • From none to all of them can be applied (sequentially)

Supersedes standards
  • GA-like using pcross and pmut
  • ES-like global recombination + mutation



                                    •First •Last •Go Back •Go To •Find
Generic operators


Bottom-up construction of variation operators
for genotypes based on STL data structures            vector, list, . . .


Key issues
  • Fixed length vs variable length
  • Order-dependent vs order independent


Base ideas for EASEA Graphical genotype builder forthcoming!



                                      •First •Last •Go Back •Go To •Find
Generic operators (2)
Crossovers on vectors/lists
  • N-point, uniform                    Order- and length- preserving

  • Call element crossover (fixed rate, or k times)               idem

  • Exchange with external criterion
                                         Order- and length- disturbing

Mutations on vectors/lists
  • Call element mutation (fixed rate, or k times)
                                        Order- and length- preserving
                    e.g. binary mutations (bit-flip and “deterministic”)

  • Add/remove element                              Length- disturbing


                                      •First •Last •Go Back •Go To •Find
Initialization


• Initializer objects     Can be combined . . . the proportional way

• Generic for complex genotypes               from base generators

• Reload saved state of some previous run
• Included RNG                                    Mersenne Twister

    – Results independent of hardware/OS            Reproducibility
    – Run replay                                    For debugging!
    – “True” randomness                       Using hardware clock


                                    •First •Last •Go Back •Go To •Find
Checkpointing


What you want to do every generation
  • Check stopping criteria                 is a combined stop criterion

  • Compute and monitor statistics
                   Average and best, diversity, rate of feasible guys, . . .

  • Save current state                                    see Initialization

  • Update whatever needs to be updated
                  e.g. dynamic or adaptive population level parameters



                                         •First •Last •Go Back •Go To •Find
Statistics

Computing statistics
   • Write the code into a stat class

   • Create a stat object , “add” it to the checkpoint

   • It will receive the current population every generation

Monitoring statistics
   • Create a monitor (once!)                 Screen (text, gnuplot), file, . . .
   • Add the monitor to the checkpoint (once!)

   • Add stat objects to the monitor

   • Will be displayed/saved to disk every generation




                                             •First •Last •Go Back •Go To •Find
Updates

Dynamic parameter: example

Class Blip has a static parameter.

  • Derive a class NewBlip from both Blip and Update
  • Write the parameter update in the update method
  • Use NewBlip in place of Blip
  • “Add” that NewBlip object to the checkpoint
     The update method will be called every generation


                                     •First •Last •Go Back •Go To •Find
Cons


• Huge compilation times                              Linux and g++

• CygWinT M required on MicrosoftT M systems
• Getting started . . . but
    – A tutorial (on-going :-(
                     Download ready-to-use snapshot at Polytechnique
    – Shell scripts for new representations
    – EASEA :-)



                                      •First •Last •Go Back •Go To •Find
On-going



• Multi-objective                            as user-friendly as scalar
                                                   CMAP et Fractales

• Constraint handling methods                     CMAP et Fractales

• Parallelization   Master-slave, island model, distributed population
                                                      Granada et LIFL

• Port to Java                      within European DREAM project




                                      •First •Last •Go Back •Go To •Find
Conclusion


Available representations
GAs, self-adaptive ESs, GP (symbolic regression), Voronoi.

Pros summary
  • Highly flexible
  • Not-so-difficult to use :-)
  • Complete GUI forthcoming
         It’s free software: Use it – and contribute!



                                    •First •Last •Go Back •Go To •Find

More Related Content

Similar to Evolving Objects: Yet Another Evolutionary Computation Library? (20)

PDF
Categorization of natural images
Amit Prabhudesai
 
PDF
Satish nande
Satish Nande
 
PDF
(E book) business plan - writing an effective
Avinaba Ghosh
 
PDF
BA Champs PowerPoint AGM Presentation
Eugene Cheng
 
PDF
Venue 2 Claims Management
arsenam1
 
PDF
Modeling the Effect of Size of Defect Proneness for Open-Source Software
Tim Menzies
 
PDF
CAR Email 6.4.02 (s)
Obama White House
 
PPTX
BaseCamp - Poland
trathwell24
 
PPTX
BaseCamp - Poland
trathwell24
 
PDF
Rohit kumar EX423
Rohit Kumar
 
PDF
Engineering pathways project
Gerald Recktenwald
 
PDF
Introductionto analysis of algorithms
CareerMonk Publications
 
PDF
Introductionto Analysis Of Algorithms
CareerMonk Publications
 
PDF
6o kefalaio
stereotypicalgamer
 
PDF
Lecture1: 123.702
Gareth Rowlands
 
PDF
Raúl salvador 2012
rrraaauuulll
 
PDF
Ycfc poster final
scyeffect
 
PDF
Night elie wiesel for upload to web
Wendy Scruggs
 
PDF
Cv S.Uiterwijk
Suiterwijk
 
PDF
CCNxCon2012: Poster Session: ICN Architecture Evaluation — A Discussion on CC...
PARC, a Xerox company
 
Categorization of natural images
Amit Prabhudesai
 
Satish nande
Satish Nande
 
(E book) business plan - writing an effective
Avinaba Ghosh
 
BA Champs PowerPoint AGM Presentation
Eugene Cheng
 
Venue 2 Claims Management
arsenam1
 
Modeling the Effect of Size of Defect Proneness for Open-Source Software
Tim Menzies
 
CAR Email 6.4.02 (s)
Obama White House
 
BaseCamp - Poland
trathwell24
 
BaseCamp - Poland
trathwell24
 
Rohit kumar EX423
Rohit Kumar
 
Engineering pathways project
Gerald Recktenwald
 
Introductionto analysis of algorithms
CareerMonk Publications
 
Introductionto Analysis Of Algorithms
CareerMonk Publications
 
6o kefalaio
stereotypicalgamer
 
Lecture1: 123.702
Gareth Rowlands
 
Raúl salvador 2012
rrraaauuulll
 
Ycfc poster final
scyeffect
 
Night elie wiesel for upload to web
Wendy Scruggs
 
Cv S.Uiterwijk
Suiterwijk
 
CCNxCon2012: Poster Session: ICN Architecture Evaluation — A Discussion on CC...
PARC, a Xerox company
 

Recently uploaded (20)

PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PDF
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
PDF
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PDF
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
PDF
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
TrustArc Webinar - Data Privacy Trends 2025: Mid-Year Insights & Program Stra...
TrustArc
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Predicting the unpredictable: re-engineering recommendation algorithms for fr...
Speck&Tech
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
Français Patch Tuesday - Juillet
Ivanti
 
Apache CloudStack 201: Let's Design & Build an IaaS Cloud
ShapeBlue
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Building Search Using OpenSearch: Limitations and Workarounds
Sease
 
NewMind AI Journal - Weekly Chronicles - July'25 Week II
NewMind AI
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Ad

Evolving Objects: Yet Another Evolutionary Computation Library?

  • 1. Evolving Objects: Yet Another Evolutionary Computation Library? M. Keijzer1, J. J. Merelo2, G. Romero2, M. Schoenauer 3 http://eodev.sourceforge.net/ Presented at EA’01 – October 29. 2001 1-Vrije Universiteit Amsterdam 2-Universidad de Granada 3-INRIA Rocquencourt •First •Last •Go Back •Go To •Find
  • 2. What is EO? An Open Source STL-based C++ EC library Don’t’ worry, this is a functional talk :-) • Paradigm-free supersedes EP, ES, GP, GA and many more! • General operators n→m • Generic operators Representation independent • User parameter definition Command-line / parameter file • Visualization, saving/restarting and many more! • Getting started “facilities” and GUI . . . EASEA •First •Last •Go Back •Go To •Find
  • 3. The technical slide Re-entering code • No global variable :-) • → co-evolution, meta-evolution, subroutine use, . . . Objects, not functions STL functors • Class with single interface/method: operator() • Private data, can be passed as a whole Combination of objects (functors) • Choosing among different possibilities at run times • A combined blip is a blip •First •Last •Go Back •Go To •Find
  • 4. •First •Last •Go Back •Go To •Find From EO tutorial Checkpointing: stopping criterion and statistics ¡ ¡01 1 Main CPU cost 1¡¡0¡ 0101¡¡0101¡¡0101 ¡¡¡0¡ 0¡¡1¡ "Darwinism" (stochastic or determinist) )()()()()()()()()() ( Stochastic operators: Representation dependent ¡¡¡¡¡ ¡¡¡¡¡ ¡¡¡¡ ¡¡¡¡ Mutation, ... ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ Offspring ¥¦¡¡¥¦¡¡¡¡¡¥¦ ¥¦ ¥¦ ¥¦ ¥¦ ¥¦ ¡¡¡¦¥¡¦¥¡¡¡ Evaluation ## ## # # # Crossover, ¡¡¡¡#¡#¡#¡ ¡#¡¡#¡#¡#¡#¡# ¡#¡¡#¡¡¡¡# ¦¥¦¥¡¡¦¥¦¥¡¡¡¡¡¦¥¦¥ ¡¡¡¦¡¦¡¡¡ ¦¥¦¥ ¥ ¥ ¦¥¦¥ ¦¥¦¥ ¡#¡¡#¡¡¡¡# # # Genitors¡¡¡£¡£¡¡¡ ¡¡¡¤¡¤¡¡¡ ¤£¤ ¤ ¤ ¤£¤ ¡¡¡£¡£¡¡¡ Generation ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ Replacement ¤£¤¡¤£¤¡¡¤¡¤¡¤£¤¡¡¤£¤ ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ £¤£¡£¤£¡¡¡¡£¤£¡¡£¤£ £¤£ £ £ £¤£ ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ ! ! ! !¡¡!¡¡!¡¡!¡! Selection ¡$¡$% % $% % %¡%¡¡%¡ ¡$¡¡$¡ Stop ? %¡$¡ ¡¡¡¡¡¡¡ ¢ ¢ ¢ ¢ ¢ ¡¡¢¡¡¡¢¡¡¢ Parents © ©©©©©©©©©©© Evaluation ¡¡¡¡¡¡¡ ! ! ! !¡¡!¡¡!¡¡!¡! ¡%¡¡%¡% ¡$¡¡$¡ ¡%¡¡%¡%$ %$%$ %$%$ ¡$¡¡$¡$ ¡¡¡¡¡¡¡ ¡¡¢ ¡¡¡¢ ¡¡¢   ¢   ¢   ¢   ¢   ¢  ©©©©©© © © © © © © © © © © © © ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ ¡¡¡¡¡¡¡ !! !! !! !!¡¡!!¡¡!!¡¡!!¡!! ¡%¡¡%¡% ¡$¡¡$¡$ ¡$¡¡$¡% ¡¡¡¡$$%$ $$%$ $$%$ ¡¡ ¡¡¡ ¡¡  ¡¡ ¢¡¡¡ ¢¡¡ ¢  ¢  ¢  ¢  ¢  ¢ ©©© © ©©©©© ©©©©© © ©©©©©© © © ©©©© © ©© '¡¡'¡¡¡¡¡¡¡¡¡¡' ' ' ' ' ' ' ' ' ' ' Best individual ¡¡¡'¡'¡'¡¡¡¡¡'¡'¡ ¨¡§¡¡¡¡¡§¡ ''¡¡''¡¡¡¡¡¡¡¡¡¡'' ¡¡¡''¡''¡''¡¡¡¡¡''¡''¡ ¡¡¡¡¡¡¡¡¡¡¡¡ '' ''' ''' ''' ''' Initialisation ¨¡¡¡¨§¨¡¡¨§¨¡¡¨§¨ §§¡¨§¡¡¡¡¡¨§¡ ¨ ¨§¨ ¨§¨ ¨ § § '¡¡'¡¡¡¡¡¡¡¡¡¡' ¡¡¡¡¡¡¡¡¡¡¡¡ ' ¨¡¨¡¡§¡¡§¡¨¡§ §¡§¡¡¡¡¡§¡ ¡¡¡§¨¡¡§¨¡¡§¨ §¨ §¨ An Evolutionary Algorithm
  • 5. Representation • Any structure Later templatized over the fitness • Use of STL containers vectors, lists, . . . Relieves from (most) memory management • Easy construct complex structures and of instantiated generic variation operators •First •Last •Go Back •Go To •Find
  • 6. Fitness computation Any fitness type Scalar, scalar with constraints, multi-objective, . . . • The only code to write for existing representations • No useless computation Through EOs invalid flag • Trivial embedding of plain C-code with correct interface • Call of existing objects (C, Fortran) with correct interface •First •Last •Go Back •Go To •Find
  • 7. Evolution Engine Selection • Popular scalar routines Roulette, ranking, tournament, . . . • Multi-objective NSGA2 Replacement: A general scheme 1. Selector among parents and children or none 2. ± Merging with parents 3. ± Selector among merged population ± Weak and strong elitism •First •Last •Go Back •Go To •Find
  • 8. Variation operators • Objects, not methods Encapsulation • Standard types – Mutation Unary, 1 → 1 – Crossovers Binary, 2 → 1 “Quadratic”, 2 → 2 • General type n→m •First •Last •Go Back •Go To •Find
  • 9. General operators n→m • n → 1: Orgy operators • P → 1: Global recombination Uses the whole population as parents • 0 → m: Creation of new individuals Partial restart, SDM, . . . Embedded in a breeder object that takes care of the number of offspring •First •Last •Go Back •Go To •Find
  • 10. Combining operators Real-world EAs use more than one operator of each kind! EO solution: combine them Recursive structure Proportional combination • User-defined relative weights • Roulette-wheel choice • One and only one will be applied •First •Last •Go Back •Go To •Find
  • 11. Combining operators (2) Sequential combination • Each operator is applied with its own probability • From none to all of them can be applied (sequentially) Supersedes standards • GA-like using pcross and pmut • ES-like global recombination + mutation •First •Last •Go Back •Go To •Find
  • 12. Generic operators Bottom-up construction of variation operators for genotypes based on STL data structures vector, list, . . . Key issues • Fixed length vs variable length • Order-dependent vs order independent Base ideas for EASEA Graphical genotype builder forthcoming! •First •Last •Go Back •Go To •Find
  • 13. Generic operators (2) Crossovers on vectors/lists • N-point, uniform Order- and length- preserving • Call element crossover (fixed rate, or k times) idem • Exchange with external criterion Order- and length- disturbing Mutations on vectors/lists • Call element mutation (fixed rate, or k times) Order- and length- preserving e.g. binary mutations (bit-flip and “deterministic”) • Add/remove element Length- disturbing •First •Last •Go Back •Go To •Find
  • 14. Initialization • Initializer objects Can be combined . . . the proportional way • Generic for complex genotypes from base generators • Reload saved state of some previous run • Included RNG Mersenne Twister – Results independent of hardware/OS Reproducibility – Run replay For debugging! – “True” randomness Using hardware clock •First •Last •Go Back •Go To •Find
  • 15. Checkpointing What you want to do every generation • Check stopping criteria is a combined stop criterion • Compute and monitor statistics Average and best, diversity, rate of feasible guys, . . . • Save current state see Initialization • Update whatever needs to be updated e.g. dynamic or adaptive population level parameters •First •Last •Go Back •Go To •Find
  • 16. Statistics Computing statistics • Write the code into a stat class • Create a stat object , “add” it to the checkpoint • It will receive the current population every generation Monitoring statistics • Create a monitor (once!) Screen (text, gnuplot), file, . . . • Add the monitor to the checkpoint (once!) • Add stat objects to the monitor • Will be displayed/saved to disk every generation •First •Last •Go Back •Go To •Find
  • 17. Updates Dynamic parameter: example Class Blip has a static parameter. • Derive a class NewBlip from both Blip and Update • Write the parameter update in the update method • Use NewBlip in place of Blip • “Add” that NewBlip object to the checkpoint The update method will be called every generation •First •Last •Go Back •Go To •Find
  • 18. Cons • Huge compilation times Linux and g++ • CygWinT M required on MicrosoftT M systems • Getting started . . . but – A tutorial (on-going :-( Download ready-to-use snapshot at Polytechnique – Shell scripts for new representations – EASEA :-) •First •Last •Go Back •Go To •Find
  • 19. On-going • Multi-objective as user-friendly as scalar CMAP et Fractales • Constraint handling methods CMAP et Fractales • Parallelization Master-slave, island model, distributed population Granada et LIFL • Port to Java within European DREAM project •First •Last •Go Back •Go To •Find
  • 20. Conclusion Available representations GAs, self-adaptive ESs, GP (symbolic regression), Voronoi. Pros summary • Highly flexible • Not-so-difficult to use :-) • Complete GUI forthcoming It’s free software: Use it – and contribute! •First •Last •Go Back •Go To •Find