Python PuLP "Overwriting previously set objective."和 __dummy = 无

标签 python warnings pulp

我用 Python PuLP 构建了一个非常复杂的 MIP。显然对我来说有点太复杂了。当我运行它时,它会发出以下警告:

UserWarning: Overwriting previously set objective. warnings.warn("Overwriting previously set objective.")

该问题执行了一些计算,但未得出预期的解决方案。

LpStatus[prob.status] 返回Optimal

prob.objective 返回None

当我用

打印 prob.variables()
for v in prob.variables():
    print(v.name, "=", v.varValue)

我在其他变量之间得到 __dummy = None

谁能解释一下 __dummy = None 在这种情况下的含义?我在哪里可以找到解决方案?我非常确定我只有一个目标函数。

最佳答案

好的,我找到了解决方案。我确实在没有注意到的情况下覆盖了目标函数。

这是导致警告的代码片段:

for i in range(len(items)):
        for l in range(L):
            prob += delta[0-l] == 0

delta 变量是列表的列表。第一个索引丢失,因此程序将列表与零进行比较。由于这是不可能的,方程总是返回 false(可能编码为零),然后将其解释为目标函数。

这解决了问题:

for i in range(len(items)):
        for l in range(L):
            prob += delta[i][0-l] == 0

现在它向概率添加方程而不是值。

我希望这可以帮助遇到类似问题的任何人。

关于Python PuLP "Overwriting previously set objective."和 __dummy = 无,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46671620/

相关文章:

gradle - Gradle未显示突出显示的警告

android - getContentResolver 查询导致 CursorWrapperInner 警告

python - 将所有组合存储在列表中时如何避免内存错误

ios - NSMutableArray 中的递减

python - 使用 Pulp 更新约束

Python - 使用 2 个键调用字典

python - 有效计算图像上所有像素到样条曲线的距离

python - Django - 在模板列表中获取元素索引

python - PyTorch 中是否有提取图像补丁的功能?

python - 如何修改 pandas DataFrame 中的单元格?