OpenOpt

From Wikipedia, the free encyclopedia
  (Redirected from FuncDesigner)
Jump to: navigation, search
OO NLP 1.png
OO bench 1.png
OpenOpt MOP.png

OpenOpt is a framework for numerical optimization, nonlinear equations and systems of them. Part of it is licensed under the open source BSD license, but it uses proprietary software for some of its functionality and its stochastic optimization add-on is proprietary as well. Originally developed in MATLAB, OpenOpt is now developed in Python, using NumPy for numerical work.

The framework interfaces with around ~30 different solvers for optimization problems, both free (e.g. IPOPT, Algencan, GLPK) and commercial (e.g. CPLEX, KNITRO, some MATLAB solvers). 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

OpenOpt also has

OpenOpt-connected solvers can have any type of license, but are primarily open source and OSI-approved ones such as GPL, LGPL, and BSD.

Models written in FuncDesigner (another software package by the same team of developers) 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

  • 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

External links[edit]