首页 > 解决方案 > 我怎样才能最好地使用我的目标函数来快速找到*一个*可行的解决方案(Gurobi)?

问题描述

我有一个有效的 ILP Gurobi 模型(仅限二进制变量)。减少运行时间并找到可行的解决方案对我来说比最优解决方案更有价值。将我的 SolutionLimit 减少到 1 确实有帮助。我意识到我的目标函数是将数十万个变量加在一起。如果我不真正关心最优性,我可以以某种方式简化我的目标函数以减轻求解器的负担吗?
这是我当前的目标函数:

m.setObjective(quicksum(h[x,y,c,p,t] + v[x,y,c,p,t]
    for x in range(0,Nx)
    for y in range(0,Ny)
    for c in range(0,C)
    for p in range(0,P)
    for t in range(0,T)), GRB.MINIMIZE)

标签: linear-programmingsolvergurobi

解决方案


我不想吹毛求疵,但没有“更优”的解决方案——“最优”已经是最高级的了。如果您真的只是在寻找可行的解决方案而不考虑目标函数,您应该遵循 Erwin 的建议,并且根本不要设置目标函数。但是,很难相信您当前的目标函数完全没有意义,因此更好的方法可能是减少目标函数以仅包含几个变量,并设置更高的 MIPGap 以提前终止求解。


推荐阅读