将初始值设置为声明为 lpVariable.dicts 的 lpVariable

Set initial values to lpVariable declared as lpVariable.dicts

我需要为我的 lpVariables 分配初始值。 我使用 lpVariable.dicts.

声明了它们

是否可以给它们赋初值?

代码是这样的:

temp_int = [0, 1, 2, 3, 4]

    # set problem variable
    prob = LpProblem("Supply_Chain", LpMinimize)
    
    # decision variables
    Qi_var = LpVariable.dicts("Qi_var", temp_int, lowBound=0, cat='Continuous')
    Wi_var = LpVariable.dicts("Wi", temp_int, lowBound=0, upBound=1, cat=LpInteger)
    Qai_var = LpVariable.dicts("Qai", temp_int, cat=LpInteger)
    Dip_1_var = LpVariable.dicts("Dip_i", temp_int, cat='Continuous')
    
    #constraints
    ....
    
    Qi_var.setInitialValue(0)
    Wi_var.setInitialValue(0)
    Qai_var.setInitialValue(0)
    Dip_1_var.setInitialValue(0)
    
    prob.solve(solver=PULP_CBC_CMD())

输出:

Traceback (most recent call last):
  File "C:\Users\davide.tamagnini.con\AppData\Roaming\JetBrains\PyCharmCE2021.1\scratches\example.py", line 80, in <module>
    Qi_var.setInitialValue(0)
AttributeError: 'dict' object has no attribute 'setInitialValue'

感谢您的帮助

我不确定提供初始值是否对您有帮助。但是如果你真的想尝试你需要遍历字典中的所有变量,即做:

for v in Qi_var.values():
    v.setInitialValue(0)