Closed BeastyBlacksmith closed 5 years ago
Could you pls show your code that constructs the optimization problem?
TopListArchive
is for scalar optimization only, as are most of the optimization methods except borg_moea()
, which uses EpsBoxArchive
.
So TopListArchive{F<:Number}
constraint is correct, but maybe we need to introduce some early checks to ensure that multiobjective problems are solved with the right methods.
I wrote
function ODEshoot_opt!( vesicle, tspan, parameterRanges; kwargs... )
opt = bboptimize(
(p)-> shape_fitness(p, vesicle, tspan);
Method = :borg_moea,
FitnessScheme = ParetoFitnessScheme{5}(is_minimizing=true),
SearchRange = parameterRanges,
TraceMode = :silent,
ϵ = 0.05,
kwargs...
)
return opt
end
and called it via
res = VesicleForms.ODEshoot_opt!( copy(VesicleForms.prolate0_9), tspan, [(1e-3,1e2),(-1e2,-1e-3),(1e-1,1e1),(1e-1,1e1),(1e-1,1e2)] )
Thanks! From your trace it looks like bboptimize()
doesn't pick up Method=:borg_moea
and uses the default (:adaptive_de_rand_1_bin_radiuslimited
) instead. However, your example works for me on Julia v1.0.3 for BBO master. What versions are you using?
Also, could you please add 3 @show
commands into bboptimize.jl/bbsetup()
(assuming you've checked out BBO for developing):
function bbsetup(functionOrProblem, parameters::Parameters = EMPTY_PARAMS; kwargs...)
@show kwargs2dict(kwargs)
....
problem, params = setup_problem(functionOrProblem, chain(DefaultParameters, parameters))
@show params
....
optimizer_func = chain(SingleObjectiveMethods, MultiObjectiveMethods)[params[:Method]]
@show optimizer_func
....
and post the output of your script here?
To be honest, i can't reproduce the error on current master and tagged version 0.4.0. So I'm closing this and sorry for disturbing.
Currently I get the following error:
Which seems to me that
TopListArchive
has type parameterF<:Number
for multi objective optimization this tends to be a container though.