【发布时间】:2019-12-11 09:41:58
【问题描述】:
我目前正在实施自己的启发式方法来解决 gurobi python 界面中的 MILP 问题。我所有的变量在开始时都是连续的,在某个时间点,解变成整数,这是我的终止条件。
现在,为了检查变量的二进制性,我遍历所有变量并检查它们是 0 还是 1,如下所示:
for var in model.getVars():
if (var.x >= intFeasTol and var.x <= 1.0-intFeasTol):
break
在哪里intFeasTol = 10^-4。我正在尝试查看最佳解决方案中的任何变量值是否在公差范围内不是 0 或 1。
是否有更好的方法或 api 调用来检查解决方案是否是二进制的?
【问题讨论】:
-
这个条件对于解值 >= intFeasTol 的所有变量都为真 - 与条件的第二部分是否为真无关。因此,例如,您没有区分 0.5 和 1.0。这需要是
and运算符。 -
@mattmilten 我在手机上输入问题,但无法访问我的源代码。我解决了这个问题。
标签: linear-programming gurobi mixed-integer-programming