What's New in LINDO API 15.0
Version 15.0
New in LINDO API 15.0
LINDO API 15 includes substantial improvements to all components of the library, the LP/MIP solvers, Global optimizer, Nonlinear solver, and has enhanced support for external MIP solvers.
Details
- Improved reproducibility when solving a problem repeatedly, particularly with the concurrent option choosing the fastest of Barrier, Primal simplex, and dual simplex.
- Global solver offers improved handling of IF statements and polynomials.
- Recognizes the CENSOR( x, LB, UB) construct which is the simplest form of an S-curve function such as might be found in neural networks.
- Recognizes the POLYNOMIAL construct to better exploit univariate polynomials.
- Improved Multi-start for quickly finding good solutions to difficult nonconvex problems,
- Increased support for external solvers, including linear solvers such as COPT, CLP, HIGHS,
- Improved support for some external Nonlinear solvers.
- LINDO API 15 is available on all major platforms: Windows, Linux, MacOS, ARM, Android.
Version 14.0
What's New in LINDO API 14.0
Linear-Integer solver
- Improved heuristics for general integer programs.
- Average performance improvement of 2-3% on our standard test set.
- Improved method for generating all alternative optima to a linear program:
- The first call to
LSgetNextBestSol()
creates a prespecified number of corner points via pivoting on the optimal solution set. - Subsequent calls will nonredundantly return successive corner points.
- Standard solution query methods can be used to access primal-dual vectors following each call to
LSgetNextBestSol
.
- The first call to
Linearization
- Support for Indicator constraints, e.g.,
z = 0
impliesx + y <= 0
; - More expressions can be automatically linearized, so you can now use a fast linear solver where otherwise a much slower nonlinear solver might be required.
- Advanced linearization of QP and Conic models
- Improved linearization of certain IF expressions.
Nonlinear and Global Solver
- faster (order of magnitude) solution of linear fractional programs (ratio objectives).
- improved bound tightening process in preprocessing of nonlinear models.
- auxiliary variables generated automatically to improve performance with complicated expressions.
- Support for additional useful but “problematic” functions: Power utility funktion
(xg-1)/g
and the exponential ratio function(exp(g) - 1)/g
are important in some situations modeling consumer behavior. LINDO API can now robustly avoid the numerical problems that would otherwise occur when g approaches 0.
Interfaces
- Julia/JuMP is now supported officially.
- Python interface installations now easier via pip (pypi.org)
- Matlab interface now has two alternative methods for linear and integer optimization,
LSlinprog
andLSintprog
. Argument lists follow their counterparts,linprog
andintprog
, in Matlab’s optimization toolbox.
Version 13.0
What's New in LINDO API 13.0
Release 13 of LINDO API includes a wide range of performance enhancements and new features.
Order of Magnitude Faster on Long Skinny LPs
Enhancements to the Simplex Solvers allow significantly faster solution of linear models with many times more variables than constraints.
Faster When Simultaneously Solving an LP Using Different Solvers
An improved feature allows users to concurrently run the Primal Simplex, Dual Simplex, and Barrier solver each on a separate core. This ensures the solution in the shortest time regardless of which solver is fastest.
Integer Solver Improvements
Better performance on many integer models has been achieved through improved selection of default settings for cut generation and solution heuristics.
Enhancements to the Quadratic/Conic Solvers
Models with ex and xk terms are solved faster -- so called Barrier Solver exponential and power cones.
New Parameter Tuning Tool
The Parameter Tuning Tool helps determine the best parameter configurations for all model types (LP, MIP, NLP, and Stochastic) by performing several runs on a given set of models. Users can preselect the paraments to be adjusted or let LINDO API select them.
Added Support for Multiple Objective Optimization
For linear models, users can provide a prioritized list of objective functions, and LINDO API will perform Lexico/Pre-emptive priority optimization.
Numerous Global Solver Enhancements
- Improved recognition and exploitation of convexity of various composite functions.
- Improved performance for models with convex-concave functions.
- Models with ratio/fractional objective, including MIP, solve an order of magnitude faster.
- Substantial speed improvements on Non-convex Quadratically Constrained Quadratic Programs.
Version 12.0
What's New in LINDO API 12.0
Release 12 of LINDO API includes a wide range of performance enhancements and new features.
Better Performance on Linear Models with Improved Simplex Solvers
Enhancements to the Simplex solvers boost speed on linear models. Models solve an average of 18% faster using primal simplex and 15% faster for dual simplex.
Significantly Faster on Large Quadratic Models
Improvements in handling large quadratic matrices, e.g. 1000 x 1000, provide substantial performance improvement solving financial portfolio and other quadratic models.
Improved Handling of Models with Discontinuous Functions
Models that use discontinuous functions such as MOD(x,k), INT(x), ROUND(x), can be solved more quickly.
Faster When Simultaneously Solving LPs Using Different Solvers
In situations in which it may be difficult to predict whether the Primal, Dual or Barrier Solver will provide the fastest solution to a linear model, an improved Multi-Core feature allows you to assign each solver to a separate core and run them concurrently. So, you are ensured the solution in the shortest time regardless of which solver is fastest.
Multi-Start NLP Solver Now Supports a Target Value
Users can specify a target value for the objective function. As soon as any multi-start thread achieves a specified target all threads stop.
New Engineering Design Functions Added
Support has been added for new arithmetic functions, SIGNPOWER, LMTD, RLMTD, that can be useful in various engineering design, e.g., nonlinear network and heat exchanger models.
Version 11.0
What's New in LINDO API 11.0
Release 11 of LINDO API includes a wide range of performance enhancements and new features.
Faster Solutions on Linear Models with Improved Simplex Solver
Enhancements to the Simplex solvers boost performance on linear models. Large models solve an average of 20% faster using primal simplex and 15% faster for dual simplex.
Improved Integer Solver
New symmetry detection capabilities dramatically reduce the time required to prove optimality on certain classes of models with integer variables. Performance has been improved on Markowitz portfolio problems with minimum buy quantities, and/or limit on number of instruments at nonzero level. Other enhancements provide faster solutions on certain task assignment-like models.
Global Solver Enhancements
Stability and robustness of the Global solver has been improved through several enhancements to quadratic recognition and range reduction. Improved exploitation of convexity of certain ratio constraints, e.g., as found in heat exchanger network design problems.
More Constraint Types Supported
Several new functions and constraint types are recognized, e.g., the AllDiff constraint for general integer variables. AllDiff constraints allow one to specify a set of integer variables, such that each variable in the set must have a unique value, different from all other variables in the set.
Version 10.0
What's New in LINDO API 10.0
Release 10 of LINDO API includes a wide range of performance enhancements and new features.
Faster Solutions on Linear Models with Improved Simplex Solver
- Enhancements to the Simplex solvers boost performance on large linear models. Large models solve an average of 35% faster using primal simplex and 20% faster for dual simplex.
- Additional LP solver enhancements include a new extension to support multiple objective criteria.
Improved Integer Solver with new features
- A new optimization mode has been introduced to ensure reproducibility of runs.
- Investigate alternative optima more quickly. Enhancements to the K-Best algorithm allow finding K best solutions in little more time than finding one solution.
- Find faster solutions to models with knapsack constraints and block structures using new heuristic algorithms.
- New preprocessing level tightens variable bounds for better performance on classes of nonlinear models.
Enhanced Stochastic Solver
- Large linear multistage SP instances solve 60% faster with improved cut management for Nested Benders Decomposition Method.
- Better handling of multistage SP models which do not have full-recourse.
- Extensions to the parser allow the use of arbitrarily complex functions of stochastic parameters.
Improved Global Solver
- Performance of Global solver has been dramatically improved on classes of quadratic problems. In particular, non-convex quadratic problems rejected by other solvers, or otherwise solvable only slowly to a local optimum by traditional NLP solvers. Can solve some previously intractable problems to global optimality, especially financial portfolio models with minimum buy quantities, and/or limit on number of instruments at nonzero level.
- Incorporates a new bound tightening process to the linearization procedure and improves solvability of linearized model. Dramatically faster, more robust performance on many models with functions like MAX( ), MIN( ), ABS( ), x*z where z = 0 or 1, etc.
Additional Enhancements
- Extended collection of user callable matrix operations for working with covariance matrices such as in financial portfolio design. Routines include general eigenvalue decomposition, cholesky factorization for generating correlated random variables, Semi-Definiteness (SDP) constraints, plus linear regression, e.g. for doing demand forecasting for production planning models.
Version 9.0
What's New in LINDO API 9.0
Release 9 of LINDO API includes a wide range of performance enhancements and new features.
- Simplex LP algorithm speed and robustness improvements.
- New preprocessing for LP/IP to significantly reduce coefficient density of certain dense LP matrices.
- Knapsack related cuts improvements. Significantly faster solve times on models with certain knapsack-like constraints.
- Improved default node selection rules improves performance on most MIP's.
- New branching variable rule options: maximum coefficients and neighborhood branching. Can reduce number of branches on certain MIP's.
- Perspective reformulation capability gives improved performance on quadratic portfolio models with semi-continuous variables, e.g. min-buy quantities.
- Improved default settings for NLP's gives 5% average speed improvement.
- Faster processing of long nonlinear expressions in NLP's, e.g., 1000's of terms as found in nonlinear regressions with 1000's of observations.
- Global solver supports more functions, e.g., cdf and inverse cdf of distributions such as Normal, Cauchy, exponential, logistic, and more.
- Semi-Definite Program (SDP)/Positive Definite (POSD) support, including integer variables, e.g., if estimating a covariance matrix for a portfolio, can add constraint that matrix be positive semi-definite.
- Quadratic repair feature for near-convex Quadratic Programs (QP). Gives improved performance on not quite convex QP's.
- Sparse Cholesky factorization and related linear algebra utility functions added to the API and can now be called for general use.
- LScomputeFunction( ) provides a single interface for directly calling most of the 150+ math functions in API operator library.