diff --git a/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl b/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl index 764e8a1b8..d980fcd80 100644 --- a/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl +++ b/lib/OptimizationMetaheuristics/src/OptimizationMetaheuristics.jl @@ -107,9 +107,14 @@ function SciMLBase.__solve(cache::OptimizationCache{ maxiters = Optimization._check_and_convert_maxiters(cache.solver_args.maxiters) maxtime = Optimization._check_and_convert_maxtime(cache.solver_args.maxtime) + f=cache.f _loss = function (θ) - x = cache.f(θ, cache.p) - return first(x) + if isa(f,MultiObjectiveOptimizationFunction) + return cache.f(θ, cache.p) + else + x = cache.f(θ, cache.p) + return first(x) + end end if !isnothing(cache.lb) & !isnothing(cache.ub)