我想使用 COIN-CBC(或 PuLP 提供的任何其他免费 MIP 求解器)求解一个小型混合整数程序,但时间限制为 10 秒。但是, maxSeconds 参数似乎对我不起作用。
举个例子,我这样调用没有时间限制的求解器:
prob.solve(pulp.PULP_CBC_CMD())
Run Code Online (Sandbox Code Playgroud)
我这样称呼它有时间限制:
prob.solve(pulp.PULP_CBC_CMD(maxSeconds=10))
Run Code Online (Sandbox Code Playgroud)
前者在 50.89 秒后终止,解值为 15.65287864835175。后者在 53.53 秒后终止,解值为 15.65287864835175。我预计它会在(大约)10 秒内终止,可能具有更高的解值。
(我知道这篇文章:Time limit for mix integerprogramming with Python PuLP。但它的答案参考了 CPLEX 和 GUROBI,我无法使用它们;我需要一个免费的求解器。)
难道我做错了什么?