Welcome to Thefittest’s documentation!


logos/logo1.png

thefittest is an open-source library designed for the efficient application of classical evolutionary algorithms and their effective modifications in optimization and machine learning. Our project aims to provide performance, accessibility, and ease of use, opening up the world of advanced evolutionary methods to you.

Optimizers

The library provides a comprehensive set of evolutionary optimization algorithms for solving continuous and discrete optimization problems. Each optimizer is designed with flexibility in mind, supporting various selection methods, crossover operators, and mutation strategies.

Differential Evolution

Differential Evolution is a population-based stochastic optimization method that operates on real-valued vectors. It uses vector differences for generating new candidate solutions and has proven effective for continuous optimization problems.

Reference: Storn, R., & Price, K. (1995). Differential Evolution: A Simple and Efficient Adaptive Scheme for Global Optimization Over Continuous Spaces. Journal of Global Optimization, 23.

Algorithm

Description

DifferentialEvolution

Classical Differential Evolution algorithm with multiple mutation strategies

jDE

Self-adaptive Differential Evolution with dynamic parameter control (Brest et al., 2007)

SHADE

Success-History based Adaptive Differential Evolution with parameter adaptation (Tanabe & Fukunaga, 2013)

Genetic Algorithms

Genetic Algorithms are search heuristics inspired by natural selection. They work with binary string representations and use selection, crossover, and mutation operators to evolve solutions over generations.

Reference: Holland, J. H. (1992). Genetic Algorithms. Scientific American, 267(1), 66-72.

Algorithm

Description

GeneticAlgorithm

Classical Genetic Algorithm with binary string representation

SelfCGA

Self-configuring Genetic Algorithm with automatic parameter tuning (Semenkin & Semenkina, 2012)

PDPGA

Population-level Dynamic Probabilities Genetic Algorithm with operator probability adaptation (Niehaus & Banzhaf, 2001)

SHAGA

Success-History based Adaptive Genetic Algorithm (Stanovov et al., 2019)

Genetic Programming

Genetic Programming evolves computer programs to solve problems. It uses tree-based representations and can perform symbolic regression, program synthesis, and other tasks requiring automatic program generation.

Reference: Koza, J. R. (1993). Genetic Programming - On the Programming of Computers by Means of Natural Selection. Complex Adaptive Systems.

Algorithm

Description

GeneticProgramming

Genetic Programming for symbolic regression and program synthesis

SelfCGP

Self-configuring Genetic Programming (Semenkin & Semenkina, 2012)

PDPGP

Population-level Dynamic Probabilities Genetic Programming (Niehaus & Banzhaf, 2001)

Contents: