此处说明“定义用于优化混合整数问题的SimplexSolver
分支定界搜索”。这应该意味着它找到了给定任务的整数解,但它找到了具有双精度值的精确解。
有没有办法强制它找到一个整数解决方案,或者我应该在给定的双重解决方案之上实现我自己的分支定界?
此处说明“定义用于优化混合整数问题的SimplexSolver
分支定界搜索”。这应该意味着它找到了给定任务的整数解,但它找到了具有双精度值的精确解。
有没有办法强制它找到一个整数解决方案,或者我应该在给定的双重解决方案之上实现我自己的分支定界?
有没有办法强制它找到一个整数解决方案,或者我应该在给定的双重解决方案之上实现我自己的分支定界?
无需实现 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]);
}