我有一个MIP模型(Gurobi),该模型包含以下约束:
model.addConstr(rawOutputVar == rawInputVar * edge->getMultiplicator());
rawOutputVar
和rawInputVar
都是连续变量。 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);
基本上是一样的。现在,它可以正常工作。
我想知道为什么我的第一次尝试无法正常工作。我是从根本上做错了吗?