72. GLOBAL
Many nonlinear models are non-convex and/or non-smooth (for more information see 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 the global solutions to non-convex models. LINGO has a global solver capability that is enabled through the GLOBAL parameter. Setting GLOBAL to 1 will enable the global solver on nonlinear models, while setting it to 0 (the default) will not.
The following example illustrates the power of the global solver on a non-smooth model. Consider the following model:
model:
sets:
projects: baths, sqft, beds, cost, est;
endsets
data:
projects, beds, baths, sqft, cost =
p1 5 4 6200 559608
p2 2 1 820 151826
p3 1 1 710 125943
p4 4 3 4300 420801
p5 4 2 3800 374751
p6 3 1 2200 251674
p7 3 2 3400 332426
;
enddata
min = @max( projects: @abs( cost - est));
@for( projects:
est = a0 + a1 * beds + a2 * baths + a3 * sqft
);
end
Model: COSTING
This model estimates the cost of home construction jobs based on historical data on the number of bedrooms, bathrooms, and square footage. The objective minimizes the maximum error over the sample project set. Both the @MAX() and @ABS() functions in the objective are non-smooth, and, as a result, can present problems for LINGO’s default, local search NLP solver. Running the model under the default settings with the global solver disabled, we get the following result:
Local optimal solution found at step: 91
Objective value: 3997.347
Variable Value Reduced Cost
A0 37441.55 0.000000
A1 27234.51 0.000000
A2 23416.53 0.000000
A3 47.77956 0.000000
Enabling the global solver with the SET GLOBAL 1 command and re-optimizing yields the substantially better solution:
Global optimal solution found at step: 186
Objective value: 1426.660
Variable Value Reduced Cost
A0 46814.64 0.000000
A1 22824.18 0.000000
A2 16717.33 0.000000
A3 53.74674 0.000000
Note that the maximum error has been reduced from 3,997 to 1,426!
This example illustrates the power of the global solver. Unfortunately, there is a drawback. You will find the global solver runs considerably slower than the default local solver, and may be swamped when trying to solve larger models. Therefore, the preferred option is to always try to create smooth, convex models, so that the faster, default local solver can successfully solve them.
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. |
The global solver is disabled by default.