Evolutionary.jl
The package Evolutionary aims to provide a library for evolutionary optimization. It provides implementation of $(\mu/\rho \; \stackrel{+}{,} \;\lambda)$-Evolution Strategy, $(\mu/\mu_I, \;\lambda)$-Covariance Matrix Adaptation Evolution Strategy, Genetic Algorithm, and Differential Evolution as well as a rich set of mutation, recombination, crossover and selection functions.
Getting started
To install the package just type
] add EvolutionaryA simple example of using the GA algorithm to find minimum of the Sphere function.
julia> using Evolutionaryjulia> result = Evolutionary.optimize( x -> sum(x.^2), ones(3), GA(populationSize = 100, selection = susinv, crossover = DC, mutation = PLM()))* Status: success * Candidate solution Minimizer: [-0.019585294214011895, 0.01802946383612436, 0.018901602082270874] Minimum: 0.0010659158769440306 Iterations: 42 * Found with Algorithm: GA[P=100,x=0.8,μ=0.1,ɛ=0] * Convergence measures |f(x) - f(x')| = 0.0 ≤ 1.0e-12 * Work counters Seconds run: 0.1169 (vs limit Inf) Iterations: 42 f(x) calls: 4300