Introduction - danielwilczak101/EasyGA GitHub Wiki
This is an introduction to how the built-in methods work. Built-In methods allow you to change the way EasyGA functions. In this section, we will talk about the different parts of a genetic algorithm and how EasyGA handles those parts.
EasyGA Design
The EasyGA algorithm can be split up into the few key steps that define functionality. Each of these steps have built-in methods to handle them or you can add your own for added functionality:
Each of these steps interacts with each other in a cycle that evolves the genetic algorithm, similar to the diagram below. The genetic algorithm is first initialized and then evolved until it reaches its termination point.
Initialization
Initialization is the process responsible for generating a new population based on attributes that can be specified in code.
Parent Selection
Parent Selection is the process responsible for choosing chromosomes to add to the mating_pool
, which will be used to create the next generation.
Crossover
Crossover is the process responsible for creating new chromosomes based on the mating_pool
and adding them to the population. It is split into two classes, these being Individual
and Population
Mutation
Mutation is the process responsible for generating a new chromosome that has had its genes altered. Similar to crossover, it is split into two class: Individual
and Population
Survivor Selection
Survivor Selection is the process responsible for filling the next generation with enough chromosomes after the children are added.
Termination Point
Termination is the process responsible for terminating the genetic algorithm from running.