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:
parent
1cae453cca
commit
1b33e075df
@ -153,9 +153,9 @@ enum {
|
|||||||
/** MoreThuente method proposd by More and Thuente. */
|
/** MoreThuente method proposd by More and Thuente. */
|
||||||
LBFGS_LINESEARCH_MORETHUENTE = 0,
|
LBFGS_LINESEARCH_MORETHUENTE = 0,
|
||||||
/** Backtracking method with strong Wolfe condition. */
|
/** Backtracking method with strong Wolfe condition. */
|
||||||
LBFGS_LINESEARCH_BACKTRACKING,
|
LBFGS_LINESEARCH_BACKTRACKING_STRONG,
|
||||||
/** Backtracking method with regular Wolfe condition. */
|
/** 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):
|
- Version 1.6 (2008-11-02):
|
||||||
- Improved line-search algorithm with strong Wolfe condition, which was
|
- Improved line-search algorithm with strong Wolfe condition, which was
|
||||||
contributed by Takashi Imamichi. This routine is now default for
|
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
|
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
|
- Configurable stop index for L1-norm computation. A member variable
|
||||||
::lbfgs_parameter_t::orthantwise_end was added to specify the index
|
::lbfgs_parameter_t::orthantwise_end was added to specify the index
|
||||||
number at which the library stops computing the L1 norm of the
|
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
|
- Configurable line search algorithms. A member variable
|
||||||
::lbfgs_parameter_t::linesearch was added to choose either MoreThuente
|
::lbfgs_parameter_t::linesearch was added to choose either MoreThuente
|
||||||
method (::LBFGS_LINESEARCH_MORETHUENTE) or backtracking algorithm
|
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
|
- Fixed a bug: the previous version did not compute psuedo-gradients
|
||||||
properly in the line search routines for OWL-QN. This bug might quit
|
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
|
an iteration process too early when the OWL-QN routine was activated
|
||||||
|
@ -362,9 +362,7 @@ int lbfgs(
|
|||||||
linesearch = line_search_morethuente;
|
linesearch = line_search_morethuente;
|
||||||
break;
|
break;
|
||||||
case LBFGS_LINESEARCH_BACKTRACKING:
|
case LBFGS_LINESEARCH_BACKTRACKING:
|
||||||
linesearch = line_search_backtracking;
|
case LBFGS_LINESEARCH_BACKTRACKING_STRONG:
|
||||||
break;
|
|
||||||
case LBFGS_LINESEARCH_BACKTRACKING_LOOSE:
|
|
||||||
linesearch = line_search_backtracking;
|
linesearch = line_search_backtracking;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@ -756,7 +754,7 @@ static int line_search_backtracking(
|
|||||||
if (*f <= finit + *stp * dgtest) {
|
if (*f <= finit + *stp * dgtest) {
|
||||||
/* The sufficient decrease condition. */
|
/* The sufficient decrease condition. */
|
||||||
|
|
||||||
if (param->linesearch == LBFGS_LINESEARCH_BACKTRACKING) {
|
if (param->linesearch == LBFGS_LINESEARCH_BACKTRACKING_STRONG) {
|
||||||
/* Check the strong Wolfe condition. */
|
/* Check the strong Wolfe condition. */
|
||||||
vecdot(&dg, g, s, n);
|
vecdot(&dg, g, s, n);
|
||||||
if (dg > -wolfe * dginit) {
|
if (dg > -wolfe * dginit) {
|
||||||
|
@ -65,7 +65,7 @@ int main(int argc, char *argv)
|
|||||||
/* Initialize the parameters for the L-BFGS optimization. */
|
/* Initialize the parameters for the L-BFGS optimization. */
|
||||||
lbfgs_parameter_init(¶m);
|
lbfgs_parameter_init(¶m);
|
||||||
param.orthantwise_c = 1;
|
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
|
Start the L-BFGS optimization; this will invoke the callback functions
|
||||||
|
Loading…
Reference in New Issue
Block a user