SlideShare a Scribd company logo
1 of 20
Download to read offline
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

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Recently uploaded (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

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