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 Evolutionary
A simple example of using the GA
algorithm to find minimum of the Sphere function.
julia> using Evolutionary
julia> result = Evolutionary.optimize(
x -> sum(x.^2), ones(3),
GA(populationSize = 100, selection = susinv,
crossover = discrete, mutation = domainrange(ones(3))))
* Status: success
* Candidate solution
Minimizer: [-9.5367431640625e-7, 9.5367431640625e-7, 1.430511474609375e-5]
Minimum: 2.064552973024547e-10
Iterations: 64
* Found with
Algorithm: GA[P=100,x=0.8,μ=0.1,ɛ=0]
* Work counters
Seconds run: 0.1974 (vs limit Inf)
Iterations: 64
f(x) calls: 6542