|This article may need to be rewritten entirely to comply with Wikipedia's quality standards. (March 2011)|
OpenOpt is an open-source framework for numerical optimization, nonlinear equations and systems of them. It is licensed under the BSD license, making it available to be used in both open- and closed-code software. The package already has some essential applications.
The framework interfaces with around ~30 different solvers for optimization problems, both free (e.g. IPOPT, Algencan, GLPK) and commercial (e.g. CPLEX). Some solvers are written in C or Fortran. Also there are some Python-written ones, e.g.
- ralg for medium-scaled nonlinear/nonsmooth problems (number of variables ~1500)
- gsubg for large-scaled nonlinear/nonsmooth problems
- interalg - can obtain optimum with guarantied precision and all solutions of nonlinear equations system, can handle categorical variables, general logical constraints, multiobjective problems
- Multifactor analysis tool with easy and convenient GUI for experiment planning (in physics, chemistry, biology etc.)
Originally developed in MATLAB, OpenOpt is now developed in Python and has a single dependence: NumPy (numerical package for low-level matrix operations, well known for Python language programmers, with some code written in C, Fortran languages and wrappers to BLAS, LAPACK, ACML, MKL etc.). This makes OpenOpt easy to install and OS-independent.
If you have a model written in FuncDesigner (another software from OpenOpt developers), it can be optimized with first derivatives obtained via Automatic differentiation. Also, it can be used more like a language of mathematical formulas, possibly with recursive import of variables/formulas from other files.
Along with FuncDesigner, OpenOpt Suite also includes
- DerApproximator - tool to get (or check user-supplied) derivatives via finite-difference approximation
- SpaceFuncs - tool for 2D, 3D, N-dimensional geometric modeling with possibilities of parametrized calculations, numerical optimization and solving systems of geometrical equations
(OpenOpt, FuncDesigner, DerApproximator and SpaceFuncs are available for installation as standalone Python language modules, but some functionality will be missing).
You can try the modules on-line (without installation) via the SAGE-server (unfortunately, it often hangs due to high load).
Also OpenOpt has commercial stochastic optimization addon (free only for small-scaled problems and research / educational purposes).