Welcome to Thefittest’s documentation!
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 |
|---|---|
Classical Differential Evolution algorithm with multiple mutation strategies |
|
Self-adaptive Differential Evolution with dynamic parameter control (Brest et al., 2007) |
|
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 |
|---|---|
Classical Genetic Algorithm with binary string representation |
|
Self-configuring Genetic Algorithm with automatic parameter tuning (Semenkin & Semenkina, 2012) |
|
Population-level Dynamic Probabilities Genetic Algorithm with operator probability adaptation (Niehaus & Banzhaf, 2001) |
|
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 |
|---|---|
Genetic Programming for symbolic regression and program synthesis |
|
Self-configuring Genetic Programming (Semenkin & Semenkina, 2012) |
|
Population-level Dynamic Probabilities Genetic Programming (Niehaus & Banzhaf, 2001) |