java - Gurobi 和 java 和 empty 解决方案

标签 java mathematical-optimization linear-programming gurobi

我将 Gurobi 与 Java 结合使用来解决 ILP 问题。 我设置所有并启动程序。但是 Gurobi 甚至没有尝试解决我的问题,而是给我一个空的解决方案,所有变量都设置为 0。

在松弛步骤中,Gurobi 显示函数的最小值为 -246。这与 gurobi 显示最优解为 0 的下一步形成对比。

Gurobi 的输出是:

Optimize a model with 8189 rows, 3970 columns and 15011 nonzeros
Variable types: 0 continuous, 3970 integer (0 binary)
0 0 0 1.0E100 -1.0E100 0 0
**** New solution at node 0, obj 0.0
Found heuristic solution: objective 0.0000000

Root relaxation: objective -2.465000e+02, 4288 iterations, 0.08 seconds

     Nodes    |    Current Node    |     Objective Bounds      |     Work
  Expl Unexpl |  Obj  Depth IntInf | Incumbent    BestBd   Gap | It/Node Time


 0     0 -246.50000    0  315    0.00000 -246.50000     -      -    0s


 Cutting planes:
  MIR: 907

 Explored 0 nodes (5485 simplex iterations) in 0.70 seconds
 Thread count was 1 (of 1 available processors)
 Optimal solution found (tolerance 1.00e-04)
 Best objective 0.000000000000e+00, best bound 0.000000000000e+00, gap 0.0%

最佳答案

Gurobi 报告说它找到了最佳解决方案。所有变量的值为 0 的解决方案是最优的(它不是“空解决方案”)。目标 -246.5 的解是针对松弛问题的。松弛问题忽略了强制变量采用整数值的约束。目标值为 0 的解决方案是原始问题的解决方案。

您报告的症状(您显然不想要的全 0 解决方案)可能是由倒置的目标函数引起的。您是否可能想要最大化而不是最小化?

关于java - Gurobi 和 java 和 empty 解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7445969/

相关文章:

java - Jsoup 抓取嵌入标签

java - Java POJO中如何转换json字符串

java - 调用方法时将数组初始化为参数

python - "pathological"凸函数的快速优化

c++ - 创建 IloObjective 的正确方法

java - Gurobi 800,Java,检索变量数量返回零

java - 如何在 Selenium Webdriver 中处理 'connection has timed out'

matlab - Matlab 中使用随机梯度下降进行矩阵分解

mathematical-optimization - 最佳开源混合整数优化求解器

algorithm - 带正方形的网格的最小精确覆盖;额外削减