If the Use Global Solver box is checked, LINGO will invoke the global solver when you solve a nonlinear model. Many nonlinear models are non-convex and/or non-smooth (for more information see Chapter 15, On Mathematical Modeling.) Nonlinear solvers that rely on local search procedures (as does LINGO’s default nonlinear solver) will tend to do poorly on these types of models. Typically, they will converge to a local, sub-optimal point that may be quite distant from the true, global optimal point. Global solvers overcome this weakness through methods 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 global solutions to non-convex models.

The following example illustrates the usefulness of the global solver. Consider the simple, yet highly nonlinear, model:

MODEL:

  MIN = X * @COS( 3.1416 * X);

  @BND( 0, X, 6);

END

The graph of the objective function is as follows:

wavy

The objective function has three local minimal points over the feasible range. These points are summarized in the following table:

Point

X

Objective

1

1.09

-1.05

2

3.03

-3.02

3

5.02

-5.01

Clearly, the third local point is also the globally best point, and we would like the NLP solver to converge to this point.  Below is the solution LINGO produces if the default nonlinear solver is invoked:

  Local optimal solution found at step:             11

  Objective value:                           -1.046719

          Variable           Value        Reduced Cost

                 X        1.090405           0.1181082E-07

               Row    Slack or Surplus      Dual Price

                 1       -1.046719           -1.000000

Unfortunately, as you can see, we converged to the least preferable of the local minimums. However, after enabling the global solver by checking the Use Global Solver box, we do obtain the global solution:

  Global optimal solution found at step:            35

  Objective value:                           -5.010083

          Variable           Value        Reduced Cost

                 X        5.020143          -0.7076917E-08

               Row    Slack or Surplus      Dual Price

                 1       -5.010083           -1.000000

Note:There is one drawback to using the global solver; it runs considerably slower than the default nonlinear solver. Therefore, the preferred option is to always try and write smooth, convex nonlinear models.  By doing this, the faster, default local solver can be successfully invoked.

Keep in mind that the global solver supports most, but not all, of the functions available in the LINGO language. The following is a list of the nonlinear functions not currently supported by the global solver:

All probability distributions — cumulative, inverse and pdf, with the exception of the normal distribution, which is fully supported
@PFS() — Poisson finite source
@PPL() — Poisson linear loss
@USER() — User supplied function
Note:The global solver will not operate on models containing one or more unsupported nonlinear operations that reference optimizable quantities; the default NLP solver will be called in this case.
Note:The global solver can run on multiple cores to improve performance.  So, if your machine has multiple cores, be sure to set the thread limit to something higher than 1, with the ideal setting being N, where N is the number of available cores on your machine.   Refer to the Threads parameter on the General Solver Tab, discussed above, for more information on setting the thread limit.

The global solver is disabled by default.