ILOG CPLEX 10.1 User's Manual > Continuous Optimization > Solving LPs: Barrier Optimizer > Overcoming Numeric Difficulties |
Overcoming Numeric Difficulties |
INDEX
![]() |
As noted in Differences between Barrier and Simplex Optimizers, the algorithms in the barrier optimizer have very different numeric properties from those in the simplex optimizer. While the barrier optimizer is often extremely fast, particularly on very large problems, numeric difficulties occasionally arise with it in certain classes of problems. For that reason, it is a good idea to run simplex optimizers in conjunction with the barrier optimizer to verify solutions. At its default settings, the ILOG CPLEX Barrier Optimizer always crosses over after a barrier solution to a simplex optimizer, so this verification occurs automatically.
Before you try tactics that apply to specific symptoms, as described in the following sections, a useful ILOG CPLEX parameter to try is the numerical emphasis parameter.
NumericalEmphasis
in Concert Technology
CPX_PARAM_NUMERICALEMPHASIS
in the Callable Library
emphasis numerical
in the Interactive Optimizer
Unlike the following suggestions, which deal with knowledge of the way the barrier optimizer works or with details of your specific model, this parameter is intended as a way to tell ILOG CPLEX to exercise more than the usual caution in its computations. When you set it to its nondefault value specifying extreme numerical caution, various tactics are invoked internally to try to avoid loss of numerical accuracy in the steps of the barrier algorithm.
Be aware that the nondefault setting may result in slower solution times than usual. The effect of this setting is to shift the emphasis away from fastest solution time and toward numerical caution. On the other hand, if numerical difficulty is causing the barrier algorithm to perform excessive numbers of iterations due to loss of significant digits, it is possible that the setting of extreme numerical caution could actually result in somewhat faster solution times. Overall, it is difficult to project the impact on speed when using this setting.
The purpose of this parameter setting is not to generate "more accurate solutions" particularly where the input data is in some sense unsatisfactory or inaccurate. The numerical caution is applied during the steps taken by the barrier algorithm during its convergence toward the optimum, to help it do its job better. On some models, it may turn out that solution quality measures are improved (Ax-b residuals, variable-bound violations, dual values, and so forth) when ILOG CPLEX exercises numerical caution, but this would be a secondary outcome from better convergence.
Understanding Solution Quality from the Barrier LP Optimizer lists the items that ILOG CPLEX displays about the quality of a barrier solution. If the ILOG CPLEX Barrier Optimizer terminates its work with a solution that does not meet your quality requirements, you can adjust parameters that influence the quality of a solution. Those adjustments affect the choice of barrier algorithm, the limit on barrier corrections, and the choice of starting-point heuristic--topics introduced in Tuning Barrier Optimizer Performance and recapitulated here in the following subsections.
The ILOG CPLEX Barrier Optimizer implements the algorithms listed in Table 9.9. The selection of barrier algorithm is controlled by the BarAlg
parameter. The default option invokes option 3
for LPs and QPs, option 1
for QCPs, and option 1
for MIPs where the ILOG CPLEX Barrier Optimizer is used on the subproblems. Naturally, the default is the fastest for most problems, but it may not work well on LP or QP problems that are primal infeasible or dual infeasible. Options 1
and 2
in the ILOG CPLEX Barrier Optimizer implement a barrier algorithm that also detects infeasibility. (They differ from each other in how they compute a starting point.) Though they are slower than the default option, in a problem demonstrating numeric difficulties, they may eliminate the numeric difficulties and thus improve the quality of the solution.
BarAlg Setting |
Meaning |
---|---|
0 |
default |
1 |
algorithm starts with infeasibility estimate |
2 |
algorithm starts with infeasibility constant |
3 |
standard barrier algorithm |
The default barrier algorithm in the ILOG CPLEX Barrier Optimizer computes an estimate of the maximum number of centering corrections that ILOG CPLEX should make on each iteration. You can see this computed value by setting barrier display level two, as explained in Interpreting the Barrier Log File, and checking the value of the parameter to limit corrections. (Its default value is -1
.) If you see that the current value is 0
(zero), then you should experiment with greater settings. Setting the parameter BarMaxCor
to a value greater than 0
(zero) may improve numeric performance, but there may also be an increase in computation time.
As explained in Using a Starting-Point Heuristic, the default starting-point heuristic works well for most problems suitable to barrier optimization. But for a model that is exhibiting numeric difficulty it is possible that setting the BarStartAlg
to select a different starting point will make a difference. However, if you are preprocessing your problem as dual (for example, in the Interactive Optimizer you issued the command set preprocessing dual
), then a different starting-point heuristic may perform better than the default. To change the starting-point heuristic, see Table 9.8.
Copyright © 1987-2006 ILOG S.A. All rights reserved. Legal terms. | PREVIOUS NEXT |