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 and Genetic Algorithm, 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 minium 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:  [-1.71661376953125e-5, 8.58306884765625e-6, -4.57763671875e-5]
    Minimum:    2.4638211471028626e-9
    Iterations: 100

 * Found with
    Algorithm: GA