如何在没有传统约束的情况下固定变量值

2024-09-29 00:17:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要做修复&;优化启发式,我需要固定一些变量的最后一个值,但没有adition约束,因为问题很大,约束更多更糟

我不想要的例子:

问题添加约束(Y[m,j,t,o]==154,56

我有一个变量[dict]中的初始值,并使用

        for k, v in varsdict.items():
            k.setInitialValue(v) 

对于定义值,但几乎需要修复一个

我使用solve>

solver=pill.CPLEX\u CMD(msg=1,mip\u start=1,timelimit='3600') 问题求解(求解器)

感谢社区


Tags: ingtfor定义itemsdict例子amp
2条回答

谢谢你的回答Daniel,我尝试了这个方法,但是解决方案在启发式中发生了变化。我有5个运行每个fix all变量进行测试检查,目标值不同

   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

您可以直接修改变量的边界,请参见以下相关问题:How do I change the bounds of a LpVariable in PuLP dynamically?

因此,您可以将变量的下限和上限设置为相同的值,变量将是固定的

相关问题 更多 >