nlpy

Nonlinear Programming in Python

nlpy.sf.net

  • [SF.net Logo]

Home

nlpy is a Python package for numerical optimization. Its aim is to provide a toolbox for solving linear and nonlinear programming problems that is both easy to use and is extensible. It is applicable to problems that are smooth, have no derivatives, or have integer data.

nlpy combines the capabilities of the mature modeling language AMPL with the high-quality numerical resources and object-oriented power of the Python programming language. This combination makes nlpy an excellent tool to prototype and test optimization algorithms, and also as a teaching aid for optimization.

nlpy can read optimization problems coded in the AMPL modeling language. All aspects of the loaded problem can be examined and the problem solved. Individual objective and constraint functions, together with their derivatives (if they exist) can be accessed transparently through an object-oriented framework.

nlpy is extensible and new algorithms can be built by assembling the supplied building blocks, or by creating new building blocks. Existing building blocks include procedures for solving symmetric (possibly indefinite) linear systems with MA27 (a direct solver) or ICFS (an iterative solver that uses a limited-memory Cholesky preconditioner), a procedure for solving preconditioned trust-region subproblems with GLTR, and much more. Be sure to check the examples for more details.

nlpy is open-source software distributed under the tems of the GNU Lesser General Public License.


d-orban@users.sf.net mfriedlander@users.sf.net