epsilon (degree of tolerance) used in linearization
Sets the epsilon (degree of tolerance) used in linearization.
Purpose
Epsilon used in linearization
|
Description
Sets the epsilon (degree of tolerance) used in linearization.
This parameter controls how strict inequalities are managed during linearization. In other words,
it provides an epsilon for deciding when two values are not equal during linearization. For example,
when x is a numeric variable (that is, an instance of IloNumVar ),
x < a
becomes
x <= a-eplin .
Similarly, x!=a
becomes
{(x < a) || (x > a)}
which is linearized automatically for you in the object-oriented APIs as
{( x <= a-eplin) || (x >= a+eplin)} .
Exercise caution in changing this parameter from its default value: the smaller the epsilon, the
more numerically unstable the model will tend to become. If you are not getting an expected solution
for an object-oriented model that uses linearization, it might be that this solution is cut off
because of the relatively high EpLin value. In such a case, carefully try reducing
it.
This parameter is also used, for example, to linearize indicator constraints of type
CPX_INDICATOR_ONLYIF and CPX_INDICATOR_IFANDONLYIF. See, for
example, CPXXaddindconstraints and CPXaddindconstraints.
Values
Any positive value greater than zero; default: 1e-3.