Axe*_*xel 1 python warnings pulp
我已经在Python中构建了一个非常复杂的MIP PuLP。显然对我来说有点复杂。当我运行它时,它发出以下警告:
用户警告:覆盖先前设置的目标。warnings.warn(“覆盖先前设置的目标。”)
该问题进行了一些计算,但未达到预期的解决方案。
该LpStatus[prob.status]收益Optimal
该prob.objective收益None
当我prob.variables()用
for v in prob.variables():
print(v.name, "=", v.varValue)
Run Code Online (Sandbox Code Playgroud)
我__dummy = None介于其他变量之间。
谁能解释__dummy = None在这种情况下的含义?我在哪里可以找到解决方案?我非常确定我只有一个目标函数。
好吧,我找到了解决方案。我确实重写了目标功能而没有注意到它。
这是引起警告的代码:
for i in range(len(items)):
for l in range(L):
prob += delta[0-l] == 0
Run Code Online (Sandbox Code Playgroud)
delta变量是一个列表列表。缺少第一个索引,因此程序将列表与零进行了比较。由于这是不可能的,因此等式始终返回false(可能被编码为零),然后将其解释为目标函数。
这解决了问题:
for i in range(len(items)):
for l in range(L):
prob += delta[i][0-l] == 0
Run Code Online (Sandbox Code Playgroud)
现在,它将等式而不是值添加到概率中。
我希望这可以帮助遇到类似问题的任何人。