Developer: LINDO Systems Inc.

Latest Release: What’sBest! 13, LINGO 15, LINDO API 9.0

Operating System: See system requirements for each module

LINDO Systems developed a collection of software packages that facilitate building and solving optimisation models.

Linear, non-linear and integer optimisation tools are used by companies interested in addressing questions related to profit maximisation, cost minimisation, production planning, transportation, finance, portfolio allocation, capital budgeting, blending, scheduling, inventory, resource allocation and other.

Coming Soon. Please email us at to order your license

LINDO Systems offer the following products:

What’Best!: The Spreadsheet Solver

WhatsBest! is an add-in to Excel that allows you to build large scale optimisation models in a free form layout within a spreadsheet.

LINGO: Modelling Environment and Solver

LINGO combines a full featured modelling environment with a set of solvers for linear, integer and nonlinear models. LINGO comes with a DLL, which can be called from your own application.

LINGO API: Optimisation Engine

The LINDO API allows application developers to easily create customized programs that call LINDO’s set of linear and integer solvers. It includes dozens of routines to formulate, solve, query and modify optimization problems and gives the user access to greater speed and algorithmic control than any other product offered by LINDO.

Solver Suite

LINDO Systems bundle offering of all the above three products.

What’sBest! 13

What’sBest! 13 is currently a beta release (available for download here), see below for the new features in What’sBest! V12.

What’sBest! 12 included major solver enhancements to increase speed and reliability across broad classes of linear, integer, quadratic and general nonlinear models.

Improved Speed with Multicore Support

The solvers have been enhanced to take advantage of computers with multicore processors to boost speed on a wide range of problems.  Multicore extensions have been added to the Barrier, Global, Integer, Linear, Multistart and Stochastic solvers.

Improved Mixed Integer


The heuristics for finding good feasible solutions to integer models have been significantly improved. Simple rounding and feasibility pump now use bound propagation to improve the current path to a new feasible integer solution. A new polishing heuristic has been added to improve the best integer solution using a pool of previous obtained integer solutions and the current relaxation. As a result, on many integer models the solver is able to find better feasible integer solutions in a shorter amount of time.

Faster Better Multistart Solver

The Multistart solver has been improved significantly achieving performance improvements of up to two times compared to the previous version.  The chances of finding the globally optimal solution have improved by 10-15% over a wide range of non-convex models.

More Powerful Stochastic Solver

Extensive improvements have been made to the Nested Benders Decomposition to make it up to six times faster.  Chance-programming solver is now equipped with a Genetic Algorithm to find high-quality feasible solutions to large-scale instances. Models in this class can now also be solved using the Simple Benders Decomposition method.

New Branch-and-Price Solver

A new Branch-and-Price solver with multicore support has been added for improved performance on problems with block structures. Detection of decomposition structures has also been improved in support of the Branch-and-Price solver.

New Scenario Display Feature

A feature has been added to allow you to browse the scenarios of your Stochastic Programming / Simulation model in a preview window and select one to be displayed in the spreadsheet.

Support for More Distributions

Additions to the list of supported distributions include Beta-Binomial and Symmetric Stable Paretian distribution. Stochastic programming models may also specify random variables as having these new distributions.

New Simulation Capability

You can now specify random parameters and their associated distributions on non-optimisation models and have What’sBest! calculate the values of specified reporting cells and display their histograms.

Expanded Excel Function Support

Support has been added for Excel’s Cumulative Distribution and Probability Density functions and has been improved for Excel’s Present Value function.

Improved Histogram Generation

Enhancements have been made to the generation of histograms in Stochastic Programming/Planning Under Uncertainty.


Currently a beta release, LINGO 15 is available for download here. See below the new features contained in LINGO 14:

New Chart Display Capabilities in LINGO:

The Network Chart Type can display charts of networks. Multiple networks can be displayed on a single chart.

Easy generation, e.g., two or three statements, of graphs of functions, e.g.

Permuted Matrix Displays:

You may now choose to have a models underlying matrix displayed in a variety of orderings. Here for example is the display of a model in its original ordering:

