55 Eigen::MatrixX<typename ObjectiveFunction::value_type>>
58 dfp_optimizer<ObjectiveFunction, LineSearcher, Hessian>,
101 const auto dimensions = init_variable.size();
133 iteration_logger.template append<index_type>(
135 iteration_logger.template append<index_type>(
137 iteration_logger.template append<value_type>(
139 iteration_logger.template append<value_type>(
Definition of backtracking_line_searcher class.
Class to write logs of iterations.
Class of tags of logs without memory management.
Class to perform backtracking line search.
Base class of implementations of descent methods for optimization.
typename objective_function_type::value_type value_type
Type of function values.
auto gradient() const -> const variable_type &
Get gradient for current optimal variable.
auto opt_variable() const -> const variable_type &
Get current optimal variable.
auto iterations() const noexcept -> index_type
Get the number of iterations.
typename objective_function_type::variable_type variable_type
Type of variables.
void init(const variable_type &init_variable)
Initialize.
auto evaluations() const noexcept -> index_type
Get the number of function evaluations.
typename line_searcher_type::objective_function_type objective_function_type
Type of the objective function.
auto gradient_norm() const -> value_type
Calculate norm of gradient.
auto opt_value() const -> const value_type &
Get current optimal value.
auto line_searcher() -> line_searcher_type &
Access object to perform line search.
Class of quasi-Newton method with Davidon-Fletcher-Powell (DFP) formula.
variable_type diff_var_
Difference of variable.
void init(const variable_type &init_variable)
Initialize.
auto gradient() const -> const variable_type &
Get gradient for current optimal variable.
auto opt_variable() const -> const variable_type &
Get current optimal variable.
typename variable_type::Scalar variable_scalar_type
Type of scalars in variables.
bool has_first_iteration_done_
Whether the first iteration has been done.
typename objective_function_type::variable_type variable_type
Type of variables.
hessian_type approx_hessian_
Approximate Hessian.
void configure_iteration_logger(logging::iterations::iteration_logger< this_type > &iteration_logger) const
Configure an iteration logger.
Hessian hessian_type
Type of Hessian.
auto calc_direction() -> variable_type
Calculate search direction.
typename line_searcher_type::objective_function_type objective_function_type
Type of the objective function.
variable_type diff_grad_
Difference of gradient.
variable_type prev_var_
Previous variable.
variable_type prev_grad_
Previous gradient.
dfp_optimizer(const objective_function_type &obj_fun=objective_function_type())
Constructor.
variable_type hessian_grad_
approx_hessian_ * diff_grad_
Concept of Eigen's dense matrices with real scalars.
Concept of objects to perform line search in optimization.
Concept of multi-variate first-order differentiable objective functions in optimization.
Definition of descent_method_base class.
Definition of index_type type.
Definition of iteration_logger class.
Definition of line_searcher concept.
Definition of log_tag_view class.
Definition of multi_variate_differentiable_objective_function concept.
Namespace of optimization algorithms.
constexpr auto dfp_optimizer_tag
Tag of dfp_optimizer.
Definition of real_scalar_dense_matrix concept.