SimplexSolver
表示return View(new { url = returnUrl });
"定义用于优化混合整数问题的分支定界搜索。{34}这应该意味着它找到给定任务的整数解,但它找到一个具有double值的精确解。
有没有办法强制它找到一个整数解决方案,或者我应该在给定的双解决方案之上实现我自己的分支和绑定?
答案 0 :(得分:1)
有没有办法强制它找到一个整数解决方案,或者我应该在给定的双解决方案之上实现我自己的分支和绑定?
无需实现B& B算法,只需将变量声明为整数,SimplexSolver应该能够解决它并提供整数最优解。见example here。以下相关摘要:
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]);
}