0

我正在使用带有 Java 的求解器 Gurobi;我阅读了所有 Gurobi 的参考手册,但我仍有一些问题

  1. 可以优化没有目标函数的模型还是我必须放一个?
  2. 可以添加像“x=0 if c>a”这样的约束,其中 x 是决策变量并且 c 和 a 是已知的?

有人可以帮助我吗?

谢谢。

4

1 回答 1

1
  1. 你不需要有一个目标函数,但如果你没有,Gurobi 会考虑任何可行的解决方案和下一个一样好,即使是(对你来说)显然不是你想要的。

  2. 在使用 Java(或几乎任何接口)求解 Gurobi 模型时,您可以区分在获得 Gurobi 解决方案之前已知的值和在获得解决方案之前不知道的值。第一种情况包括纯 Java 变量和硬编码常量。后者包括决策变量。在您的示例中,您可以编写类似

    if (c > a) { grb.addConstr(x, '=', 0); }

因为 c 和 a 都是 Java 变量,而不是决策变量。如果 c 或 a 是决策变量,您仍然可以对约束进行建模,但您需要添加二进制变量。

于 2014-10-17T19:23:50.897 回答