首页 > 解决方案 > 公差对二元变量的影响?

问题描述

我正在使用 OPL CPLEX 12.9。在我的模型中,dvar float + 变量忽略非负性条件并返回值 -4.4409e-16。我已经读到这是由于 Cplex 的容差。这也不会影响实际过程。它仍会以值 0 计数。但是,它似乎会影响二进制变量。因为同时我模型中的二元变量也忽略了它们的约束。二进制变量无视它们的约束是不可取的 连接是否可能,我该如何避免它?

标签: constraintscplexopl

解决方案


正如对您问题的评论中所述,这是所有类型变量的预期行为(由于数字舍入)。

如果您想增加整数/二进制变量具有精确整数值的机会,可以将CPX_PARAM_EPINT参数(“整数容差”)设置为 0。在 OPL 设置编辑器中,您可以通过Mixed Integer Programming > Tolerances.

对于二进制变量,您还可以使用类似value < 0.5 ? 0 : 1.


推荐阅读