OpenOpt Changelog

What's new in OpenOpt 0.54

Jun 16, 2014
  • Some changes for PyPy compatibility
  • FuncDesigner translator can handle sparse derivatives from AD
  • New interalg parameter rTol (relative tolerance, default 10-8)
  • Bug fix and improvements for categorical variables

New in OpenOpt 0.53 (Mar 18, 2014)

  • FuncDesigner stochastic addon now available for free
  • Some minor changes

New in OpenOpt 0.52 (Dec 16, 2013)

  • Minor interalg speedup
  • oofun expression
  • MATLAB solvers fmincon (NLP) and fsolve (SNLE) have been connected
  • Several MATLAB ODE solvers have been connected
  • New ODE solvers, parameters abstol and reltol
  • New GLP solver: direct
  • Some minor bugfixes and improvements

New in OpenOpt 0.50 (Jun 17, 2013)

  • interalg now works many times (sometimes orders) faster on (possibly multidimensional) integration problems (IP), and some optimization problems
  • Add modeling dense (MI)(QC)[[QP] in FuncDesigner (alpha-version, rendering may work slowly yet)
  • Bugfix for cplex wrapper
  • Some improvements for FuncDesigner interval analysis (and thus interalg)
  • Add FuncDesigner interval analysis for tan in range(-pi/2,pi/2)
  • Some other bugfixes and improvements
  • (Proprietary) FuncDesigner stochastic addon now is available as standalone pyc-file, became available for Python3 as well

New in OpenOpt 0.45 (Mar 15, 2013)

  • Essential improvements for FuncDesigner interval analysis (thus affect interalg)
  • Temporary walkaround for a serious bug in FD automatic differentiation kernel due to a bug in some versions of Python or NumPy, may affect optimization problems, including (MI)LP, (MI)NLP, TSP etc
  • Some other minor bugfixes and improvements

New in OpenOpt 0.43 (Dec 20, 2012)

  • interalg now can solve SNLE in 2nd mode (parameter dataHandling = "raw", before - only "sorted")
  • Many other improvements for interalg
  • Some improvements for FuncDesigner kernel
  • FuncDesigner ODE now has 3 arguments instead of 4 (backward incompatibility!), e.g. {t: np.linspace(0,1,100)} or mere np.linspace(0,1,100) if your ODE right side is time-independend
  • FuncDesigner stochastic addon now can handle some problems with gradient-based NLP / NSP solvers
  • Many minor improvements and some bugfixes

New in OpenOpt 0.42 (Sep 19, 2012)

  • Some improvements for interalg, including handling of categorical variables
  • Some parameters for solver gsubg
  • Speedup objective function for de and pswarm on FuncDesigner models
  • New global (GLP) solver: asa (adaptive simulated annealing)
  • Some new classes for network problems: TSP (traveling salesman problem), STAB (maximum graph stable set)], MCP (maximum clique problem)
  • improvements for FD XOR
  • Solver de has parameter "seed", also, now it works with PyPy
  • Function sign now available in FuncDesigner
  • FuncDesigner interval analysis (and thus solver interalg) now can handle non-monotone splines of 1st order
  • FuncDesigner now can handle parameter fixedVars as Python dict
  • Now scipy InterpolatedUnivariateSpline is used in FuncDesigner interpolator() instead of UnivariateSpline. This creates backward incompatibility - you cannot pass smoothing parameter (s) to interpolator no longer.
  • SpaceFuncs: add Point weight, Disk, Ball and method contains(), bugfix for importing Sphere, some new examples
  • Some improvements (essential speedup, new parameter interpolate for P()) for our (currently commercial) FuncDesigner stochastic Programming addon.

New in OpenOpt 0.39 (Jun 18, 2012)

  • interalg: add categorical variables and general logical constraints, many other improvements
  • Some improvements for automatic differentiation
  • DerApproximator and some OpenOpt/FuncDesigner functionality now works with PyPy
  • New solver lsmr for dense/sparse LLSP
  • oovar constructors now can handle parameters lb and ub, e.g. a = oovar('a',size=3,lb=-1, ub=[1,2,3]), x = oovars(10, lb=-1, ub=1)
  • New FuncDesigner function hstack, similar syntax to numpy.hstack, e.g. f = hstack((a,b,c,d))
  • Some bugfixes

New in OpenOpt 0.38 (Mar 16, 2012)

  • interalg can handle discrete variables (see MINLP for examples)
  • interalg can handle multiobjective problems (MOP)
  • interalg can handle problems with parameters fixedVars/freeVars
  • Many interalg improvements and some bugfixes
  • Add another EIG solver: numpy.linalg.eig
  • New LLSP solver pymls with box bounds handling

New in OpenOpt 0.36 (Oct 3, 2011)

  • Now solver interalg can handle all types of constraints and integration problems
  • Some minor improvements and code cleanup

