Refactoring #2376

Look for an alternative to root minimizers

Added by dmitry 5 months ago. Updated 3 months ago.

Status:BacklogStart date:05 Jun 2019
Priority:NormalDue date:
Assignee:-% Done:

0%

Category:-
Target version:-

Description

Root library covers lots of very different minimizers under one umbrella.
However it lacks some modern minimizers (e.g. differential evolution)
which could be handy. Besides it costs big efforts to support the
interfacing and bring all the minimizers to stable functioning.

I would give a try to OptimLib

History

#1 Updated by juan 4 months ago

In this page (https://en.cppreference.com/w/cpp/links/libs) there's a gazillion of c++ libraries, not all of which are interesting.
Going to the 'optimization' section, the only entry is OptimLib; however, dlib' --listed under 'Generic', 'Linear Algebra' and 'Image Processing', offers several optimization functionalities with many examples for both Python and C++
I'd say it is worth taking a closer look at it (http://dlib.net/optimization.html):

General Purpose Optimizers:

find_max
find_max_bobyqa
find_max_box_constrained
find_max_global
find_max_single_variable
find_max_trust_region
find_max_using_approximate_derivatives
find_min
find_min_bobyqa
find_min_box_constrained
find_min_global
find_min_single_variable
find_min_trust_region
find_min_using_approximate_derivatives
global_function_search

Special Purpose Optimizers:

elastic_net
find_gap_between_convex_hulls
find_max_factor_graph_nmplp
find_max_factor_graph_potts
find_max_factor_graph_viterbi
find_max_parse_cky
isotonic_regression
max_cost_assignment
max_sum_submatrix
min_cut
mpc
oca
solve_least_squares
solve_least_squares_lm
solve_qp2_using_smo
solve_qp3_using_smo
solve_qp4_using_smo
solve_qp_box_constrained
solve_qp_box_constrained_blockdiag
solve_qp_using_smo
solve_trust_region_subproblem
solve_trust_region_subproblem_bounded

Strategies:

bfgs_search_strategy
cg_search_strategy
gradient_norm_stop_strategy
lbfgs_search_strategy
newton_search_strategy
objective_delta_stop_strategy

Both Dlib and OptimLib are opensource projects and have github repositories:

https://github.com/kthohr/optim/ ; 1 contributor; lastest commit (as of today) in 2018; Apache Version 2 License
https://github.com/davisking/dlib ; 124 contributors; latest commit (as of today) in June 2019; Boost Software License

#2 Updated by pospelov 3 months ago

  • Target version deleted (v2.0)

Also available in: Atom PDF