@@ -120,7 +120,7 @@ function __solve(prob::OptimizationProblem, opt, data = DEFAULT_DATA;
120120
121121 _time = time ()
122122
123- build_solution (prob, opt, θ, x[1 ])
123+ SciMLBase . build_solution (prob, opt, θ, x[1 ])
124124 # here should be build_solution to create the output message
125125end
126126
@@ -187,7 +187,8 @@ function __solve(prob::OptimizationProblem, opt::Optim.AbstractOptimizer,
187187 kwargs... ) :
188188 Optim. Options (;extended_trace = true ,
189189 callback = _cb, kwargs... ))
190- build_solution (prob, opt, original. minimizer, original. minimum; original= original)
190+ SciMLBase. build_solution (prob, opt, original. minimizer,
191+ original. minimum; original= original)
191192end
192193
193194function __solve (prob:: OptimizationProblem , opt:: Union{Optim.Fminbox,Optim.SAMIN} ,
@@ -237,8 +238,14 @@ function __solve(prob::OptimizationProblem, opt::Union{Optim.Fminbox,Optim.SAMIN
237238 end
238239 optim_f = OnceDifferentiable (_loss, f. grad, fg!, prob. u0)
239240
240- Optim. optimize (optim_f, prob. lb, prob. ub, prob. u0, opt, ! (isnothing (maxiters)) ? Optim. Options (;extended_trace = true , callback = _cb, iterations = maxiters, kwargs... )
241- : Optim. Options (;extended_trace = true , callback = _cb, kwargs... ))
241+ original = Optim. optimize (optim_f, prob. lb, prob. ub, prob. u0, opt,
242+ ! (isnothing (maxiters)) ? Optim. Options (;
243+ extended_trace = true , callback = _cb,
244+ iterations = maxiters, kwargs... ) :
245+ Optim. Options (;extended_trace = true ,
246+ callback = _cb, kwargs... ))
247+ SciMLBase. build_solution (prob, opt, original. minimizer,
248+ original. minimum; original= original)
242249end
243250
244251
@@ -306,8 +313,14 @@ function __solve(prob::OptimizationProblem, opt::Optim.ConstrainedOptimizer,
306313 ub = prob. ub === nothing ? [] : prob. ub
307314 optim_fc = TwiceDifferentiableConstraints (cons!, cons_j!, cons_hl!, lb, ub, prob. lcons, prob. ucons)
308315
309- Optim. optimize (optim_f, optim_fc, prob. u0, opt, ! (isnothing (maxiters)) ? Optim. Options (;extended_trace = true , callback = _cb, iterations = maxiters, kwargs... )
310- : Optim. Options (;extended_trace = true , callback = _cb, kwargs... ))
316+ original = Optim. optimize (optim_f, optim_fc, prob. u0, opt,
317+ ! (isnothing (maxiters)) ? Optim. Options (;
318+ extended_trace = true , callback = _cb,
319+ iterations = maxiters, kwargs... ) :
320+ Optim. Options (;extended_trace = true ,
321+ callback = _cb, kwargs... ))
322+ SciMLBase. build_solution (prob, opt, original. minimizer,
323+ original. minimum; original= original)
311324end
312325
313326
@@ -360,17 +373,8 @@ function __init__()
360373
361374 bboptre = ! (isnothing (maxiters)) ? BlackBoxOptim. bboptimize (_loss;Method = opt. method, SearchRange = [(prob. lb[i], prob. ub[i]) for i in 1 : length (prob. lb)], MaxSteps = maxiters, CallbackFunction = _cb, CallbackInterval = 0.0 , kwargs... ) : BlackBoxOptim. bboptimize (_loss;Method = opt. method, SearchRange = [(prob. lb[i], prob. ub[i]) for i in 1 : length (prob. lb)], CallbackFunction = _cb, CallbackInterval = 0.0 , kwargs... )
362375
363-
364- OptimizationSolution (opt. method,
365- [NaN ],# initial_x,
366- BlackBoxOptim. best_candidate (bboptre), # pick_best_x(f_incr_pick, state),
367- BlackBoxOptim. best_fitness (bboptre), # pick_best_f(f_incr_pick, state, d),
368- bboptre. iterations, # iteration,
369- ! (isnothing (maxiters)) ? bboptre. iterations >= maxiters : true , # iteration == options.iterations,
370- true ,
371- bboptre. elapsed_time,
372- NamedTuple ())
373-
376+ SciMLBase. build_solution (prob, opt, BlackBoxOptim. best_candidate (bboptre),
377+ BlackBoxOptim. best_fitness (bboptre); original= bboptre)
374378 end
375379
376380 function __solve (prob:: EnsembleOptimizationProblem , opt:: BBO , data = DEFAULT_DATA;
@@ -425,17 +429,8 @@ function __init__()
425429
426430 bboptre = ! (isnothing (maxiters)) ? BlackBoxOptim. bboptimize (_loss;Method = opt. method, SearchRange = [(multi_bounds. lb[i], multi_bounds. ub[i]) for i in 1 : length (multi_bounds. lb)], MaxSteps = maxiters, CallbackFunction = _cb, CallbackInterval = 0.0 , FitnessScheme= FitnessScheme, kwargs... ) : BlackBoxOptim. bboptimize (_loss;Method = opt. method, SearchRange = [(multi_bounds. lb[i], multi_bounds. ub[i]) for i in 1 : length (multi_bounds. lb)], CallbackFunction = _cb, CallbackInterval = 0.0 , FitnessScheme= FitnessScheme, kwargs... )
427431
428-
429- OptimizationSolution (opt. method,
430- [NaN ],# initial_x,
431- BlackBoxOptim. best_candidate (bboptre), # pick_best_x(f_incr_pick, state),
432- BlackBoxOptim. best_fitness (bboptre), # pick_best_f(f_incr_pick, state, d),
433- bboptre. iterations, # iteration,
434- ! (isnothing (maxiters)) ? bboptre. iterations >= maxiters : true , # iteration == options.iterations,
435- true ,
436- bboptre. elapsed_time,
437- NamedTuple ())
438-
432+ SciMLBase. build_solution (prob, opt, BlackBoxOptim. best_candidate (bboptre),
433+ BlackBoxOptim. best_fitness (bboptre); original= bboptre)
439434 end
440435 end
441436
@@ -489,15 +484,7 @@ function __init__()
489484 (minf,minx,ret) = NLopt. optimize (opt, prob. u0)
490485 _time = time ()
491486
492- OptimizationSolution (opt. algorithm,
493- prob. u0,# initial_x,
494- minx, # pick_best_x(f_incr_pick, state),
495- minf, # pick_best_f(f_incr_pick, state, d),
496- Int (opt. numevals), # iteration,
497- ! (isnothing (maxiters)) ? opt. numevals >= maxiters : true , # iteration == options.iterations,
498- ret,
499- _time- t0,
500- NamedTuple ())
487+ SciMLBase. build_solution (prob, opt, minx, minf; original= nothing )
501488 end
502489 end
503490
@@ -531,15 +518,7 @@ function __init__()
531518
532519 t1 = time ()
533520
534- OptimizationSolution (opt,
535- [NaN ],# initial_x,
536- p. location, # pick_best_x(f_incr_pick, state),
537- p. value, # pick_best_f(f_incr_pick, state, d),
538- local_maxiters,
539- local_maxiters>= opt. maxeval, # not sure if that's correct
540- true ,
541- t1 - t0,
542- NamedTuple ())
521+ SciMLBase. build_solution (prob, opt, p. location, p. value; original= p)
543522 end
544523 end
545524
@@ -574,15 +553,7 @@ function __init__()
574553 box = minimum (root)
575554 t1 = time ()
576555
577- OptimizationSolution (opt,
578- [NaN ],# initial_x,
579- QuadDIRECT. position (box, x0), # pick_best_x(f_incr_pick, state),
580- QuadDIRECT. value (box), # pick_best_f(f_incr_pick, state, d),
581- ! (isnothing (maxiters)) ? maxiters : 0 ,
582- box. qnconverged, # not sure if that's correct
583- true ,
584- t1 - t0,
585- NamedTuple ())
556+ SciMLBase. build_solution (prob, opt, QuadDIRECT. position (box, x0), QuadDIRECT. value (box); original= root)
586557 end
587558 end
588559
@@ -630,15 +601,7 @@ function __init__()
630601 : Evolutionary. Options (;callback = _cb, kwargs... ))
631602 t1 = time ()
632603
633- OptimizationSolution (summary (result),
634- prob. u0, # initial_x
635- Evolutionary. minimizer (result), # pick_best_x
636- minimum (result), # pick_best_f
637- Evolutionary. iterations (result), # iteration
638- Evolutionary. converged (result), # convergence status
639- true ,
640- t1 - t0,
641- NamedTuple ())
604+ SciMLBase. build_solution (prob, opt, Evolutionary. minimizer (result), Evolutionary. minimum (result); original= result)
642605 end
643606 end
644607 @require CMAEvolutionStrategy= " 8d3b24bd-414e-49e0-94fb-163cc3a3e411" begin
@@ -687,15 +650,7 @@ function __init__()
687650 criterion = false
688651 end
689652
690- OptimizationSolution (opt,
691- prob. u0,# initial_x,
692- result. logger. xbest[end ], # pick_best_x(f_incr_pick, state),
693- result. logger. fbest[end ], # pick_best_f(f_incr_pick, state, d),
694- length (result. logger. fbest),
695- criterion,
696- true ,
697- result. logger. times[end ] - result. logger. times[1 ],
698- NamedTuple ())
653+ SciMLBase. build_solution (prob, opt, result. logger. xbest[end ], result. logger. fbest[end ]; original= result)
699654 end
700655 end
701656end
0 commit comments