DOCPLEX: 热启动!从一个解开始

热启动

热启动 (warm start)是设置一个不错的初始解,能有效加快混合整数规划的求解,下面是DOCPLEX 进行热启动的程序

from docplex.mp.model import Model

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)

warmstart=mdl.new_solution()
warmstart.add_var_value(nbbus40,8)
warmstart.add_var_value(nbbus30,0)
mdl.add_mip_start(warmstart)


sol=mdl.solve(log_output=True)

for v in mdl.iter_integer_vars():
    print(v," = ",v.solution_value)

输出

运行该程序,输出如下:

posted @ 2024-12-25 14:13  空空小谢  阅读(53)  评论(0)    收藏  举报