This is a pure Julia implementation of (Robust)LtMADS and (Robust)OrthoMADS for blackbox optimization. See NOMAD.jl for a julia wrapper of NOMAD.
Type ]
in the Julia REPL to enter the package REPL, then
add https://github.com/jbrea/MeshAdaptiveDirectSearch.jl
and backspace or ^C to leave it again.
using MeshAdaptiveDirectSearch
f(x) = (1 - exp(-sum(abs2, x))) * max(sum(abs2, x .- [30, 40]), sum(abs2, x .+ [30, 40]))
noisyf(x) = f(x) + .1 * randn()
minimize(LtMADS(2), f, [-2.1, 1.7], lowerbound = [-10, -10], upperbound = [10, 10])
minimize(LtMADS(2), f, [-2.1, 1.7], lowerbound = [-10, -10], upperbound = [10, 10], constraints = [x -> sum(x) < .5])
minimize(OrthoMADS(2), f, [-2.1, 1.7], lowerbound = [-10, -10], upperbound = [10, 10])
minimize(RobustLtMADS(2), noisyf, [-2.1, 1.7], lowerbound = [-10, -10], upperbound = [10, 10])
minimize(RobustOrthoMADS(2), noisyf, [-2.1, 1.7], lowerbound = [-10, -10], upperbound = [10, 10])
To get help, press ?
in the Julia REPL, then e.g. minimize
.
Audet, Charles and Dennis, J. E., "Mesh Adaptive Direct Search Algorithms for Constrained Optimization", 2006, doi
Abramson, Mark A. and Audet, Charles and Dennis, J. E. and Le Digabel, Sébastien, "OrthoMADS: A Deterministic MADS Instance with Orthogonal Directions", 2009, doi.
Audet, Charles and Ianni, Andrea and Le Digabel, Sébastien and Tribes, Christophe, "Reducing the Number of Function Evaluations in Mesh Adaptive Direct Search Algorithms", 2014, doi
Audet, Charles and Ihaddadene, Amina and Le Digabel, Sébastien and Tribes, Christophe, "Robust optimization of noisy blackbox problems using the Mesh Adaptive Direct Search algorithm", 2018, doi