NOMAD is Julia package interfacing to NOMAD,which is a C++ implementation of the Mesh Adaptive Direct Search algorithm (MADS), designed for difficult blackbox optimization problems. These problems occur when the functions defining the objective and constraints are the result of costly computer simulations.
The NOMAD algorithm is called by
To use this package, install the OptimizationNOMAD package:
import Pkg; Pkg.add("OptimizationNOMAD")
The method in
NOMAD is performing global optimization on problems both with and without constraint equations. Currently however, linear and nonlinear constraints defined in
Optimization are not passed.
NOMAD works both with and without lower and upper boxconstraints set by
ub in the
The Rosenbrock function can optimized using the
NOMADOpt() with and without boxcontraints as follows:
rosenbrock(x, p) = (p - x)^2 + p * (x - x^2)^2 x0 = zeros(2) p = [1.0, 100.0] f = OptimizationFunction(rosenbrock) prob = OptimizationProblem(f, x0, _p) sol = Optimization.solve(prob,NOMADOpt()) prob = OptimizationProblem(f, x0, _p, lb = [-1.0,-1.0], ub = [1.5,1.5]) sol = Optimization.solve(prob,NOMADOpt())