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.