用户警告:覆盖先前设置的目标。 warnings.warn(“覆盖先前设置的目标。”)

时间:2018-07-11 09:35:47

标签: python pandas

我是大熊猫-初学者,需要您的帮助。我真的不知道为什么会出现这个特定的消息)(覆盖以前设置的目标[...]。 据我所知,我没有覆盖任何内容。

我创建了一个非常简单的示例。 有人可以帮我吗?

谢谢

import pandas as pd
import numpy as np
from pulp import *


a = {'a' :7, 'b': 4, 'c': 4, 'd': 6, 'e': 2, 'f':1, 'g': 3, 'h': 4, 'i': 6, 'j': 1}

b = {'a' :0, 'b': 0, 'c': 0, 'd': 0, 'e': 0, 'f':0, 'g': 0, 'h': 0, 'i': 0, 'j': 0}

c = {'a' :10, 'b': 10, 'c': 10, 'd': 10, 'e': 10, 'f':10, 'g': 10, 'h': 10, 'i': 10, 'j': 10}


prob = LpProblem("Problem",LpMinimize)

p_el = pulp.LpVariable.dict( 
        "p_el_%s", range(0,2), lowBound=0, upBound=10, cat="Continuous") 

for t in range(0,2): 

    prob += ((p_el[t] + a[list(a.keys())[t]] + b[list(b.keys())[t]])) , "Total Sum"


    prob += p_el[t] + a[list(a.keys())[t]] + b[list(b.keys())[t]] == c[list(c.keys())[t]]        



    prob.writeLP("Problem.lp")
    prob.solve()


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

1 个答案:

答案 0 :(得分:0)

您对概率增量进行了错误的操作。这是执行顺序,
1.循环从值t = 0开始。工作正常。 2.问题始于增加“ prob”对象。如果您看到我的屏幕截图,则尝试将增量值“ 1 * p_el_0 + 4”再次分配给问题。 3.如果添加表达式(不是约束),它将成为目标

我发现在纸浆内部编写的代码具有一种破解增量的神奇方法,该方法通常检查称为self.objective的对象是否为None。
,因为在我们的例子中不是“无”,它已经持有““ 1 * p_el_0 + 7”,从而导致设置数据结构失败。

请检查您的概率声明分配。

enter image description here