Genetic Engine suports a list of different algorithms:

Genetic Programming

Genetic Programming is supported via two interfaces. SimpleGP allows you defined all paramaters without creating objects or importing functions. It is easier to use, if you are looking for a standard GP implementation.

However, if you are looking to implement your own algorithm, or variation of GP, the GP class is the most suitable.

Note that the step parameter allows the user to build their own evolutionary algorithm. See the list of available genetic operators.

Hill Climbing

class geneticengine.algorithms.hill_climbing.HC(problem, budget, representation, random=None, recorder=None, number_of_mutations=5)

Hill Climbing performs a local search within a neighbourhood.


Random Mutations

1+1 Evolutionary Algorithm

class geneticengine.algorithms.one_plus_one.OnePlusOne(problem, budget, representation, random=None, recorder=None)

The (1 + 1) Evolutionary Algorithm.


MultiPopulation Genetic Programming

This is a version of Genetic Programming, which has multiple populations that work independently, even with their own Problem instances.

There is a new, optional migration step (and migration_size), that selects individuals from other populations, to allow some transference of individuals from one population to the other.