OPTPP::OptNIPSLike Class Reference

#include <OptNIPSLike.h>

Inheritance diagram for OPTPP::OptNIPSLike:

OPTPP::OptConstrNewtonLike OPTPP::OptimizeClass OPTPP::OptDHNIPS OPTPP::OptFDNIPS OPTPP::OptNIPS OPTPP::OptQNIPS List of all members.

Public Member Functions

 OptNIPSLike ()
 OptNIPSLike (int n)
 OptNIPSLike (int n, UPDATEFCN u)
 OptNIPSLike (int n, TOLS t)
virtual ~OptNIPSLike ()
virtual void setMeritFcn (MeritFcn option)
 Specify the merit function to used in step acceptance test.
virtual NEWMAT::Matrix setupMatrix (const NEWMAT::ColumnVector &xc)
virtual real merit (int flag, const NEWMAT::ColumnVector &xc, const NEWMAT::ColumnVector &yc, NEWMAT::ColumnVector &zc, NEWMAT::ColumnVector &sc)
virtual NEWMAT::ColumnVector setupRHS (const NEWMAT::ColumnVector &xc, real mu)
virtual NEWMAT::ColumnVector setupRHS (const NEWMAT::ColumnVector &xplus, const NEWMAT::ColumnVector &yplus, const NEWMAT::ColumnVector &zplus, const NEWMAT::ColumnVector &splus, real mu)
virtual NEWMAT::SymmetricMatrix updateH (NEWMAT::SymmetricMatrix &H, int k)=0
 Compute the Hessian of the Lagrangrian or its approximation at iteration k.
virtual int checkConvg ()
 Check to see if algorithm satisfies the convergence criterion.
virtual int checkDeriv ()
 Compare the analytic gradient with the finite-difference approximation.
virtual int computeStep (NEWMAT::ColumnVector step)
 If an acceptable step not found, returns an error code = -1.
virtual void initOpt ()
 Initialize algorithmic parameters.
virtual void initHessian ()
 Initialize Hessian of Lagrangian.
virtual void optimize ()
 Call the interior-point method.
virtual void printStatus (char *s)
 Print status of opt. method.
virtual void readOptInput ()
 Read user-specified input options.
real getMu () const
void setMu (real newMu)
void setCenteringParameter (real newSigma)
void setStepLengthToBdry (real newTau)
virtual void reset ()
void recoverFeasibility (NEWMAT::ColumnVector xinit, CompoundConstraint *constraints, double ftol)
NEWMAT::ColumnVector computeSearch2 (NEWMAT::Matrix &Jacobian, const NEWMAT::ColumnVector &rhs)
NEWMAT::ColumnVector initMultipliers (const NEWMAT::ColumnVector &df, NEWMAT::Matrix &dcon)
void updateMu (int k)
real merit2 (int flag, const NEWMAT::ColumnVector &xc, const NEWMAT::ColumnVector &yc, NEWMAT::ColumnVector &zc, NEWMAT::ColumnVector &sc)
real merit3 (int flag, const NEWMAT::ColumnVector &xc, NEWMAT::ColumnVector &zc, NEWMAT::ColumnVector &sc)
void computeDirDeriv (NEWMAT::ColumnVector &sk, const NEWMAT::ColumnVector &xc, NEWMAT::ColumnVector &derivative)
double dampenStep (NEWMAT::ColumnVector &step)

Protected Member Functions

virtual NLP1nlprob () const =0
 pointer to NLP1

Protected Attributes

real beta_
 penalty parameter for merit function 3
real dirder_
 directional derivative of a merit function
real mu_
 pertubation parameter
real penalty_
 penalty parameter for merit function 2
real sigmin_
 centering parameter
real taumin_
 percentage of steplength to boundary
const real rho_
 constant set to .5
const real sw_
 constant

Detailed Description

OptNIPSLike is a derived class of OptConstrNewtonLike. OptNIPSLike provides common data and functionality for OptFDNIPS, OptQNIPS, and OptNIPS.

The OptNIPS algorithm is a C++ implementation of NIPSM, a nonlinear interior-point code developed under MATLAB by Amr El-Bakry at Rice University and NIPSF, a Fortran implementation of the same code written by Frederik Saaf. Additional features include the merit functions proposed by Miguel Argaez and Richard Tapia in "Global Convergence of a Primal-Dual Newton Interior-Point Method for Nonlinear Programming Using a Modified Augmented Lagrange Function" as well as Robert Vanderbei and David Shanno in "An Interior-Point Algorithm For Nonconvex Nonlinear Programming".

Author:
P.J. Williams, Sandia National Laboratories, pwillia@sandia.gov


