Gurobi公差和双精度运算的局限性

这些原始的默认值和双可行性公差< span > < / span > 10美元^ {6}< span > < / span >美元,完整性和默认的公差是多少< span > < / span > 10美元^ {5}< span > < / span >美元。如果你选择正确的不平等和变量的范围,通常你可以完全忽略了公差问题。

举个例子,如果你的约束右边的顺序< span > < / span > 10 ^ 3美元< span > < / span >美元,然后从计算相对数值错误涉及约束(如果有的话)可能会小于< span > < / span > 10美元^ {9}< span > < / span >美元,即,不到十亿分之一。这通常是远比输入数据的准确性更准确,在实践中甚至可以测量的。

然而,如果你定义一个变量< span > < / span >美元x \ [-10 ^ {6}, 10 ^ {6}] < span > < / span >美元相对数字错误,那么可能高达50%的变量范围。

另一方面,如果你有一个变量< span > < / span >美元x \ [-10 ^ {10}, 10 ^ {10}] < span > < / span >美元,你是使用默认的可行性公差;那么你真的问的相对数值错误(如果有的话)小于< span > < / span > 10美元^ {-16}< span > < / span >美元。然而,这是超越极限的比较双精度数字。这意味着你是不允许任何舍入错误在测试这个变量可行的解决方案。虽然这听起来像一个好主意,事实上,这是非常糟糕的,因为任何舍入计算可能会导致你的真正最优解被拒绝是不可行的。