OpenOpt
Encyclopedia
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 own ones, e.g.
OpenOpt-connected solvers can have any type of license, but are primarily open source and OSI-approved ones such as GPL, LGPL, and BSD
.
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.
Both OpenOpt and FuncDesigner
can solve constrained large-scale problems involving sparse matrices
.
Along with FuncDesigner
, OpenOpt Suite also includes
(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 website powers a numerical optimization forum.
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....
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
IPOPT
IPOPT, short for "Interior Point OPTimizer, pronounced I-P-Opt", is a software library for large scale nonlinear optimization of continuous systems. It is written in Fortran and C and is released under the EPL . IPOPT implements a primal-dual interior point method, and uses line searches based on...
, Algencan, GLPK) and commercial (e.g. CPLEX
CPLEX
IBM ILOG CPLEX Optimization Studio is an optimization software package. In 2004, the work on CPLEX earned the first ....
). Some solvers are written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
or Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...
. Also there are some Python-written own 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
- Multifactor analysis tool with easy and convenient GUI for experiment planning (in phisics, chemistry, biology etc)
OpenOpt-connected solvers can have any type of license, but are primarily open source and OSI-approved ones such as GPL, LGPL, and BSD
BSD licenses
BSD licenses are a family of permissive free software licenses. The original license was used for the Berkeley Software Distribution , a Unix-like operating system after which it is named....
.
Originally developed in MATLAB
MATLAB
MATLAB is a numerical computing environment and fourth-generation programming language. Developed by MathWorks, MATLAB allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs written in other languages,...
, 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
Blas
Blas is mainly a Spanish given name and surname, related to Blaise. It may refer to-Places:*Piz Blas, mountain in Switzerland*San Blas , many places - see separate article, also**Cape San Blas Light, lighthouse...
, LAPACK
LAPACK
-External links:* : a modern replacement for PLAPACK and ScaLAPACK* on Netlib.org* * * : a modern replacement for LAPACK that is MultiGPU ready* on Sourceforge.net* * optimized LAPACK for Solaris OS on SPARC/x86/x64 and Linux* * *...
, ACML, MKL
Math Kernel Library
Intel's Math Kernel Library is a library of optimized, math routines for science, engineering, and financial applications. Core math functions include BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms and Vector Math....
etc). This makes OpenOpt easy to install and OS-independent.
If you have a model written in FuncDesigner
FuncDesigner
FuncDesigner is a computer algebra system written as a Python module. It is cross-platform software , with a completely free license....
(another software from OpenOpt developers), it can be optimized with first derivatives obtained via Automatic differentiation
Automatic differentiation
In mathematics and computer algebra, automatic differentiation , sometimes alternatively called algorithmic differentiation, is a set of techniques to numerically evaluate the derivative of a function specified by a computer program...
. Also, it can be used more like a language of mathematical formulas, possibly with recursive import of variables/formulas from other files.
Both OpenOpt and FuncDesigner
FuncDesigner
FuncDesigner is a computer algebra system written as a Python module. It is cross-platform software , with a completely free license....
can solve constrained large-scale problems involving sparse matrices
Sparse matrix
In the subfield of numerical analysis, a sparse matrix is a matrix populated primarily with zeros . The term itself was coined by Harry M. Markowitz....
.
Along with FuncDesigner
FuncDesigner
FuncDesigner is a computer algebra system written as a Python module. It is cross-platform software , with a completely free license....
, 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 website powers a numerical optimization forum.