Back
NLPIP
Large-Scale Nonlinear Programming
Version 2.0 (2013)
Purpose
NLPIP is a Fortran code for solving large-scale constrained nonlinear optimization problems, i.e., problems with a large number of variables and sparsity patterns in the Jacobian matrix of the constraints. It is assumed that all problem functions are continuously differentiable.
Numerical Method
NLPIP applies a combined SQP-IPM strategy. Depending on the preferences of the user, either a standard SQP method is used where the quadratic programming subproblem is solved by an interior point method, or a nonlinear interior point method is executed. Moreover, any combination in between is possible. BFGS updates use the limited memory method subject to different merit functions. Alternatively, second derivatives can be provided if available. In any case, the primal-dual system of linear equations possesses the same structure and must be solved by a user-provided routine depending on the sparsity patterns of the Jacobian matrix of the constraints.
Program Organization
NLPIP is written in double precision FORTRAN and organized in form of a subroutine. Nonlinear problem functions and analytical gradients must be provided by the user within the calling program by reverse communication. For solving the internal reduced KKT system of linear equations, the so-called primal-dual system, a special subroutine with name LINSLV must be implemented by the user. Frames for dense linear algebra (Lapack) and a sparse solver (PARDISO) are included. LINSLV is called from NLPIP with different flags for factorization, matrix times vector products, or retrieving solution vectors with different right-hand sides.
Special Features
- upper and lower bounds on the variables handled separately
- interfaces (LINSLV) for PARDISO and LAPACK included
- reverse communication
- bounds and linear constraints remain satisfied
- robust and efficient implementation
- complex active-set strategy analogously to the one implemented in NLPQLB
- Fortran source code
- full documentation and example codes
- solves 304 out of 306 test problems of the Hock-Schittkowski collection efficiently
- solves large elliptic optimal-control problems with more than 5 million variables and 2.5 million constraints
Applications
The development of NLPIP was supported by EADS and NLPIP became part of the in-house FE-based structural optimization system LAGRANGE.
Reference
- B. Sachsenberg, NLPIP: A Fortran implementation of an SQP interior point method for solving large-scale nonlinear optimization problems - User's guide, Version 2.0, Report, Department of Computer Science, University of Bayreuth (2013)
- B. Sachsenberg, K. Schittkowski (2015): A combined SQP–IPM algorithm for solving large-scale nonlinear optimization problems, Optimization Letters, Vol. 9, 1271-1282