Use LBFGS_LINESEARCH_BACKTRACKING_STRONG instead of LBFGS_LINESEARCH_BACKTRACKING.

git-svn-id: file:///home/svnrepos/software/liblbfgs/trunk@45 ecf4c44f-38d1-4fa4-9757-a0b4dd0349fc
This commit is contained in:
naoaki 2009-02-16 13:37:48 +00:00
parent 1cae453cca
commit 1b33e075df
3 changed files with 8 additions and 10 deletions

View File

@ -153,9 +153,9 @@ enum {
/** MoreThuente method proposd by More and Thuente. */
LBFGS_LINESEARCH_MORETHUENTE = 0,
/** Backtracking method with strong Wolfe condition. */
LBFGS_LINESEARCH_BACKTRACKING,
LBFGS_LINESEARCH_BACKTRACKING_STRONG,
/** Backtracking method with regular Wolfe condition. */
LBFGS_LINESEARCH_BACKTRACKING_LOOSE,
LBFGS_LINESEARCH_BACKTRACKING,
};
/**
@ -538,9 +538,9 @@ libLBFGS is distributed under the term of the
- Version 1.6 (2008-11-02):
- Improved line-search algorithm with strong Wolfe condition, which was
contributed by Takashi Imamichi. This routine is now default for
::LBFGS_LINESEARCH_BACKTRACKING. The previous line search algorithm
::LBFGS_LINESEARCH_BACKTRACKING_STRONG. The previous line search algorithm
with regular Wolfe condition is still available as
::LBFGS_LINESEARCH_BACKTRACKING_LOOSE.
::LBFGS_LINESEARCH_BACKTRACKING.
- Configurable stop index for L1-norm computation. A member variable
::lbfgs_parameter_t::orthantwise_end was added to specify the index
number at which the library stops computing the L1 norm of the
@ -563,7 +563,7 @@ libLBFGS is distributed under the term of the
- Configurable line search algorithms. A member variable
::lbfgs_parameter_t::linesearch was added to choose either MoreThuente
method (::LBFGS_LINESEARCH_MORETHUENTE) or backtracking algorithm
(::LBFGS_LINESEARCH_BACKTRACKING).
(::LBFGS_LINESEARCH_BACKTRACKING_STRONG).
- Fixed a bug: the previous version did not compute psuedo-gradients
properly in the line search routines for OWL-QN. This bug might quit
an iteration process too early when the OWL-QN routine was activated

View File

@ -362,9 +362,7 @@ int lbfgs(
linesearch = line_search_morethuente;
break;
case LBFGS_LINESEARCH_BACKTRACKING:
linesearch = line_search_backtracking;
break;
case LBFGS_LINESEARCH_BACKTRACKING_LOOSE:
case LBFGS_LINESEARCH_BACKTRACKING_STRONG:
linesearch = line_search_backtracking;
break;
default:
@ -756,7 +754,7 @@ static int line_search_backtracking(
if (*f <= finit + *stp * dgtest) {
/* The sufficient decrease condition. */
if (param->linesearch == LBFGS_LINESEARCH_BACKTRACKING) {
if (param->linesearch == LBFGS_LINESEARCH_BACKTRACKING_STRONG) {
/* Check the strong Wolfe condition. */
vecdot(&dg, g, s, n);
if (dg > -wolfe * dginit) {

View File

@ -65,7 +65,7 @@ int main(int argc, char *argv)
/* Initialize the parameters for the L-BFGS optimization. */
lbfgs_parameter_init(&param);
param.orthantwise_c = 1;
/* param.linesearch = LBFGS_LINESEARCH_BACKTRACKING; */
/* param.linesearch = LBFGS_LINESEARCH_BACKTRACKING_STRONG; */
/*
Start the L-BFGS optimization; this will invoke the callback functions