公差对二进制变量的影响?

问题描述 投票:0回答:1

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

constraints cplex opl
1个回答
0
投票

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

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

对于二进制变量,您还可以使用value < 0.5 ? 0 : 1之类的方法将结果显式转换为整数值。

© www.soinside.com 2019 - 2024. All rights reserved.