![]() |
Object-oriented Scientific Computing Library: Version 0.910
|
Constrained minimization by the spectral projected gradient method (OOL) More...
#include <ool_mmin_spg.h>
This class applies a non-monotone line search strategy to the classical projected gradient method.
As in Birgin00, this class applies a nonmonotone Armijo sufficient decrease condition for accepting trial points as an improvement over the classical spectral projected gradient method. This method may be competitive with large problems because it has low memory requirements.
Default template arguments
func_t
- multi_funct<>dfunc_t
- grad_funct<>vec_t
- ovector_basealloc_vec_t
- ovectoralloc_t
- ovector_allocDefinition at line 84 of file ool_mmin_spg.h.
Public Member Functions | |
virtual int | allocate (const size_t n) |
Allocate memory. | |
virtual int | free () |
Free previously allocated memory. | |
virtual int | set (func_t &fn, dfunc_t &dfn, vec_t &init) |
Set the function, the initial guess, and the parameters. | |
virtual int | restart () |
Restart the minimizer. | |
virtual int | iterate () |
Perform an iteration. | |
virtual int | is_optimal () |
See if we're finished. | |
const char * | type () |
Return string denoting type ("ool_mmin_spg") | |
Data Fields | |
double | fmin |
Minimum function value (default ![]() | |
double | tol |
Tolerance on infinite norm (default ![]() | |
double | alphamin |
Lower bound to spectral step size (default ![]() | |
double | alphamax |
Upper bound to spectral step size (default ![]() | |
double | gamma |
Sufficient decrease parameter (default ![]() | |
double | sigma1 |
Lower bound to the step length reduction (default 0.1) | |
double | sigma2 |
Upper bound to the step length reduction (default 0.9) | |
size_t | M |
Monotonicity parameter (M=1 forces monotonicity) (default 10) | |
Protected Types | |
typedef ool_hfunct< int > | hfunc_t |
A convenient typedef for the unused Hessian product type. | |
Protected Member Functions | |
int | line_search () |
Line search. | |
int | proj (vec_t &xt) |
Project into feasible region. | |
Protected Attributes | |
double | alpha |
Armijo parameter. | |
alloc_vec_t | xx |
Temporary vector. | |
alloc_vec_t | d |
Temporary vector. | |
alloc_vec_t | s |
Temporary vector. | |
alloc_vec_t | y |
Temporary vector. | |
alloc_vec_t | fvec |
Temporary vector. | |
size_t | m |
Non-monotone parameter. | |
int | tail |
Desc. |
double ool_mmin_spg< func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t >::fmin |
If the function value is below this value, then the algorithm assumes that the function is not bounded and exits.
Definition at line 237 of file ool_mmin_spg.h.
Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).