Global Unconstrained Optimizers
These methods are performing global optimization on problems without constraint equations.
Recommended Methods
Good benchmarks Recommend BBO()
.
Optim.jl
Optim.ParticleSwarm
: Particle Swarm Optimizationsolve(problem, ParticleSwarm(lower, upper, n_particles))
lower
/upper
are vectors of lower/upper bounds respectivelyn_particles
is the number of particles in the swarm- defaults to:
lower = []
,upper = []
,n_particles = 0
BlackBoxOptim.jl
BlackBoxOptim
: (Meta-)heuristic/stochastic algorithmssolve(problem, BBO(method))
- the name of the method must be preceded by
:
, for example::de_rand_2_bin
- in GalacticOptim.jl,
BBO()
defaults to the recommendedadaptive_de_rand_1_bin_radiuslimited
- the available methods are listed here
QuadDIRECT.jl
QuadDIRECT
: QuadDIRECT algorithm (inspired by DIRECT and MCS)solve(problem, QuadDirect(), splits)
splits
is a list of 3-vectors with initial locations at which to evaluate the function (the values must be in strictly increasing order and lie within the specified bounds), for instance:
julia prob = GalacticOptim.OptimizationProblem(f, x0, p, lb=[-3, -2], ub=[3, 2]) solve(prob, QuadDirect(), splits = ([-2, 0, 2], [-1, 0, 1]))
- also note that
QuadDIRECT
should (for now) be installed by doing:] add https://github.com/timholy/QuadDIRECT.jl.git
Evolutionary.jl
Evolutionary.GA
: Genetic Algorithm optimizerEvolutionary.ES
: Evolution Strategy algorithmEvolutionary.CMAES
: Covariance Matrix Adaptation Evolution Strategy algorithm
CMAEvolutionStrategy.jl
CMAEvolutionStrategy
: Covariance Matrix Adaptation Evolution Strategy algorithm