LINGO includes a set of built-in solvers to tackle a wide variety of problems. This seamless integration allows LINGO to pass the problem to the appropriate solver directly in memory rather than through more sluggish intermediate files. This direct link also minimizes compatibility problems between the modeling language component and the solver components.
Linear Solvers
LINGO is available with three state of the art solvers for linear models.
Primal and Dual Simplex Solvers
The base version includes the Primal and Dual Simplex solvers, which incorporate numerous enhancements for maximum speed and robustness. Pricing options, for instance, include partial pricing and Devex. The solver dynamically chooses the best pricing option based upon problem characteristics.
Barrier Solver
The optional Barrier solver provides an alternative means of solving linear models. The Barrier option utilizes a barrier or interior point method to solve linear models. Unlike the Simplex solvers that move along the exterior of the feasible region, the Barrier solver moves through the interior space to find the optimum. Depending upon the size and structure of a particular model, the Barrier solver may be significantly faster than the Simplex solvers and can provide exceptional speed on large linear models -- particularly on sparse models with more than 5,000 constraints or highly degenerate models.
Preprocessing routines are available with all three LINGO linear solvers. Scaling procedures can improve speed and robustness on numerically difficult models. Model reduction techniques can often make models solve faster by analyzing the original formulation and mathematically condensing it into a smaller problem.
Nonlinear Solver
For nonlinear programming models, the primary underlying technique used by LINGO's optional nonlinear solver is based upon a Generalized Reduced Gradient (GRG) algorithm. However, to help get to a good feasible solution quickly, LINGO also incorporates Successive Linear Programming (SLP). The nonlinear solver takes advantage of sparsity for improved speed and more efficient memory usage.
Integer Solver
For models with general and binary integer restrictions, LINGO includes an integer solver that works in conjunction with the linear and nonlinear solvers. For linear models, the integer solver does extensive preprocessing and adds constraint "cuts" of several different varieties to greatly improve solution times on large classes of integer models.
LINGO is designed, so the process of solving the model requires as little input from the user as possible. When the Solve command is initiated LINGO analyzes the problem and, when possible, reduces the problem and even substitutes out variables. Based upon the models structure, LINGO automatically selects the appropriate solver and intelligently adjusts internal parameters.