如何迭代目标函数

时间:2019-08-29 08:25:25

标签: python-2.7 gurobi

我想在目标函数中增强某些术语。

  series: [{
    type: 'column',
    data: [
      [
        startOfYear.valueOf(),
        150
      ],
      [
        endOfYear.valueOf() - 30 * 24 * 60 * 60 * 1000,
        100
      ]
    ]
  }]

变量i应该从1到Tst和T中的元素数 分别。 因此,如果Tst中的t为[2020,2021,2022],则I [2020]乘以1.05 ** (-1) I [2021]的1.05 **(-2)和I [2022]的1.05 **(-3)。 与Z [t]相同,只是T的列表大于Tst。

model.addConstr(KW == quicksum(I[t] *(1.05**(-i)) for t in Tst + Z[t] 
* (1.05**(-j)) for t in T)

model.setObjective(KW,GRB.MAXIMIZE)
model.optimize()

但是KW始终为0,而​​不应为0。我想念什么?

1 个答案:

答案 0 :(得分:0)

我刚刚创建了第二本字典

Expo = {}
i=1
for t in T:
    Expo[t] = i
    i = i + 1

如果我这样做:

model.addConstr(KW == quicksum(I[t] *(1.05**(Expo[t])) for t in Tst + Z[t] 
* (1.05**(Expo[t])) for t in T)

model.setObjective(KW,GRB.MAXIMIZE)
model.optimize()

它做了我想要的。但我认为这不是一个很好的解决方案:P