Nonlinear Programming with Non-Monotone and Distributed Line Search

Version 4.2 (2014)


NLPQLP is a Fortran code for solving constrained nonlinear optimization problems. It is assumed that all problem functions are continuously differentiable.

Numerical Method

NLPQLP is a special implementation of a sequential quadratic programming (SQP) method. Proceeding from a quadratic approximation of the Lagrangian function and a linearization of constraints, a quadratic programming subproblem is formulated and solved by QL. Depending on the number of nodes of the distributed system, objective and constraint functions can be evaluated simultaneously at predetermined test points along the search direction. The parallel line search is performed with respect to an augmented Lagrangian merit function. Moreover, a non-monotone line search is performed in error situations where the line search cannot be stopped within a given number of iterations. All theoretical convergence properties of the SQP algorithm remain satisfied. The Hessian approximation is updated by the modified BFGS-formula. The new version is extremely stable. Various restarts options are implemented to overcome error situations, which usually lead to termination. It is possible to solve 90 % of our 306 standard test examples even if the partial derivatives possess only one correct digit due to random noise.

Program Organization

NLPQLP 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. In case of numerical gradient evaluation, even higher order difference formulae can be applied, if the number of distributed systems is sufficiently large. In the ideal case, each iteration of NLPQLP requires one simultaneous function evaluation for the line search and another one for approximation of gradients. Special safeguards are implemented to overcome error situations, see below.

Special Features

  • upper and lower bounds on the variables handled separately
  • initial multiplier and Hessian approximation predetermined
  • reverse communication
  • bounds and linear constraints remain satisfied
  • robust and efficient implementation
  • extremely robust in case of noisy function and derivative values
  • several restart options in case of uphill search directions due to inaccurate derivatives
  • initial and periodic restarts with scaled identity matrix
  • Fortran source code (close to F77, conversion to C by f2c possible)
  • Extensive set of test runs
  • Easy-to-use version available (NLPQLY)


NLPQL/NLPQLP is in practical use in hundreds of applications since the last 20 years from PC to mainframe. The most popular practical application is structural mechanical optimization. Customers include AMD, Applied Research Corp., Aramco, Astrium, Aware, Axiva, BASF, Bastra, Bayer, Bell Labs, BMW, CEA, Chevron Research, DLR, Dornier Systems, Dow Chemical, EADS, EMCOSS, ENSIGC, EPCOS, ESOC, Eurocopter, Fantoft Prosess, Fernmeldetechnisches Zentralamt, General Electric, GLM Lasertechnik, Hidroelectrica Espanola, Hoechst, IABG, IBM, INRIA, NRS-Telecommunications, KFZ Karlsruhe, Markov Processes, Micronic Laser Systems, MTU, NASA Langley, Nevesbu, National Airspace Laboratory, Norsk Hydro Research, Numerola, Mathematical Systems Institute Honcho, Norwegian Computing Center, Peaktime, Philips, Prema, Polysar, ProSim, Research Triangle Institute, Rolls-Royce, SAQ Kontroll, SDRC, Siemens, Solar Turbines, Space Systems/Loral, TNO, Transpower, USAF Research Lab, VTT Chemical Technology, Wright R&D Center, and in addition dozens of academic research institutions all over the world. NLPQL is part of commercial redistributed optimization systems like

  • ANSYS/POPT (CAD-FEM, Grafing) for optimization of shell structures,
  • DesignXplorer (ANSYS Inc., Canonsburg) for structural design optimization,
  • STRUREL (RCP, Munich) for reliability analysis,
  • TEMPO (OECD Reactor Project, Halden) for control of power plants,
  • Microwave Office Suit (Applied Wave Research, El Segundo) for electronic design,
  • MOOROPT (Marintec, Trondheim) for the design of mooring systems,
  • iSIGHT (Engineous Software, Cary, North Carolina) for multi-disciplinary CAE,
  • POINTER (Synaps, Atlanta) for design automation,
  • EXCITE (AVL, Graz) for non-linear dynamics of power units,
  • modeFrontier (ESTECO, Trieste) for integrated multi-objective and multi-disciplinary design optimization,
  • TOMLAB/MathLab (Tomlab Optimization, Västerås, Sweden) for general nonlinear programming, least squares optimization, data fitting in dynamical systems,
  • EASY-FIT (Schittkowski, Bayreuth) for data fitting in dynamical systems,
  • OptiSLang (DYNARDO, Weimar) for structural design optimization,
  • AMESim (IMAGINE, Roanne) for multidisciplinary system design,
  • Chemasim (BASF, Ludwigshafen) for design of chemical reactors,
  • OPTIMUS (NOESIS, Leuven, Belgium) for multi-disciplinary CAE,
  • RADIOSS/M-OPT (MECALOG, Antony, France) for multi-disciplinary CAE.

A DAKOTA interface is also available.


  • Yu-hong Dai, K. Schittkowski (2008): A sequential quadratic programming algorithm with non-monotone line search, Pacific Journal of Optimization, Vol. 4, 335-351
  • K. Schittkowski, NLPQLP: A Fortran implementation of a sequential quadratic programming algorithm with distributed and non-monotone line Search - User's guide, Version 4.2, Report, Department of Computer Science, University of Bayreuth (2009)
  • K. Schittkowski, NLPQL: A Fortran subroutine for solving constrained nonlinear programming problems, Annals of Operations Research, Vol. 5, 485-500 (1985/86)
  • K. Schittkowski (2010): A robust implementation of a sequential quadratic programming algorithm with successive error restoration, Optimization Letters, Vol. 5, 283-296 (2011)