LBFGS++
Loading...
Searching...
No Matches
LBFGSpp::LBFGSBParam< Scalar > Class Template Reference

#include <Param.h>

Public Member Functions

 LBFGSBParam ()
 
void check_param () const
 

Public Attributes

int m
 
Scalar epsilon
 
Scalar epsilon_rel
 
int past
 
Scalar delta
 
int max_iterations
 
int max_submin
 
int max_linesearch
 
Scalar min_step
 
Scalar max_step
 
Scalar ftol
 
Scalar wolfe
 

Detailed Description

template<typename Scalar = double>
class LBFGSpp::LBFGSBParam< Scalar >

Parameters to control the L-BFGS-B algorithm.

Definition at line 225 of file Param.h.

Constructor & Destructor Documentation

◆ LBFGSBParam()

template<typename Scalar = double>
LBFGSpp::LBFGSBParam< Scalar >::LBFGSBParam ( )
inline

Constructor for L-BFGS-B parameters. Default values for parameters will be set when the object is created.

Definition at line 327 of file Param.h.

Member Function Documentation

◆ check_param()

template<typename Scalar = double>
void LBFGSpp::LBFGSBParam< Scalar >::check_param ( ) const
inline

Checking the validity of L-BFGS-B parameters. An std::invalid_argument exception will be thrown if some parameter is invalid.

Definition at line 350 of file Param.h.

Member Data Documentation

◆ m

template<typename Scalar = double>
int LBFGSpp::LBFGSBParam< Scalar >::m

The number of corrections to approximate the inverse Hessian matrix. The L-BFGS-B routine stores the computation results of previous m iterations to approximate the inverse Hessian matrix of the current iteration. This parameter controls the size of the limited memories (corrections). The default value is 6. Values less than 3 are not recommended. Large values will result in excessive computing time.

Definition at line 236 of file Param.h.

◆ epsilon

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::epsilon

Absolute tolerance for convergence test. This parameter determines the absolute accuracy \(\epsilon_{abs}\) with which the solution is to be found. A minimization terminates when \(||Pg||_{\infty} < \max\{\epsilon_{abs}, \epsilon_{rel}||x||\}\), where \(||x||\) denotes the Euclidean (L2) norm of \(x\), and \(Pg=P(x-g,l,u)-x\) is the projected gradient. The default value is 1e-5.

Definition at line 246 of file Param.h.

◆ epsilon_rel

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::epsilon_rel

Relative tolerance for convergence test. This parameter determines the relative accuracy \(\epsilon_{rel}\) with which the solution is to be found. A minimization terminates when \(||Pg||_{\infty} < \max\{\epsilon_{abs}, \epsilon_{rel}||x||\}\), where \(||x||\) denotes the Euclidean (L2) norm of \(x\), and \(Pg=P(x-g,l,u)-x\) is the projected gradient. The default value is 1e-5.

Definition at line 256 of file Param.h.

◆ past

template<typename Scalar = double>
int LBFGSpp::LBFGSBParam< Scalar >::past

Distance for delta-based convergence test. This parameter determines the distance \(d\) to compute the rate of decrease of the objective function, \(f_{k-d}(x)-f_k(x)\), where \(k\) is the current iteration step. If the value of this parameter is zero, the delta-based convergence test will not be performed. The default value is 1.

Definition at line 265 of file Param.h.

◆ delta

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::delta

Delta for convergence test. The algorithm stops when the following condition is met, \(|f_{k-d}(x)-f_k(x)|<\delta\cdot\max(1, |f_k(x)|, |f_{k-d}(x)|)\), where \(f_k(x)\) is the current function value, and \(f_{k-d}(x)\) is the function value \(d\) iterations ago (specified by the past parameter). The default value is 1e-10.

Definition at line 274 of file Param.h.

◆ max_iterations

template<typename Scalar = double>
int LBFGSpp::LBFGSBParam< Scalar >::max_iterations

The maximum number of iterations. The optimization process is terminated when the iteration count exceeds this parameter. Setting this parameter to zero continues an optimization process until a convergence or error. The default value is 0.

Definition at line 282 of file Param.h.

◆ max_submin

template<typename Scalar = double>
int LBFGSpp::LBFGSBParam< Scalar >::max_submin

The maximum number of iterations in the subspace minimization. This parameter controls the number of iterations in the subspace minimization routine. The default value is 10.

Definition at line 288 of file Param.h.

◆ max_linesearch

template<typename Scalar = double>
int LBFGSpp::LBFGSBParam< Scalar >::max_linesearch

The maximum number of trials for the line search. This parameter controls the number of function and gradients evaluations per iteration for the line search routine. The default value is 20.

Definition at line 294 of file Param.h.

◆ min_step

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::min_step

The minimum step length allowed in the line search. The default value is 1e-20. Usually this value does not need to be modified.

Definition at line 300 of file Param.h.

◆ max_step

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::max_step

The maximum step length allowed in the line search. The default value is 1e+20. Usually this value does not need to be modified.

Definition at line 306 of file Param.h.

◆ ftol

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::ftol

A parameter to control the accuracy of the line search routine. The default value is 1e-4. This parameter should be greater than zero and smaller than 0.5.

Definition at line 312 of file Param.h.

◆ wolfe

template<typename Scalar = double>
Scalar LBFGSpp::LBFGSBParam< Scalar >::wolfe

The coefficient for the Wolfe condition. This parameter is valid only when the line-search algorithm is used with the Wolfe condition. The default value is 0.9. This parameter should be greater the ftol parameter and smaller than 1.0.

Definition at line 320 of file Param.h.


The documentation for this class was generated from the following file: