numerical-collection-cpp 0.10.0
A collection of algorithms in numerical analysis implemented in C++
|
Class of newton method for optimization. More...
#include <num_collect/opt/newton_optimizer.h>
Public Types | |
using | base_type = descent_method_base<this_type, LineSearcher> |
Type of base class. | |
using | hessian_solver_type = HessianSolver |
Type of solvers of linear equation of Hessian. | |
using | hessian_type = typename objective_function_type::hessian_type |
Type of Hessian. | |
using | objective_function_type |
Type of the objective function. | |
using | this_type |
This class. | |
using | value_type |
Type of function values. | |
using | variable_type |
Type of variables. | |
Public Types inherited from num_collect::opt::descent_method_base< Derived, LineSearcher > | |
using | line_searcher_type = LineSearcher |
Type of class to perform line search. | |
using | objective_function_type |
Type of the objective function. | |
using | value_type = typename objective_function_type::value_type |
Type of function values. | |
using | variable_type = typename objective_function_type::variable_type |
Type of variables. | |
Public Member Functions | |
newton_optimizer (const objective_function_type &obj_fun=objective_function_type()) | |
Constructor. | |
auto | calc_direction () -> variable_type |
Calculate search direction. | |
void | configure_iteration_logger (logging::iterations::iteration_logger< this_type > &iteration_logger) const |
Configure an iteration logger. | |
auto | evaluations () const noexcept -> index_type |
Get the number of function evaluations. | |
auto | gradient () const -> const variable_type & |
Get gradient for current optimal variable. | |
auto | gradient_norm () const -> value_type |
Calculate norm of gradient. | |
auto | hessian () const -> const hessian_type & |
Get Hessian for current optimal variable. | |
auto | iterations () const noexcept -> index_type |
Get the number of iterations. | |
auto | line_searcher () -> line_searcher_type & |
Access object to perform line search. | |
auto | line_searcher () const -> const line_searcher_type & |
Access object to perform line search. | |
auto | opt_value () const -> const value_type & |
Get current optimal value. | |
Public Member Functions inherited from num_collect::opt::descent_method_base< Derived, LineSearcher > | |
auto | calc_direction () -> variable_type |
Calculate search direction. | |
auto | evaluations () const noexcept -> index_type |
Get the number of function evaluations. | |
auto | gradient () const -> const variable_type & |
Get gradient for current optimal variable. | |
auto | gradient_norm () const -> value_type |
Calculate norm of gradient. | |
void | init (const variable_type &init_variable) |
Initialize. | |
auto | is_stop_criteria_satisfied () const -> bool |
Determine if stopping criteria of the algorithm are satisfied. | |
void | iterate () |
Iterate the algorithm once. | |
auto | iterations () const noexcept -> index_type |
Get the number of iterations. | |
auto | line_searcher () -> line_searcher_type & |
Access object to perform line search. | |
auto | line_searcher () const -> const line_searcher_type & |
Access object to perform line search. | |
auto | opt_value () const -> const value_type & |
Get current optimal value. | |
auto | opt_variable () const -> const variable_type & |
Get current optimal variable. | |
auto | tol_gradient_norm (const value_type &value) -> Derived & |
Set tolerance of norm of gradient. | |
Public Member Functions inherited from num_collect::opt::optimizer_base< Derived > | |
optimizer_base (logging::log_tag_view tag) | |
Constructor. | |
auto | evaluations () const noexcept -> index_type |
Get the number of function evaluations. | |
auto | iterations () const noexcept -> index_type |
Get the number of iterations. | |
auto | opt_value () const |
Get current optimal value. | |
auto | opt_variable () const |
Get current optimal variable. | |
Public Member Functions inherited from num_collect::base::iterative_solver_base< Derived > | |
iterative_solver_base (logging::log_tag_view tag) | |
Constructor. | |
auto | is_stop_criteria_satisfied () const -> bool |
Determine if stopping criteria of the algorithm are satisfied. | |
void | iterate () |
Iterate the algorithm once. | |
void | solve () |
Solve the problem. | |
Public Member Functions inherited from num_collect::logging::logging_mixin | |
logging_mixin (log_tag_view tag) | |
Constructor. | |
template<typename Child > | |
void | configure_child_algorithm_logger_if_exists (Child &child) |
Configure a logger of a child algorithm if exists. | |
auto | logger () const noexcept -> const num_collect::logging::logger & |
Access to the logger. | |
auto | logger () noexcept -> num_collect::logging::logger & |
Access to the logger. | |
Public Member Functions inherited from num_collect::logging::iterations::iteration_logger_mixin< Derived > | |
iteration_logger_mixin ()=default | |
Constructor. | |
void | configure_iteration_logger (num_collect::logging::iterations::iteration_logger< Derived > &iteration_logger) const |
Configure an iteration logger. | |
auto | initialize_iteration_logger () -> num_collect::logging::iterations::iteration_logger< Derived > & |
Get the iteration logger. | |
Private Member Functions | |
auto | calc_direction_impl (const hessian_type &hessian) -> variable_type |
Calculate search direction. | |
Private Attributes | |
hessian_solver_type | solver_ |
Solver of linear equation of Hessian. | |
Additional Inherited Members | |
Protected Member Functions inherited from num_collect::opt::descent_method_base< Derived, LineSearcher > | |
descent_method_base (logging::log_tag_view tag, const objective_function_type &obj_fun=objective_function_type()) | |
Constructor. | |
Protected Member Functions inherited from num_collect::base::iterative_solver_base< Derived > | |
auto | derived () const noexcept -> const Derived & |
Access derived object. | |
auto | derived () noexcept -> Derived & |
Access derived object. | |
Class of newton method for optimization.
ObjectiveFunction | Type of the objective function. |
LineSearcher | Type of class to perform line search. |
HessianSolver | Type of solvers of linear equation of Hessian. |
Definition at line 51 of file newton_optimizer.h.
using num_collect::opt::newton_optimizer< ObjectiveFunction, LineSearcher, HessianSolver >::base_type = descent_method_base<this_type, LineSearcher> |
Type of base class.
Definition at line 61 of file newton_optimizer.h.
using num_collect::opt::newton_optimizer< ObjectiveFunction, LineSearcher, HessianSolver >::hessian_solver_type = HessianSolver |
Type of solvers of linear equation of Hessian.
Definition at line 70 of file newton_optimizer.h.
using num_collect::opt::newton_optimizer< ObjectiveFunction, LineSearcher, HessianSolver >::hessian_type = typename objective_function_type::hessian_type |
Type of Hessian.
Definition at line 67 of file newton_optimizer.h.
using num_collect::opt::descent_method_base< Derived, LineSearcher >::objective_function_type |
Type of the objective function.
Definition at line 42 of file descent_method_base.h.
using num_collect::opt::newton_optimizer< ObjectiveFunction, LineSearcher, HessianSolver >::this_type |
This class.
Definition at line 57 of file newton_optimizer.h.
using num_collect::opt::descent_method_base< Derived, LineSearcher >::value_type |
Type of function values.
Definition at line 49 of file descent_method_base.h.
using num_collect::opt::descent_method_base< Derived, LineSearcher >::variable_type |
Type of variables.
Definition at line 46 of file descent_method_base.h.
|
inlineexplicit |
Constructor.
[in] | obj_fun | Objective function. |
Definition at line 77 of file newton_optimizer.h.
|
inlinenodiscard |
Calculate search direction.
Definition at line 101 of file newton_optimizer.h.
|
inlinenodiscardprivate |
Calculate search direction.
[in] | hessian | Hessian. |
Definition at line 128 of file newton_optimizer.h.
|
inline |
Configure an iteration logger.
[in] | iteration_logger | Iteration logger. |
Definition at line 108 of file newton_optimizer.h.
|
inlinenodiscardnoexcept |
Get the number of function evaluations.
Definition at line 127 of file descent_method_base.h.
|
inlinenodiscard |
Get gradient for current optimal variable.
Definition at line 136 of file descent_method_base.h.
|
inlinenodiscard |
Calculate norm of gradient.
Definition at line 145 of file descent_method_base.h.
|
inlinenodiscard |
Get Hessian for current optimal variable.
Definition at line 94 of file newton_optimizer.h.
|
inlinenodiscardnoexcept |
Get the number of iterations.
Definition at line 120 of file descent_method_base.h.
|
inlinenodiscard |
Access object to perform line search.
Definition at line 90 of file descent_method_base.h.
|
inlinenodiscard |
Access object to perform line search.
Definition at line 99 of file descent_method_base.h.
|
inlinenodiscard |
Get current optimal value.
Definition at line 113 of file descent_method_base.h.
|
private |
Solver of linear equation of Hessian.
Definition at line 135 of file newton_optimizer.h.