如何使用python正确索引gurobi嵌套for循环中的变量?

时间:2017-05-13 14:50:29

标签: python-3.x loops for-loop indexing gurobi

我正在尝试使用Gurobi为优化模型添加约束。我在约束中有一些术语引用当前小时(正在循环),' next'小时(小时+1),以及一些固定的约束(即max_power_ramp)。

代码示例如下

for hour in hours:
    if hour > hours[0]:
        for i in num_gen:
            model.addConstr((p_upper[hour, i] <= p[hours[hours.index(hour) - 1], i] + 
                             max_ramp_up[i] * v[hours[hours.index(hour) - 1], i] + 
                                startup_ramp[v[hour, i]] - v[hours[hours.index(hour)-1], i] 
                                    + max_power[i] * (1 - v[hour,i])), name="power ramp up")

num_gen和hours变量都是范围变量。这个问题似乎与我引用v[hours[hours.index(hour) - 1], i]

等变量的方式有关

当我调试代码时,就单个单元格引用而言,一切似乎都很好,但是当我尝试完成max_ramp_up[i] * v[hours[hours.index(hour) - 1], i]&amp; max_power[i] * (1 - v[hour,i]) - 它返回的错误如:

ipdb> max_ramp_up[i] * v[hours[hours.index(hour) - 1], i]
*** gurobipy.GurobiError: Index out of range for attribute 'VarName'

0 个答案:

没有答案