Go library for evolutionary optimization (genetic algorithm, PSO, differential evolution)
Top 41.2% on sourcepulse
This Go library provides a flexible framework for evolutionary optimization, targeting researchers and engineers who need to solve complex problems without gradient information. It offers implementations of various evolutionary algorithms, including Genetic Algorithms (GA), Particle Swarm Optimization (PSO), and Differential Evolution (DE), allowing users to optimize functions by exploring the search space through breeding and mutation.
How It Works
The core of eaopt
is its Genome
interface, which abstracts the problem-specific logic. Users implement this interface to define how solutions (genomes) are evaluated, mutated, crossed over, and cloned. This design allows most algorithms to be implemented as special cases of a flexible Genetic Algorithm, enabling customization of operators and models (e.g., generational, steady-state) for tailored optimization strategies. Advanced features like speciation and multi-population migration are also supported.
Quick Start & Requirements
go get github.com/MaxHalford/eaopt
Highlighted Details
Maintenance & Community
CONTRIBUTING
file.Licensing & Compatibility
Limitations & Caveats
eaopt
may not outperform gradient-based methods on differentiable functions where local optima are not a concern.Evaluate
methods; overhead may negate benefits for cheap evaluations.6 months ago
Inactive