manbet体育手机客户端


变量

决策变量捕获优化的结果。在可行解中,决策变量的计算值满足模型的所有约束条件。其中一些约束与单个变量相关(例如变量边界),而其他约束则捕捉变量之间的关系。我们将首先考虑可以添加到Gurobi模型的不同类型的决策变量,以及与这些变量类型相关联的隐式和显式约束。

在开始之前,我们应该指出关于数学规划模型中的变量的一个重要问题:它们的计算解值只满足界对公差,这意味着变量可能会违反其规定的边界。数学规划基本上是建立在线性代数的基础上,特别是建立在线性方程组的数值解上。这些线性系统是用有限精度算法求解的,这意味着小误差是不可避免的。对于某些模型,大的误差也是不可避免的;在本节的后面,我们将回到这个主题。

可用的变量类型包括连续一般整数二进制半连续,semi-integer

连续变量

可用变量类型中最简单、约束最小的是连续变量。这个变量可以接受它的上下边界之间的任何值。在数学规划中,惯例是变量是非负的,除非另有说明,所以如果你没有明确地为变量提供界限,你应该假设下界是0,上界是无限的。

gurobiapi提供了一个符号常量,允许您指示边界是无限的(GRB_INFINITY在C和c++中,伽马射线爆发。∞在c#, Java和Python中)。一个变量可以有一个无限的上界,一个无限的下界(负无穷),或者两者都有。具有无限上界和下界的变量称为A自由变量.任何大于1e30的边界都被视为无限。

如前所述,变量可能会违反它们的容限。在变量边界的情况下,相关的公差值是FeasibilityTol。您可以减小此公差参数的值,但由于数值错误,可能无法达到所需的精度。

一般整数变量

一般整数变量比连续变量更受约束。除了尊重指定的上下限,整型变量也取整型值。

由于有限精度算法的限制,整型变量通常取的值不是完全整数。允许的完整性破坏的大小由IntFeasTol参数。您可以收紧此参数以减少这些完整性违反的程度,但是解决优化问题的成本可能会因此显著增加。

现代计算机使用32位值表示整数值的事实对整变量的范围造成了一些限制。具体来说,整变量的最大和最小边界为+/-2000000000。此外,具有无限边界的整变量实际上将这些值作为其隐式边界除非所有整变量的值都满足这些界限,否则解决方案被认为是不可行的。

二元变量

二进制变量是可以添加到模型中的最受约束的变量类型。二进制变量的值为0或1。

同样,由于有限精度算法的限制,二进制变量通常取的值不是完全整数。允许的完整性破坏的大小由IntFeasTol参数。

半连续半整变量

您还可以向模型中添加半连续或半整数变量。半连续变量具有一个属性,它的值为0,或在指定的上下边界之间的值。半整数变量增加了额外的限制,即该变量也接受整数值。

同样,这些变量可能违反这些限制,达到公差。在这种情况下,相关的公差是IntFeasTol(即使是半连续变量)。