Skip to content

Commit b5c38d7

Browse files
committed
refactor(OptimizationBBO): use the BBO API for setting the objective in the callback
1 parent 8f6bb3b commit b5c38d7

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

lib/OptimizationBBO/src/OptimizationBBO.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,13 @@ function __map_optimizer_args(prob::Optimization.OptimizationCache, opt::BBO;
8383
return mapped_args
8484
end
8585

86+
# single objective
87+
map_objective(obj) = obj
88+
# multiobjective
89+
function map_objective(obj::BlackBoxOptim.IndexedTupleFitness)
90+
obj.orig
91+
end
92+
8693
function SciMLBase.__solve(cache::Optimization.OptimizationCache{
8794
F,
8895
RC,
@@ -117,12 +124,13 @@ function SciMLBase.__solve(cache::Optimization.OptimizationCache{
117124
else
118125
n_steps = BlackBoxOptim.num_steps(trace)
119126
curr_u = decompose_trace(trace, cache.progress)
127+
objective = map_objective(BlackBoxOptim.best_fitness(trace))
120128
opt_state = Optimization.OptimizationState(;
121129
iter = n_steps,
122130
u = curr_u,
123-
objective = x[1],
131+
objective,
124132
original = trace)
125-
cb_call = cache.callback(opt_state, x...)
133+
cb_call = cache.callback(opt_state, objective)
126134
end
127135

128136
if !(cb_call isa Bool)

0 commit comments

Comments
 (0)