宽容和不良条件-一个警告


容忍和不良条件-一个警告

正如本节中几个地方所指出的,有限精度算法限制了Gurobi计算的解的精度。在大多数情况下,这种限制是通过数值公差来管理的;我们将满足约束条件的解视为违反小于相应的容忍值。默认的容差被选择得足够大,使得数值误差对大多数模型来说都不是问题。

不幸的是,一些模特患有严重的生病的条件,这会使寻找解决方案变得非常复杂。这可以从几个方面表现出来。不良的条件设置会严重损害性能,并且可能导致解决方案的约束违背大于允许值。

病态条件作用是对求解线性方程组时可能产生的误差量的一种度量。如前所述,线性规划和混合整数规划是建立在线性解之上的,因此求解线性系统的误差直接导致LP和MIP解的误差。当求解线性系统的误差与期望的公差相当时,会出现严重的问题。如果要解决一个线性规划问题,要对默认的可行性宽容< span > < / span > 1美元e-6 < span > < / span >美元例如,如果你的线性系统求解产生的误差也是大致的< span > < / span > 1美元e-6 < span > < / span >美元,那么您就无法知道当前的解决方案是否真正可行。这可能会导致振荡,因为你的解仅仅因为数值误差而在可行和不可行之间来回跳跃,这可能会使它非常困难地朝着最优解前进。

当解决线性和二次规划问题时,我们建议您检查最终的原始和双重约束违反。对偶理论指出,如果你的解是原始可行的,对偶可行的,和互补的,那么你就有一个最优解。互补是由单纯形方法自动强制的,因此实现原始和对偶可行性(对公差)确保解决方案是最优的(对公差)。

在求解MIP模型时,不幸的是没有简单的方法来检查结果的最优性。虽然我们努力识别和管理不良条件作用的负面影响,但我们无法提供数学证明,证明返回的解决方案确实是最优的。

有关数字问题的更多信息,请参阅关于数字问题的古罗比指南本手册的一部分。