Constructor & Destructor Documentation

OPTPP::OptNIPSLike::OptNIPSLike (  )  [inline]

Default Constructor

See also:
OptNIPSLike(int n)

OptNIPSLike(int n, UPDATEFCN u)

OptNIPSLike(int n, TOLS t)

OPTPP::OptNIPSLike::OptNIPSLike ( int  n  )  [inline]

Parameters:
n an integer argument.

OPTPP::OptNIPSLike::OptNIPSLike ( int  n,
UPDATEFCN  u 
) [inline]

Parameters:
n an integer argument.
u a function pointer.

OPTPP::OptNIPSLike::OptNIPSLike ( int  n,
TOLS  t 
) [inline]

Parameters:
n an integer argument.
t tolerance class reference.

virtual OPTPP::OptNIPSLike::~OptNIPSLike (  )  [inline, virtual]

Destructor


Member Function Documentation

int OPTPP::OptNIPSLike::checkConvg (  )  [virtual]

Check to see if algorithm satisfies the convergence criterion.

Reimplemented from OPTPP::OptConstrNewtonLike.

int OPTPP::OptNIPSLike::checkDeriv (  )  [virtual]

Compare the analytic gradient with the finite-difference approximation.

Reimplemented from OPTPP::OptConstrNewtonLike.

Reimplemented in OPTPP::OptFDNIPS, and OPTPP::OptQNIPS.

void OPTPP::OptNIPSLike::computeDirDeriv ( NEWMAT::ColumnVector &  sk,
const NEWMAT::ColumnVector &  xc,
NEWMAT::ColumnVector &  derivative 
)

Takes three arguments and void return.

Parameters:
sk a NEWMAT::ColumnVector with contains the search direction
xc a NEWMAT::ColumnVector of current point
derivative a NEWMAT::ColumnVector of derivative of cost function

NEWMAT::ColumnVector OPTPP::OptNIPSLike::computeSearch2 ( NEWMAT::Matrix &  Jacobian,
const NEWMAT::ColumnVector &  rhs 
)

virtual int OPTPP::OptNIPSLike::computeStep ( NEWMAT::ColumnVector  step  )  [virtual]

If an acceptable step not found, returns an error code = -1.

Reimplemented from OPTPP::OptConstrNewtonLike.

double OPTPP::OptNIPSLike::dampenStep ( NEWMAT::ColumnVector &  step  ) 

Takes one arguments and returns a real value.

Parameters:
step a NEWMAT::ColumnVector with contains the search direction

real OPTPP::OptNIPSLike::getMu (  )  const [inline]

Returns:
The value of mu_, the pertubation parameter

void OPTPP::OptNIPSLike::initHessian (  )  [virtual]

Initialize Hessian of Lagrangian.

Reimplemented from OPTPP::OptConstrNewtonLike.

Reimplemented in OPTPP::OptDHNIPS, and OPTPP::OptNIPS.

NEWMAT::ColumnVector OPTPP::OptNIPSLike::initMultipliers ( const NEWMAT::ColumnVector &  df,
NEWMAT::Matrix &  dcon 
)

Takes two arguments and returns a NEWMAT::ColumnVector.

Parameters:
df a NEWMAT::ColumnVector - gradient of obj. function
dcon a Matrix - gradient of constraints
Returns:
The initial value of the Lagrange multiplier z

void OPTPP::OptNIPSLike::initOpt (  )  [virtual]

Initialize algorithmic parameters.

Reimplemented from OPTPP::OptConstrNewtonLike.

virtual real OPTPP::OptNIPSLike::merit ( int  flag,
const NEWMAT::ColumnVector &  xc,
const NEWMAT::ColumnVector &  yc,
NEWMAT::ColumnVector &  zc,
NEWMAT::ColumnVector &  sc 
) [virtual]

real OPTPP::OptNIPSLike::merit2 ( int  flag,
const NEWMAT::ColumnVector &  xc,
const NEWMAT::ColumnVector &  yc,
NEWMAT::ColumnVector &  zc,
NEWMAT::ColumnVector &  sc 
)

Takes five arguments and returns a real value.

Parameters:
flag an integer argument
xc a NEWMAT::ColumnVector
yc a NEWMAT::ColumnVector of Lagrange multipliers
zc a NEWMAT::ColumnVector of Lagrange multipliers
sc a NEWMAT::ColumnVector of slack variables
See also:
merit(flag,xc,yc,zc,sc)
Returns:
The value of the Argaez-Tapia merit function.

real OPTPP::OptNIPSLike::merit3 ( int  flag,
const NEWMAT::ColumnVector &  xc,
NEWMAT::ColumnVector &  zc,
NEWMAT::ColumnVector &  sc 
)

