Version: 2.0

LINDO Systems is proud to introduce LINDO API 2.0. The new release offers a number of enhancements including: a) significantly expanded nonlinear capabilities, b) global optimization tools, c) improved performance on linear and integer problems, and d) enhanced interfaces to other systems such as MATLAB and Java. The new features added in LINDO API 2.0 are :

Create Applications to Solve General Nonlinear Models
LINDO API is the first full-featured solver callable library to offer general nonlinear and nonlinear/integer capabilities. This unique feature allows developers to incorporate a single general purpose solver into their custom applications. As with its linear and integer capabilities, LINDO API provides the user with a comprehensive set of routines for formulating, solving, and modifying nonlinear models. The Nonlinear license option is required in order to utilize the nonlinear capabilities with LINDO API.
Global Optimization

We are very excited about the new global solver added in this release. The global solver combines a series of range bounding (e.g., interval analysis and convex analysis) and range reduction techniques (e.g., linear programming and constraint propagation) within a branch-and-bound framework to find proven global solutions to non-convex nonlinear programs or mixed-integer nonlinear programs. Traditional nonlinear solvers can get stuck at suboptimal, local solutions. This is no longer the case when using the global solver. The nonlinear and global license options are required in order to utilize the global optimization capabilities with LINDO API.

Multistart Nonlinear Solver

This feature is a heuristic for the global optimization of nonlinear programs and mixed integer nonlinear programs. It intelligently generates a sequence of candidate starting points in the solution space of the problem. A traditional nonlinear solver is called with some of these starting points to find a set of local optima. For non-convex nonlinear program models, the quality of the best solution found by the multistart solver tends to be superior to that of a single solution from a traditional nonlinear solver. A user adjustable parameter controls the maximum number of multistarts to be performed. The nonlinear and global license options are required in order to utilize the multistart feature with LINDO API.

Linearization

Linearization is a comprehensive reformulation tool that automatically converts many non-smooth functions and operators (e.g., max and absolute value) to a series of linear, mathematically equivalent expressions. Many non-smooth models may be entirely linearized. This allows the linear solver to quickly find a global solution to what would have otherwise been an intractable problem.

Quadratic Recognition and Solver

The quadratic recognition tool is a useful algebraic pre-processor that automatically determines if an arbitrary nonlinear program is actually a quadratic model. Quadratic programming models may then be passed to the faster quadratic solver, which is available as part of the barrier solver option.

Dual Simplex Enhancements

The performance of the dual simplex method has been substantially improved. For many problem types, users can expect speed improvements up to 300%. Improvements have also been made in the handling of degenerate and numerically unstable models.

Decomposition

Many large scale linear and mixed integer problems have constraint matrices that are totally decomposable into a series of independent block structures. A user adjustable parameter can be set, so the solver checks if a model can be broken into smaller independent models. If total decomposition is possible, it will solve the independent problems sequentially to reach a solution for the original model. This may result in dramatic speed improvements.

Expanded Java Interface

LINDO API 2.0 includes Java Native Interface (JNI) support for Windows, Solaris, and Linux platforms. This new feature allows users to call LINDO API from Java applications, such as applets running from a browser.

Expanded MATLAB interface

The Matlab interface has been expanded to support all LINDO API functions. Using MATLAB's modeling and programming environment, you can build and solve linear, nonlinear, quadratic, and integer models and create custom algorithms based upon LINDO API's routines and solvers.

.NET interface

LINDO API 2.0 includes C# and VB.NET interfaces that allow LINDO API to be used in .NET's distributed computing environment (including Windows Forms, ADO.NET, and ASP.NET). The interfaces are in the form of classes that allow managed .NET code to interact with unmanaged LINDO API code via the "System.Runtime.InteropServices" namespace.