Here is the same problem with rows and columns permuted with just a click into block-triangular format. If a matrix has good block-triangular structure, then the model is likely to perform well when solved with the new Branch-and-Price solver.

Faster Rendering of Matrix Displays:

For models with more than 10,000 variables or constraints, the speed of rendering of the display has been improved by several orders of magnitude.

Dynamic/Programmatically Derived Sets in LINGO:

The @INSERT function has been added, which allows the dynamic addition of set members to derived sets. This is handy for applications in which the definition of a set of objects is complicated.

Procedures/Public Subroutines in LINGO:

LINGO now supports callable procedures. Callable procedures are similar to CALC sections, however, unlike CALC sections, procedures may be called and executed multiple times.

Numerical Integration Function:

There is now a simple command, @INTEGRAL( ), for computing the numerical integral of a function over an interval.

More Probability Distributions Available for Planning Under Uncertainty:

The Beta-Binomial and Symmetric Stable distributions have been added to the list of supported distributions. Stochastic programming models may also specify random variables as having either a Beta-binomial or Symmetric Stable distribution. The Beta-Binomial is useful in Bayesian analysis involving the Binomial distribution, e.g., in designing sampling plans for new drug trials. The Symmetric Stable is sometimes used to model the movement of prices in financial markets.

Date and Time Functions:

A number of new functions have been added to convert dates to and from scalar time, where scalar time is defined as the number of seconds since midnight 1 Jan 2000. These functions are helpful when you need to perform date arithmetic in your models. Among other things, these functions are useful for answering questions of the form, “If the my flight leaves Chicago at 10:30 am on June 21 and the flight to Beijing takes 13 hours, what will the date and local time be in Beijing when I land, and will I be able catch a local flight at . . .?”.

Reduced Solve Time on Multi-core Machines:

LINGO 14.0 and What’sBest! 12+ can take advantage of computers with multicore processors. The multicore extensions are of two types: concurrent and parallel. Concurrent algorithms run two or more different serial algorithms on multiple copies of the same model, using a separate thread for each algorithm, terminating as soon as the winner thread finishes. Parallel algorithms, on the other hand, parallelize computationally intensive portions of the serial algorithm to distribute the workload across multiple threads. Solvers with multicore extensions include Barrier, Global, Integer, Linear, Multistart and Stochastic.

Reduced Model Generation Time on Multi-core Machines:

In addition to the solvers, LINGO’s model generator has also been extended for multicore support. Model generation times for large models can be reduced up to as much as 50% when compared to previous releases.

Branch-and-Price Solver:

A new Branch-and-Price solver with multicore support has been added for improved performance on problems with block structures. Detection of decomposition structures has also been improved in support of the Branch-and-Price solver.

MIP Solver Improvements:

The solution finding heuristics have been improved significantly. Simple rounding and the feasibility pump now use bound propagation to improve the current path to a new feasible MIP solution.

New polishing heuristic to improve the best MIP solution using a pool of previous obtained MIP solutions and the current relaxation. This leads to better MIP solutions faster on many problems.

Multithreading can lead to speed improvements from 1.5 to 3.0 times on difficult problems using 4 threads rather than 1. For easy MIP problems, e.g., < 600 seconds, multithreading may give not much speedup.

Multistart Solver Improvements:

The Multistart solver has been improved significantly, achieving speed factors up to 2X compared to the previous version. The likelihood of getting the global optimum has also improved by 10-15% over a wide range of nonconvex models.

Multithreading often leads to speed improvements from 2.0 to 3.0 times when using 4 threads. Speed improvements tend to improve as the model size and the number of multistarts increase.

Global Solver Improvements:

A parallel algorithm has been added for exploiting multicore machines.


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.


  • Windows 32×80


  • Windows 32×86
  • Windows 64×86
  • Linux 32×86
  • Linux 64×86


  • Windows 32×86
  • Windows 64×86
  • Mac-PowerPC
  • Mac 32×86
  • Linux 32×86
  • Linux 64×86
  • Solaris-SPARC 32
  • Solaris-SPARC 64

Solver Suite

  • Windows 32×80