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

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 

Recently uploaded (20)

A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 

Featured

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 HubspotMarius Sescu
 
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 ChatGPTExpeed Software
 
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 EngineeringsPixeldarts
 
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 HealthThinkNow
 
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.pdfmarketingartwork
 
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 2024Neil Kimberley
 
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)contently
 
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 2024Albert Qian
 
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 InsightsKurio // The Social Media Age(ncy)
 
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 2024Search Engine Journal
 
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 summarySpeakerHub
 
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 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 Tessa Mero
 
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 IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
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 managementMindGenius
 
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...RachelPearson36
 

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