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.