Run the optimization
A NOMAD optimization process can be run by using the solve()
method described below.
NOMAD.solve
— Methodsolve(p::NomadProblem, x0::Vector{Float64})
-> Run NOMAD with settings defined by NomadProblem
p from starting point x0
.
-> Display stats from NOMAD in the REPL.
-> Return a NamedTuple that contains info about the run.
Arguments:
p::NomadProblem
The problem to solve.
x0::Vector{Float64}
The starting point. Must satisfy lb <= x0 <= ub where lb and ub are respectively the lower and upper bounds of the NomadProblem p. When A and b are defined, it must satisfy A * x0 = b.
Example:
using NOMAD
function eval_fct(x)
f = x[1]^2 + x[2]^2
c = 1 - x[1]
success = true
count_eval = true
bb_outputs = [f,c]
return (success, count_eval, bb_outputs)
end
# creation of a blackbox of dimensions 2*2 with one objective ("OBJ")
# and a constraint treated with the extreme barrier approach ("EB")
p = NomadProblem(2, 2, ["OBJ", "EB"], eval_fct)
# solve problem starting from the point [5.0;5.0]
result = solve(p, [5.0;5.0])