[ Home | Docs | News | Resources | Download]
GAUL Documentation: Elitism


The GA literature advocates many different rules for the passage of parent individuals into subsequent generations. In GAUL, a selection of common rules may be specified by the third parameter to the "ga_population_set_parameters()" function. Alternatively, "ga_population_set_elitism()" may be used to modify this parameter alone. With GAUL, it is even safe to change the elitism rule during evolution!

The available elitism modes are:

Elitism Parameter Comments
GA_ELITISM_PARENTS_SURVIVE All parents that rank sufficiently highly will pass to the next generation.
GA_ELITISM_ONE_PARENT_SURVIVES The single fittest parent will pass to the next generation if it ranks sufficiently well.
GA_ELITISM_PARENTS_DIE No parents pass to next generation, regardless of their fitness.
GA_ELITISM_RESCORE_PARENTS All parents are re-evalutated, and those that subsequently rank sufficiently highly will pass to the next generation.


     popd,                       /* population   *pop */
     GA_SCHEME_DARWIN,           /* const ga_scheme_type scheme */
     GA_ELITISM_PARENTS_SURVIVE, /* const ga_elitism_type   elitism */
     0.9,                        /* double       crossover */
     0.1,                        /* double       mutation */
     0.0                         /* double       migration */

  ga_population_set_elitism( GA_ELITISM_PARENTS_DIE );

Note that some elitism options make little sense when coupled to certian evolutionary schemes. For example, using Lamarckian or Baldwinian evolution and applying that to the parent individuals is pointless when none of those parents will ever pass into subsequent generations.


[ Home | Docs | News | Resources | Download]
Hosted by:
SourceForge Logo
GAUL Button Valid HTML 4.01!

© 2003, "Stewart Adcock" <stewart@linux-domain.com> All rights reserved.
All trademarks on this page are probably owned by their respective companies. You can insert you own favourite disclaimer here.