New in OpenOpt 0.33 (Mar 17, 2011)

  • cplex has been connected
  • New GLP solver interalg with guarantied precision (also can work in inexact mode)
  • New solver amsg2p for medium-scaled NLP and NSP

New in OpenOpt 0.32 (Dec 16, 2010)

  • OpenOpt:
  • New class: LCP (and related solver)
  • New QP solver: qlcp
  • New NLP solver: sqlcp
  • New large-scale NLP/NSP solver gsubg. Currently it still requires lots of improvements (especially for constraints - their handling is very premature yet and often fails), but since the solver sometimes already works better than ipopt, algencan and other competitors it was tried with, I decided to include the one into the release.
  • Now SOCP can handle Ax

New in OpenOpt 0.31 (Sep 16, 2010)

  • Lots of new NLP, NSP (nonsmooth) and GLP (global) solvers from nlopt have been connected
  • New LP solver: pclp (very premature, but permissive license and pure Python implementation)
  • CVXOPT abstol and feastol (defaults 10^-7) have been binded to openopt "ftol" and "contol" (defaults 10^-6), maxiters(100) to maxIter (now 1000, was 400). As for "refinement" and "reltol" - it's not done yet, you should use CVXOPT native approach to adjust them
  • Some bugfixes (mostly wrt using sparse matrices) and code cleanup

New in OpenOpt 0.29 (Jun 16, 2010)

  • OpenOpt:
  • Some bugfixes
  • Some improvements for handling sparse matrices
  • FuncDesigner:
  • Some improvements for automatic differentiation
  • New feature: attached constraints
  • New feature: oosystem
  • Now you can model & solve ODE systems
  • ralg:
  • Bugfix for problems with nonlinear equality constraints
  • Major changes for problems with nConstraints>1
  • DerApproximator:
  • Function get_d2
  • Add new stencil
  • Backward incompatibilities:
  • By default stencil for NSP and used-created oofuns (e.g. connected from non-Python code) now have derivatives approximation stencil №3 instead of №2, it may lead to speed decrease (but you can set it to 2 or 1 manually).

New in OpenOpt 0.28 (Mar 17, 2010)

  • New solvers scipy.optimize fmin as scipy_fmin (NLP/NSP), lsqr (LLSP)
  • Major changes for ralg (one of changes - now all active constraints are taken together)

New in OpenOpt 0.27 (Dec 17, 2009)

  • scipy_slsqp solver - bugfix for problems where some box-bound constraints lb

New in OpenOpt 0.25 (Sep 16, 2009)

  • Minor changes for NLP/NSP solver ralg
  • Some bugfixes, lots of code clean up
  • OpenOpt can optimize FuncDesigner models, for some non-linear classes it provides automatic differentiation
  • Backward incompatibilities:
  • oovar-oofun have been moved to standalone package (FuncDesigner)
  • For some problems with nonlinear funcs, where user-supplied derivatives are absent, you should have DerApproximator installed.

New in OpenOpt 0.24 (Jun 19, 2009)

  • New class: MINLP - mixed-integer nonlinear problems
  • New class: Linear Uniform Norm Problems (LUNP)
  • Now DFP can handle user-supplied derivatives
  • Some changes for finite-difference derivatives approximation
  • New handling of linear equality constraints by ralg and some other changes for the solver
  • Some important bugfixes, code cleanup, minor doc improvements
  • Backward incompatibilities:
  • Connection to PSwarm 1.4 instead of 1.3 (Python API is backward-incompatible for 1.4)
  • Default p.storeIterPoints set to False (it affects r.iterValues.x - for large scale problems it eats quite lot of memory)

New in OpenOpt 0.23 (Jun 2, 2009)

  • New class SDP (solvers: CVXOPT and DSDP)
  • New class SOCP (solvers: CVXOPT, in future CVXOPT authors intend to connect DSDP SOCP solver, then it will be connected to OO)
  • New class DFP (Data Fit Problem, syntax similar to MATLAB lsqcurvefit)
  • Some changes to NLP/NSP solver ralg
  • Some more minor changes, code cleanup, bugfixes
  • Changes for named variables syntax:
  • Check derivatives for oofun
  • oolin constraints now are rendered into linear ones, provided all inputs of the oolin involved are oovar instances
  • Contributors:
  • Thanks to Stepan Hlushak for writing GLP solver "de" (based on differential evolution)
  • Backward incompatibilities:
  • if you provide derivatives for constraints, then for each constraint c_i or h_j: R^n -> R^s_k you should provide dc_i or dh_j with exactly same number of outputs, i.e. R^n -> R^(s_k, n), otherwise correct solution is not guaranteed (for named variables syntax you shouldn't care of the issue, each oofun has single function for obtaining output and no more than a single user-provided function for obtaining output derivatives).