Improved documentations

git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@59 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
This commit is contained in:
naoaki
2009-07-13 14:04:26 +00:00
parent 6375811810
commit 896f8cbc7c
2 changed files with 61 additions and 10 deletions

View File

@@ -107,6 +107,8 @@ enum {
LBFGSERR_INVALID_MAXSTEP,
/** Invalid parameter lbfgs_parameter_t::ftol specified. */
LBFGSERR_INVALID_FTOL,
/** Invalid parameter lbfgs_parameter_t::wolfe specified. */
LBFGSERR_INVALID_WOLFE,
/** Invalid parameter lbfgs_parameter_t::gtol specified. */
LBFGSERR_INVALID_GTOL,
/** Invalid parameter lbfgs_parameter_t::xtol specified. */
@@ -152,13 +154,36 @@ enum {
LBFGS_LINESEARCH_DEFAULT = 0,
/** MoreThuente method proposd by More and Thuente. */
LBFGS_LINESEARCH_MORETHUENTE = 0,
/** Backtracking method with strong Wolfe condition. */
LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE = 1,
/** Backtracking method with regular Wolfe condition. */
LBFGS_LINESEARCH_BACKTRACKING = 2,
/**
* Backtracking method with the Armijo condition:
* The backtracking method finds the step length such that it satisfies
* the sufficient decrease (Armijo) condition,
* f(x + a * d) <= f(x) + lbfgs_parameter_t::ftol * a * g(x) \cdot d,
* where x is the current point, d is the current search direction, and
* a is the step length.
*/
LBFGS_LINESEARCH_BACKTRACKING_ARMIJO = 1,
LBFGS_LINESEARCH_BACKTRACKING = 1,
/**
* Backtracking method with regular Wolfe condition.
* The backtracking method finds the step length such that it satisfies
* both the Armijo condition (LBFGS_LINESEARCH_BACKTRACKING_ARMIJO)
* and the curvature condition,
* g(x + a * d) \cdot d >= lbfgs_parameter_t::wolfe * g(x) \cdot d,
* where x is the current point, d is the current search direction, and
* a is the step length.
*/
LBFGS_LINESEARCH_BACKTRACKING_WOLFE = 2,
/** Backtracking method with Armijo condition. */
LBFGS_LINESEARCH_BACKTRACKING_ARMIJO = 3,
/**
* Backtracking method with strong Wolfe condition.
* The backtracking method finds the step length such that it satisfies
* both the Armijo condition (LBFGS_LINESEARCH_BACKTRACKING_ARMIJO)
* and the following condition,
* |g(x + a * d) \cdot d| <= lbfgs_parameter_t::wolfe * |g(x) \cdot d|,
* where x is the current point, d is the current search direction, and
* a is the step length.
*/
LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE = 3,
};
/**
@@ -257,6 +282,17 @@ typedef struct {
*/
lbfgsfloatval_t ftol;
/**
* A coefficient for the Wolfe condition.
* This parameter is valid only when the backtracking line-search
* algorithm is used with the Wolfe condition,
* ::LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE or
* ::LBFGS_LINESEARCH_BACKTRACKING_WOLFE .
* The default value is \c 0.9. This parameter should be greater
* the \ref ftol parameter and smaller than \c 1.0.
*/
lbfgsfloatval_t wolfe;
/**
* A parameter to control the accuracy of the line search routine.
* The default value is \c 0.9. If the function and gradient
@@ -557,6 +593,15 @@ libLBFGS is distributed under the term of the
<a href="http://opensource.org/licenses/mit-license.php">MIT license</a>.
@section changelog History
- Version 1.8 (2009-07-13):
- The backtracking method now has three criteria for choosing the step
length:
- ::LBFGS_LINESEARCH_BACKTRACKING_ARMIJO: sufficient decrease condition
(Armijo condition)
- ::LBFGS_LINESEARCH_BACKTRACKING_WOLFE: regular Wolfe condition
(sufficient decrease condition + curvature condition)
- ::LBFGS_LINESEARCH_BACKTRACKING_STRONG_WOLFE: strong Wolfe condition
This is based on the patch submitted by Takashi Imamichi.
- Version 1.7 (2009-02-28):
- Improved OWL-QN routines for stability.
- Removed the support of OWL-QN method in MoreThuente algorithm because