Object-oriented Scientific Computing Library: Version 0.910
Public Member Functions | Data Fields | Protected Types | Protected Member Functions | Protected Attributes
ool_mmin_spg< func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t > Class Template Reference

Constrained minimization by the spectral projected gradient method (OOL) More...

#include <ool_mmin_spg.h>

Inheritance diagram for ool_mmin_spg< func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t >:
ool_constr_mmin< func_t, dfunc_t, ool_hfunct< int >, vec_t, alloc_vec_t, alloc_t > multi_min< func_t, dfunc_t, vec_t >

Detailed Description

template<class func_t = multi_funct<>, class dfunc_t = grad_funct<>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
class ool_mmin_spg< func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t >

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

Idea for Future:
There is some memory allocation which isn't deallocated until the destructor, and should be handled a bit more elegantly.

Definition 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 $ 10^{-99} $)
double tol
 Tolerance on infinite norm (default $ 10^{-4} $)
double alphamin
 Lower bound to spectral step size (default $ 10^{-30} $)
double alphamax
 Upper bound to spectral step size (default $ 10^{30} $)
double gamma
 Sufficient decrease parameter (default $ 10^{-4} $)
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.

Field Documentation

template<class func_t = multi_funct<>, class dfunc_t = grad_funct<>, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
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.


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).

Get Object-oriented Scientific Computing
Lib at SourceForge.net. Fast, secure and Free Open Source software
downloads.