Evolutionary.jl
Evolutionary
is a Julia package implementing various evolutionary and genetic algorithm.
Installation: OptimizationCMAEvolutionStrategy.jl
To use this package, install the OptimizationCMAEvolutionStrategy package:
import Pkg; Pkg.add("OptimizationCMAEvolutionStrategy")
Global Optimizer
Without Constraint Equations
The methods in Evolutionary
are performing global optimization on problems without constraint equations. These methods work both with and without lower and upper constraints set by lb
and ub
in the OptimizationProblem
.
A Evolutionary
algorithm is called by one of the following:
Evolutionary.GA()
: Genetic Algorithm optimizerEvolutionary.DE()
: Differential Evolution optimizerEvolutionary.ES()
: Evolution Strategy algorithmEvolutionary.CMAES()
: Covariance Matrix Adaptation Evolution Strategy algorithm
Algorithm specific options are defined as kwargs
. See the respective documentation for more detail.
Example
The Rosenbrock function can optimized using the Evolutionary.CMAES()
as follows:
rosenbrock(x, p) = (p[1] - x[1])^2 + p[2] * (x[2] - x[1]^2)^2
x0 = zeros(2)
p = [1.0, 100.0]
f = OptimizationFunction(rosenbrock)
prob = Optimization.OptimizationProblem(f, x0, p, lb = [-1.0,-1.0], ub = [1.0,1.0])
sol = solve(prob, Evolutionary.CMAES(μ =40 , λ = 100))