我需要进行Fix&Optimize启发式操作,并且需要修复某些变量的最后一个值,但没有附加约束,因为问题很大,而且约束更严重。
我不想要的示例:
prob.addConstraint(Y [m,j,t,o] == 154,56。
我在变量[dict]中具有初始值,并使用
for k, v in varsdict.items():
k.setInitialValue(v)
用于定义值,但需要修复几乎一个。
我使用solve>
求解器=纸浆.CPLEX_CMD(msg = 1,mip_start = 1,时限='3600') prob.solve(solver)
感谢社区
答案 0 :(得分:0)
您可以直接修改变量的边界,请参见以下相关问题:How do I change the bounds of a LpVariable in PuLP dynamically?
因此,您可以将变量的下限和上限设置为相同的值,变量将被固定。
答案 1 :(得分:0)
谢谢您的回答丹尼尔,我尝试了这种方法,但是解决方案在启发式方法上有所变化。我每次都运行5个修复所有变量以进行测试检查,并且目标值不同。
for k, v in varsdict.items():
k.setInitialValue(v)
k.lowBound= v
k.upBound=v prob.solve.pulp.CPLEX_CMD(msg=1, timelimit = time_limit)
解决方案是:运行FO
1 202397489,1
2 202397489,1
3 265216100
4 202397489,1
5 265216100