0

此处说明“定义用于优化混合整数问题的SimplexSolver分支定界搜索”。这应该意味着它找到了给定任务的整数解,但它找到了具有双精度值的精确解。

有没有办法强制它找到一个整数解决方案,或者我应该在给定的双重解决方案之上实现我自己的分支定界?

4

1 回答 1

1

有没有办法强制它找到一个整数解决方案,或者我应该在给定的双重解决方案之上实现我自己的分支定界?

无需实现 B&B 算法,只需将变量声明为整数,SimplexSolver 应该能够解决它并提供整数最优解。请参见此处的示例。下面的相关片段:

SimplexSolver solver = new SimplexSolver();

// ...

for (int i = 0; i < 5; i++) {
  solver.AddVariable(string.Format("project{0}", i),
                      out chooseProjectX[i]);
  solver.SetBounds(chooseProjectX[i], 0, 1);
  solver.SetIntegrality(chooseProjectX[i], true);
  // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  solver.SetCoefficient(profit, chooseProjectX[i],
                         estimatedProfitOfProjectX[i]);
  solver.SetCoefficient(expenditure, chooseProjectX[i],
                         capitalRequiredForProjectX[i]);
}
于 2016-04-06T08:46:01.493 回答