在MIP模型中忽略平等约束

时间:2019-01-23 20:34:48

标签: c++ linear-programming gurobi mixed-integer-programming

我有一个MIP模型(Gurobi),该模型包含以下约束:

model.addConstr(rawOutputVar == rawInputVar * edge->getMultiplicator());

rawOutputVarrawInputVar都是连续变量。 edge->getMultiplicator()返回一小双。

运行模型时,我看到约束被“忽略”。 rawInputVar的值设置为0,而rawOutputVar的值很大,其中edge->getMultiplicator()0.0000346。等式变为:

100000000 == 0 * 0.0000346

这显然是错误的。 Gurobi报告该解决方案为最优。我将等式替换为

model.addConstr(rawOutputVar <= rawInputVar * edge->getMultiplicator());
model.addConstr(rawInputVar * edge->getMultiplicator() <= rawOutputVar);

基本上是一样的。现在,它可以正常工作。

我想知道为什么我的第一次尝试无法正常工作。我是从根本上做错了吗?

0 个答案:

没有答案