Skip to content

tpapp/MultistartOptimization.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MultistartOptimization.jl

lifecycle build codecov.io Documentation Documentation

Experimenting with multistart optimization methods in Julia.

WORK IN PROGRESS. Expect API changes, but SemVer 2 will of course be respected.

Documentation is very much WIP.

How to use this package

  1. Define a minimization problem with the objective, lower- and upper bounds,

  2. pick a local method for each multistart point (currently methods in NLopt.jl are supported),

  3. pick a multistart method (currently we have TikTak from Arnoud, Guvenen, and Kleineberg (2019)).

Example:

using MultistartOptimization, NLopt
P = MinimizationProblem(x -> sum(abs2, x), -ones(10), ones(10))
local_method = NLoptLocalMethod(NLopt.LN_BOBYQA)
multistart_method = TikTak(100)
p = multistart_minimization(multistart_method, local_method, P)
p.location, p.value

Some benchmarks

Number of function evaluations for

  • TikTak with 100 Sobol initial points,
  • dimension 10,
  • local search terminating with absolute tolerance 1e-8 in the position
ShiftedQuadratic Griewank LevyMontalvo2 Rastrigin Rosenbrock
LN_BOBYQA 569 2633 4235 FAIL 10995
LN_NELDERMEAD 15750 17108 33088 FAIL 42785
LN_NEWUOA_BOUND 580 2088 2253 FAIL 13409
LN_SBPLX 12329 11806 11447 FAIL 7020038
LN_COBYLA 16943 37414 32792 FAIL 985676
LN_PRAXIS 1850 9886 8548 FAIL 15436