OptNIPSLike is a derived class of OptConstrNewtonLike. More...
Public Member Functions | |
virtual int | checkConvg () |
Check to see if algorithm satisfies the convergence criterion. | |
virtual int | checkDeriv () |
Compare the analytic gradient with the finite-difference approximation. | |
void | computeDirDeriv (NEWMAT::ColumnVector &sk, const NEWMAT::ColumnVector &xc, NEWMAT::ColumnVector &derivative) |
Takes three arguments and void return. | |
NEWMAT::ColumnVector | computeSearch2 (NEWMAT::Matrix &Jacobian, const NEWMAT::ColumnVector &rhs) |
virtual int | computeStep (NEWMAT::ColumnVector step) |
Compute the steplength along the search direction. | |
double | dampenStep (NEWMAT::ColumnVector &step) |
Takes one arguments and returns a real value. | |
real | getMu () const |
virtual void | initHessian () |
Initialize Hessian of Lagrangian. | |
NEWMAT::ColumnVector | initMultipliers (const NEWMAT::ColumnVector &df, NEWMAT::Matrix &dcon) |
Takes two arguments and returns a NEWMAT::ColumnVector. | |
virtual void | initOpt () |
Initialize algorithmic parameters. | |
virtual real | merit (int flag, const NEWMAT::ColumnVector &xc, const NEWMAT::ColumnVector &yc, NEWMAT::ColumnVector &zc, NEWMAT::ColumnVector &sc) |
real | 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. | |
real | merit3 (int flag, const NEWMAT::ColumnVector &xc, NEWMAT::ColumnVector &zc, NEWMAT::ColumnVector &sc) |
Takes four arguments and returns a real value. | |
virtual void | optimize () |
Call the interior-point method. | |
OptNIPSLike (int n, TOLS t) | |
OptNIPSLike (int n, UPDATEFCN u) | |
OptNIPSLike (int n) | |
OptNIPSLike () | |
Default Constructor. | |
virtual void | printStatus (char *s) |
Print status of opt. method. | |
virtual void | readOptInput () |
Read user-specified input options. | |
void | recoverFeasibility (NEWMAT::ColumnVector xinit, CompoundConstraint *constraints, double ftol) |
virtual void | reset () |
Takes zero arguments with void return. | |
void | setCenteringParameter (real newSigma) |
Sets the value of the centering parameter. | |
virtual void | setMeritFcn (MeritFcn option) |
Specify the merit function to used in step acceptance test. | |
void | setMu (real newMu) |
Set the value of the perturbation parameter. | |
void | setStepLengthToBdry (real newTau) |
Sets the percentage of step taken towards the boundary. | |
virtual NEWMAT::Matrix | setupMatrix (const NEWMAT::ColumnVector &xc) |
virtual NEWMAT::ColumnVector | setupRHS (const NEWMAT::ColumnVector &xplus, const NEWMAT::ColumnVector &yplus, const NEWMAT::ColumnVector &zplus, const NEWMAT::ColumnVector &splus, real mu) |
virtual NEWMAT::ColumnVector | setupRHS (const NEWMAT::ColumnVector &xc, real mu) |
virtual NEWMAT::SymmetricMatrix | updateH (NEWMAT::SymmetricMatrix &H, int k)=0 |
Compute the Hessian of the Lagrangrian or its approximation at iteration k. | |
void | updateMu (int k) |
Takes one arguments and updates the perturbation parameter. | |
virtual | ~OptNIPSLike () |
Destructor. | |
Protected Member Functions | |
virtual NLP1 * | nlprob () 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 | |
const real | rho_ |
constant set to .5 | |
real | sigmin_ |
centering parameter | |
const real | sw_ |
constant | |
real | taumin_ |
percentage of steplength to boundary |
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".
Definition at line 37 of file OptNIPSLike.h.
OPTPP::OptNIPSLike::OptNIPSLike | ( | ) | [inline] |
Default Constructor.
Definition at line 56 of file OptNIPSLike.h.
References OPTPP::OptimizeClass::method.
OPTPP::OptNIPSLike::OptNIPSLike | ( | int | n | ) | [inline] |
n | an integer argument. |
Definition at line 63 of file OptNIPSLike.h.
References OPTPP::OptimizeClass::method.
OPTPP::OptNIPSLike::OptNIPSLike | ( | int | n, | |
UPDATEFCN | u | |||
) | [inline] |
n | an integer argument. | |
u | a function pointer. |
Definition at line 71 of file OptNIPSLike.h.
References OPTPP::OptimizeClass::method.
OPTPP::OptNIPSLike::OptNIPSLike | ( | int | n, | |
TOLS | t | |||
) | [inline] |
n | an integer argument. | |
t | tolerance class reference. |
Definition at line 79 of file OptNIPSLike.h.
References OPTPP::OptimizeClass::method.
virtual OPTPP::OptNIPSLike::~OptNIPSLike | ( | ) | [inline, virtual] |
Destructor.
Definition at line 87 of file OptNIPSLike.h.
virtual int OPTPP::OptNIPSLike::checkConvg | ( | ) | [virtual] |
Check to see if algorithm satisfies the convergence criterion.
Reimplemented from OPTPP::OptConstrNewtonLike.
virtual 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.
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 |
virtual int OPTPP::OptNIPSLike::computeStep | ( | NEWMAT::ColumnVector | sk | ) | [virtual] |
Compute the steplength along the search direction.
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.
step | a NEWMAT::ColumnVector with contains the search direction |
real OPTPP::OptNIPSLike::getMu | ( | ) | const [inline] |
Definition at line 122 of file OptNIPSLike.h.
References mu_.
virtual 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.
df | a NEWMAT::ColumnVector - gradient of obj. function | |
dcon | a Matrix - gradient of constraints |
virtual void OPTPP::OptNIPSLike::initOpt | ( | ) | [virtual] |
Initialize algorithmic parameters.
Reimplemented from OPTPP::OptConstrNewtonLike.
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.
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 |
real OPTPP::OptNIPSLike::merit3 | ( | int | flag, | |
const NEWMAT::ColumnVector & | xc, | |||
NEWMAT::ColumnVector & | zc, | |||
NEWMAT::ColumnVector & | sc | |||
) |
Takes four arguments and returns a real value.
flag | an integer argument | |
xc | a NEWMAT::ColumnVector | |
zc | a NEWMAT::ColumnVector of Lagrange multipliers | |
sc | a NEWMAT::ColumnVector of slack variables |
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.
virtual void OPTPP::OptNIPSLike::optimize | ( | ) | [virtual] |
Call the interior-point method.
Reimplemented from OPTPP::OptConstrNewtonLike.
virtual void OPTPP::OptNIPSLike::printStatus | ( | char * | s | ) | [virtual] |
Print status of opt. method.
Reimplemented from OPTPP::OptConstrNewtonLike.
Reimplemented in OPTPP::OptDHNIPS, and OPTPP::OptNIPS.
virtual void OPTPP::OptNIPSLike::readOptInput | ( | ) | [virtual] |
Read user-specified input options.
Reimplemented from OPTPP::OptConstrNewtonLike.
virtual 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.
Definition at line 131 of file OptNIPSLike.h.
References sigmin_.
virtual 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.
Definition at line 126 of file OptNIPSLike.h.
References mu_.
void OPTPP::OptNIPSLike::setStepLengthToBdry | ( | real | newTau | ) | [inline] |
Sets the percentage of step taken towards the boundary.
Definition at line 136 of file OptNIPSLike.h.
References taumin_.
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.
k | an integer - iteration counter |
real OPTPP::OptNIPSLike::beta_ [protected] |
penalty parameter for merit function 3
Definition at line 40 of file OptNIPSLike.h.
real OPTPP::OptNIPSLike::dirder_ [protected] |
directional derivative of a merit function
Definition at line 41 of file OptNIPSLike.h.
real OPTPP::OptNIPSLike::mu_ [protected] |
pertubation parameter
Definition at line 42 of file OptNIPSLike.h.
real OPTPP::OptNIPSLike::penalty_ [protected] |
penalty parameter for merit function 2
Definition at line 43 of file OptNIPSLike.h.
const real OPTPP::OptNIPSLike::rho_ [protected] |
constant set to .5
Definition at line 46 of file OptNIPSLike.h.
real OPTPP::OptNIPSLike::sigmin_ [protected] |
centering parameter
Definition at line 44 of file OptNIPSLike.h.
Referenced by setCenteringParameter().
const real OPTPP::OptNIPSLike::sw_ [protected] |
constant
Definition at line 47 of file OptNIPSLike.h.
real OPTPP::OptNIPSLike::taumin_ [protected] |
percentage of steplength to boundary
Definition at line 45 of file OptNIPSLike.h.
Referenced by setStepLengthToBdry().