我用cplex python (docplex)执行了一个程序,它已经达到了48%的差距,有41个解决方案。已经2天了,我问我是否可以中断它并得到一个结果,而不是重新启动具有限制间隙的执行。
发布于 2021-06-09 22:54:56
如果你在Windows上运行,你可以尝试CTRL C
如果这不起作用,
你可以做的就是每次用一个新的解决方案再次运行你的模型,然后保存当前的解决方案,然后每次中止你都有最新的解决方案
使用zoo story的示例
from docplex.mp.model import Model
from docplex.mp.progress import *
mdl = Model(name='buses')
nbbus40 = mdl.integer_var(name='nbBus40')
nbbus30 = mdl.integer_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(nbbus40*500 + nbbus30*400)
mdl.parameters.mip.limits.solutions=1
while mdl.solve(log_output=False):
for v in mdl.iter_integer_vars():
print(v," = ",v.solution_value)
print("status : ",mdl.solve_details.status)
if ("optimal solution" in str(mdl.solve_details.status)):
break这就给了我们
nbBus40 = 8.0
nbBus30 = 0
status : solution limit exceeded
nbBus40 = 7.0
nbBus30 = 1.0
status : solution limit exceeded
nbBus40 = 6.0
nbBus30 = 2.0
status : integer optimal solutionhttps://stackoverflow.com/questions/67901503
复制相似问题