Takes four arguments and returns a real value.

Parameters:
flag an integer argument
xc a NEWMAT::ColumnVector
zc a NEWMAT::ColumnVector of Lagrange multipliers
sc a NEWMAT::ColumnVector of slack variables
See also:
merit(flag,xc,yc,zc,sc)
Returns:
The value of the Vanderbei et al merit function.

virtual NLP1* OPTPP::OptNIPSLike::nlprob (  )  const [protected, pure virtual]

pointer to NLP1

Implements OPTPP::OptConstrNewtonLike.

Implemented in OPTPP::OptDHNIPS, OPTPP::OptFDNIPS, OPTPP::OptNIPS, and OPTPP::OptQNIPS.

void OPTPP::OptNIPSLike::optimize (  )  [virtual]

Call the interior-point method.

Reimplemented from OPTPP::OptConstrNewtonLike.

void OPTPP::OptNIPSLike::printStatus ( char *  s  )  [virtual]

Print status of opt. method.

Reimplemented from OPTPP::OptConstrNewtonLike.

Reimplemented in OPTPP::OptDHNIPS, and OPTPP::OptNIPS.

void OPTPP::OptNIPSLike::readOptInput (  )  [virtual]

Read user-specified input options.

Reimplemented from OPTPP::OptConstrNewtonLike.

void OPTPP::OptNIPSLike::recoverFeasibility ( NEWMAT::ColumnVector  xinit,
CompoundConstraint constraints,
double  ftol 
)

void OPTPP::OptNIPSLike::reset (  )  [virtual]

Takes zero arguments with void return. Resets parameter values.

Reimplemented from OPTPP::OptConstrNewtonLike.

Reimplemented in OPTPP::OptDHNIPS.

void OPTPP::OptNIPSLike::setCenteringParameter ( real  newSigma  )  [inline]

Sets the value of the centering parameter.

void OPTPP::OptNIPSLike::setMeritFcn ( MeritFcn  option  )  [virtual]

Specify the merit function to used in step acceptance test.

Reimplemented from OPTPP::OptConstrNewtonLike.

void OPTPP::OptNIPSLike::setMu ( real  newMu  )  [inline]

Set the value of the perturbation parameter

void OPTPP::OptNIPSLike::setStepLengthToBdry ( real  newTau  )  [inline]

Sets the percentage of step taken towards the boundary

virtual NEWMAT::Matrix OPTPP::OptNIPSLike::setupMatrix ( const NEWMAT::ColumnVector &  xc  )  [virtual]

virtual NEWMAT::ColumnVector OPTPP::OptNIPSLike::setupRHS ( const NEWMAT::ColumnVector &  xplus,
const NEWMAT::ColumnVector &  yplus,
const NEWMAT::ColumnVector &  zplus,
const NEWMAT::ColumnVector &  splus,
real  mu 
) [virtual]

virtual NEWMAT::ColumnVector OPTPP::OptNIPSLike::setupRHS ( const NEWMAT::ColumnVector &  xc,
real  mu 
) [virtual]

virtual NEWMAT::SymmetricMatrix OPTPP::OptNIPSLike::updateH ( NEWMAT::SymmetricMatrix &  H,
int  k 
) [pure virtual]

Compute the Hessian of the Lagrangrian or its approximation at iteration k.

Implements OPTPP::OptConstrNewtonLike.

Implemented in OPTPP::OptDHNIPS, OPTPP::OptFDNIPS, OPTPP::OptNIPS, and OPTPP::OptQNIPS.

void OPTPP::OptNIPSLike::updateMu ( int  k  ) 

Takes one arguments and updates the perturbation parameter

Parameters:
k an integer - iteration counter


Member Data Documentation

real OPTPP::OptNIPSLike::beta_ [protected]

penalty parameter for merit function 3

real OPTPP::OptNIPSLike::dirder_ [protected]

directional derivative of a merit function

real OPTPP::OptNIPSLike::mu_ [protected]

pertubation parameter

real OPTPP::OptNIPSLike::penalty_ [protected]

penalty parameter for merit function 2

const real OPTPP::OptNIPSLike::rho_ [protected]

constant set to .5

real OPTPP::OptNIPSLike::sigmin_ [protected]

centering parameter

const real OPTPP::OptNIPSLike::sw_ [protected]

constant

real OPTPP::OptNIPSLike::taumin_ [protected]

percentage of steplength to boundary


The documentation for this class was generated from the following files:
Bug Reports    OPT++ Developers    Copyright Information    GNU Lesser General Public License
Documentation, generated by , last revised August 30, 2006.