@@ -120,7 +120,7 @@ function __solve(prob::OptimizationProblem, opt, data = DEFAULT_DATA;
120
120
121
121
_time = time ()
122
122
123
- build_solution (prob, opt, θ, x[1 ])
123
+ SciMLBase . build_solution (prob, opt, θ, x[1 ])
124
124
# here should be build_solution to create the output message
125
125
end
126
126
@@ -187,7 +187,8 @@ function __solve(prob::OptimizationProblem, opt::Optim.AbstractOptimizer,
187
187
kwargs... ) :
188
188
Optim. Options (;extended_trace = true ,
189
189
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)
191
192
end
192
193
193
194
function __solve (prob:: OptimizationProblem , opt:: Union{Optim.Fminbox,Optim.SAMIN} ,
@@ -237,8 +238,14 @@ function __solve(prob::OptimizationProblem, opt::Union{Optim.Fminbox,Optim.SAMIN
237
238
end
238
239
optim_f = OnceDifferentiable (_loss, f. grad, fg!, prob. u0)
239
240
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)
242
249
end
243
250
244
251
@@ -306,8 +313,14 @@ function __solve(prob::OptimizationProblem, opt::Optim.ConstrainedOptimizer,
306
313
ub = prob. ub === nothing ? [] : prob. ub
307
314
optim_fc = TwiceDifferentiableConstraints (cons!, cons_j!, cons_hl!, lb, ub, prob. lcons, prob. ucons)
308
315
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)
311
324
end
312
325
313
326
@@ -360,17 +373,8 @@ function __init__()
360
373
361
374
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... )
362
375
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)
374
378
end
375
379
376
380
function __solve (prob:: EnsembleOptimizationProblem , opt:: BBO , data = DEFAULT_DATA;
@@ -425,17 +429,8 @@ function __init__()
425
429
426
430
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... )
427
431
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)
439
434
end
440
435
end
441
436
@@ -489,15 +484,7 @@ function __init__()
489
484
(minf,minx,ret) = NLopt. optimize (opt, prob. u0)
490
485
_time = time ()
491
486
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 )
501
488
end
502
489
end
503
490
@@ -531,15 +518,7 @@ function __init__()
531
518
532
519
t1 = time ()
533
520
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)
543
522
end
544
523
end
545
524
@@ -574,15 +553,7 @@ function __init__()
574
553
box = minimum (root)
575
554
t1 = time ()
576
555
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)
586
557
end
587
558
end
588
559
@@ -630,15 +601,7 @@ function __init__()
630
601
: Evolutionary. Options (;callback = _cb, kwargs... ))
631
602
t1 = time ()
632
603
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)
642
605
end
643
606
end
644
607
@require CMAEvolutionStrategy= " 8d3b24bd-414e-49e0-94fb-163cc3a3e411" begin
@@ -687,15 +650,7 @@ function __init__()
687
650
criterion = false
688
651
end
689
652
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)
699
654
end
700
655
end
701
656
end
0 commit comments