ool_mmin_pgrad Class Template Reference

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

#include <ool_mmin_pgrad.h>

Inheritance diagram for ool_mmin_pgrad:

ool_constr_mmin multi_min

Detailed Description

template<class param_t, class func_t, class dfunc_t, class vec_t = ovector_base, class alloc_vec_t = ovector, class alloc_t = ovector_alloc>
class ool_mmin_pgrad< param_t, func_t, dfunc_t, vec_t, alloc_vec_t, alloc_t >

Constrained minimization by the projected gradient method (OOL).

Todo:
Complete the mmin() interface with automatic gradient
Todo:
Replace the explicit norm computation below with the more accurate dnrm2 from linalg

Definition at line 71 of file ool_mmin_pgrad.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, param_t &par)
 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_pgrad").

Data Fields

double fmin
 Minimum function value (default $ 10^{-99} $).
double tol
 Tolerance on infinite norm.
double alpha
 Constant for the sufficient decrease condition (default $ 10^{-4} $).
double sigma1
 Lower bound to the step length reduction.
double sigma2
 Upper bound to the step length reduction.

Protected Types

typedef ool_hfunct< int > hfunc_t
 A convenient typedef for the unused Hessian product type.

Protected Member Functions

int proj (vec_t &xt)
 Project into feasible region.
int line_search ()
 Line search.

Protected Attributes

alloc_vec_t xx
 Temporary vector.

Field Documentation

double fmin

Minimum function value (default $ 10^{-99} $).

If the function value is below this value, then the algorithm assumes that the function is not bounded and exits.

Definition at line 168 of file ool_mmin_pgrad.h.


The documentation for this class was generated from the following file:

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page