lucid  0.0.1
Lifting-based Uncertain Control Invariant Dynamics
Loading...
Searching...
No Matches
lucid::LbfgsParameters Struct Reference

Structure copied from lbfgscpp, to avoid a transitive dependency on the external library in the header. More...

#include <LbfgsTuner.h>

Public Attributes

int m {6}
 The number of corrections to approximate the inverse Hessian matrix.
 
Scalar epsilon {1e-5}
 Absolute tolerance for convergence test.
 
Scalar epsilon_rel {1e-5}
 Relative tolerance for convergence test.
 
int past {0}
 Distance for delta-based convergence test.
 
Scalar delta {0}
 Delta for convergence test.
 
int max_iterations {0}
 The maximum number of iterations.
 
int linesearch {3}
 The line search termination condition.
 
int max_submin {10}
 The maximum number of iterations in the subspace minimization.
 
int max_linesearch {20}
 The maximum number of trials for the line search.
 
Scalar min_step {1e-20}
 The minimum step length allowed in the line search.
 
Scalar max_step {1e+20}
 The maximum step length allowed in the line search.
 
Scalar ftol {1e-4}
 A parameter to control the accuracy of the line search routine.
 
Scalar wolfe {0.9}
 The coefficient for the Wolfe condition.
 

Detailed Description

Structure copied from lbfgscpp, to avoid a transitive dependency on the external library in the header.

Member Data Documentation

◆ delta

Scalar lucid::LbfgsParameters::delta {0}

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 0.

◆ epsilon

Scalar lucid::LbfgsParameters::epsilon {1e-5}

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 \(||g|| < \max\{\epsilon_{abs}, \epsilon_{rel}||x||\}\), where \(||\cdot||\) denotes the Euclidean (L2) norm. The default value is 1e-5.

◆ epsilon_rel

Scalar lucid::LbfgsParameters::epsilon_rel {1e-5}

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 \(||g|| < \max\{\epsilon_{abs}, \epsilon_{rel}||x||\}\), where \(||\cdot||\) denotes the Euclidean (L2) norm. The default value is 1e-5.

◆ ftol

Scalar lucid::LbfgsParameters::ftol {1e-4}

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.

◆ linesearch

int lucid::LbfgsParameters::linesearch {3}

The line search termination condition.

This parameter specifies the line search termination condition that will be used by the LBFGS routine. The default value is LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE.

◆ m

int lucid::LbfgsParameters::m {6}

The number of corrections to approximate the inverse Hessian matrix.

The L-BFGS 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.

◆ max_iterations

int lucid::LbfgsParameters::max_iterations {0}

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.

◆ max_linesearch

int lucid::LbfgsParameters::max_linesearch {20}

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. Only used when bounds are not set.

◆ max_step

Scalar lucid::LbfgsParameters::max_step {1e+20}

The maximum step length allowed in the line search.

The default value is 1e+20. Usually this value does not need to be modified.

◆ max_submin

int lucid::LbfgsParameters::max_submin {10}

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. Only used when bounds are set.

◆ min_step

Scalar lucid::LbfgsParameters::min_step {1e-20}

The minimum step length allowed in the line search.

The default value is 1e-20. Usually this value does not need to be modified.

◆ past

int lucid::LbfgsParameters::past {0}

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 0.

◆ wolfe

Scalar lucid::LbfgsParameters::wolfe {0.9}

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.


The documentation for this struct was generated from the following files: