高级用户扩展

高级用户扩展

在前几节中,我们介绍了一些简单的策略来限制变量边界、约束右边、目标值和约束矩阵系数的范围。然而,由于缩放约束或变量,一些约束系数可能变得太小。请注意,Gurobi将处理绝对值小于的任何约束系数< span > < / span > 10美元^ {-13}< span > < / span >美元为零。考虑下面的例子:

\ {eqnarray *}开始10 ^ {7}10 x + y & \ leq& 10 \ \ x + 10 ^ 4 z \ leq&10 ^ 3 \ \ x, y, z \ geq&0 \ {eqnarray *}


在这个例子中,矩阵系数的范围是 < span > < /美元跨度> [10 ^ {7},10 ^ 4)< span > < / span >美元.如果我们把它们相乘< span > < /美元跨度> x < span > < / span >美元系数的< span > < / span > 10 ^ 5美元美元< span > < / span >,并将第二个约束中的所有系数除以< span > < / span > 10 ^ 3美元美元< span > < / span >,我们得到:

\开始10 ^ {eqnarray *} {2} x + y & \ leq& 10 \ \ 10 ^ 2 x + 10 z \ leq&1 \ \ x, y, z \ geq&0 \ {eqnarray *}结束


在哪里< span > < / span > x = 10 ^ 5美元美元x ' < span > < / span >.得到的矩阵系数有一个范围 < span > < /美元跨度> [10 ^ {2},10 ^ 2)< span > < / span >美元.关键在于同时缩放列和行,使系数矩阵的范围更小。

我们建议您缩放矩阵系数,使其范围包含6个数量级或更小,希望在6个数量级之内< span > < /美元跨度> [10 ^ {3},10 ^ {6}]< span > < / span >美元