[英]UserWarning: Overwriting previously set objective. warnings.warn(“Overwriting previously set objective.”)
[英]Python PuLP “Overwriting previously set objective.” and __dummy = None
我已经在Python PuLP
构建了一个非常复杂的MIP。 显然对我来说有点复杂。 当我运行它时,它发出以下警告:
用户警告:覆盖先前设置的目标。 warnings.warn(“覆盖先前设置的目标。”)
该问题进行了一些计算,但未达到预期的解决方案。
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
现在,它将等式而不是值添加到概率中。
我希望这可以帮助遇到类似问题的任何人。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.