When all else fails, try the following parameters to make the
algorithms more robust:
- ScaleFlag, ObjScale (All models)
- It is always best to reformulate a model yourself. However, for cases
when that is not possible, these two parameters provide some of the
same benefits. Set ScaleFlag=2 for aggressive scaling of
the coefficient matrix. ObjScale rescales the objective
row; a negative value will use the largest
objective coefficient to choose the scaling. For example, ObjScale=-0.5 will divide all objective coefficients by the square
root of the largest objective coefficient.
- NumericFocus (All models)
- The NumericFocus parameter controls how the solver manages numerical
issues. Settings 1-3 increasingly shift the focus towards more care
in numerical computations, which can impact performance. The
NumericFocus parameter employs a number of strategies to
improve numerical behavior, including the use of quad precision and
a tighter Markowitz tolerance. It is generally
sufficient to try different values of NumericFocus. However, when NumericFocus helps
numerics but makes everything much slower, you can try setting
Quad=1 and/or larger values of MarkowitzTol
such as 0.1 or 0.5.
- NormAdjust (Simplex)
- In some cases, the solver can be more robust with different values of
the simplex pricing norm. Try setting NormAdjust to 0, 1,
2 or 3.
- BarHomogeneous (Barrier)
- For models that are infeasible or unbounded, the default barrier
algorithm may have numerical issues. Try setting BarHomogeneous=1.
- CrossoverBasis (Barrier)
- Setting CrossoverBasis=1 takes more time but can be more robust when creating
the initial crossover basis.
- GomoryPasses (MIP)
- In some MIP models, Gomory cuts can contribute to numerical issues.
Setting GomoryPasses=0 may help numerics, but it may make the MIP
more difficult to solve.
- Cuts (MIP)
- In some MIP models, various cuts can contribute to numerical issues.
Setting Cuts=1 or Cuts=0 may help numerics,
but it may make the MIP more difficult to solve.
Tolerance values (FeasibilityTol, OptimalityTol,
IntFeasTol) are generally not helpful for addressing numerical
issues. Numerical issues are better handled through model
model reformulation.