NLPQLPOptimizer Class Reference

Wrapper class for the NLPQLP optimization library, Version 2.0. More...

Inheritance diagram for NLPQLPOptimizer:

Optimizer Minimizer Iterator List of all members.

Public Member Functions

 NLPQLPOptimizer (Model &model)
 standard constructor
 NLPQLPOptimizer (NoDBBaseConstructor, Model &model)
 alternate constructor
 ~NLPQLPOptimizer ()
 destructor
void find_optimum ()
 Redefines the run virtual function for the optimizer branch.

Protected Member Functions

void derived_pre_run ()
 performs run-time set up

Private Member Functions

void initialize ()
 Shared constructor code.
void allocate_workspace ()
 Allocates workspace for the optimizer.
void deallocate_workspace ()
 Releases workspace memory.
void allocate_constraints ()
 Allocates constraint mappings.

Private Attributes

int L
 the serial version by setting L=1.
int numEqConstraints
 numEqConstraints : Number of equality constraints.
int MMAX
 MMAX must be at least one and greater or equal to M.
int N
 N : Number of optimization variables.
int NMAX
 than N.
int MNN2
 MNN2 : Must be equal to M+N+N+2.
double * X
 function values should be computed simultaneously.
double * F
 values to be computed from L iterates stored in X.
double * G
 function values to be computed from L iterates stored in X.
double * DF
 of F to compute DF.
double * DG
 has to be equal to MMAX.
double * U
 inequality constraints should be nonnegative.
double * C
 to NMAX.
double * D
 array D.
double ACC
 than the accuracy by which gradients are computed.
double ACCQP
 by NLPQLP and subsequently multiplied by 1.0D+4.
double STPMIN
 by STPMIN**(1/L-1). If STPMIN<=0, then STPMIN=ACC is used.
int MAXFUN
 than 50.
int MAXIT
 gradients (e.g. 100).
int MAX_NM
 MAX_NM=0, monotone line search is performed.
double TOL_NM
 non-negative (e.g. 0.1).
int IPRINT
 values are displayed during the line search.
int MODE
 function in C and D in form of an LDL decomposition.
int IOUT
 write-statements start with 'WRITE(IOUT,... '.
int IFAIL
 constraint.
double * WA
 WA(LWA) : WA is a real working array of length LWA.
int LWA
 LWA : LWA value extracted from NLPQLP20.f.
int * KWA
 KWA(LKWA) : The user has to provide working space for an integer array.
int LKWA
 LKWA : LKWA should be at least N+10.
int * ACTIVE
 ACTIVE(J)=.TRUE., J=1,...,M.
int LACTIVE
 least 2*M+10.
int LQL
 contains only an upper triangular factor.
int numNlpqlConstr
 total number of constraints seen by NLPQL
SizetList nonlinIneqConMappingIndices
 constraints used in computing the corresponding NLPQL constraints.
RealList nonlinIneqConMappingMultipliers
 constraints to the corresponding NLPQL constraints.
RealList nonlinIneqConMappingOffsets
 constraints to the corresponding NLPQL constraints.
SizetList linIneqConMappingIndices
 constraints used in computing the corresponding NLPQL constraints.
RealList linIneqConMappingMultipliers
 constraints to the corresponding NLPQL constraints.
RealList linIneqConMappingOffsets
 constraints to the corresponding NLPQL constraints.

Detailed Description

Wrapper class for the NLPQLP optimization library, Version 2.0.

********************************************************************

AN IMPLEMENTATION OF A SEQUENTIAL QUADRATIC PROGRAMMING METHOD FOR SOLVING NONLINEAR OPTIMIZATION PROBLEMS BY DISTRIBUTED COMPUTING AND NON-MONOTONE LINE SEARCH

This subroutine solves the general nonlinear programming problem

minimize F(X) subject to G(J,X) = 0 , J=1,...,ME G(J,X) >= 0 , J=ME+1,...,M XL <= X <= XU

and is an extension of the code NLPQLD. NLPQLP is specifically tuned to run under distributed systems. A new input parameter L is introduced for the number of parallel computers, that is the number of function calls to be executed simultaneously. In case of L=1, NLPQLP is identical to NLPQLD. Otherwise the line search is modified to allow L parallel function calls in advance. Moreover the user has the opportunity to used distributed function calls for evaluating gradients.

The algorithm is a modification of the method of Wilson, Han, and Powell. In each iteration step, a linearly constrained quadratic programming problem is formulated by approximating the Lagrangian function quadratically and by linearizing the constraints. Subsequently, a one-dimensional line search is performed with respect to an augmented Lagrangian merit function to obtain a new iterate. Also the modified line search algorithm guarantees convergence under the same assumptions as before.

For the new version, a non-monotone line search is implemented which allows to increase the merit function in case of instabilities, for example caused by round-off errors, errors in gradient approximations, etc.

The subroutine contains the option to predetermine initial guesses for the multipliers or the Hessian of the Lagrangian function and is called by reverse communication.


The documentation for this class was generated from the following files:
Generated on Wed Nov 5 19:54:07 2008 for DAKOTA by  doxygen 1.5.1