我想在目标函数中增强某些术语。
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。我想念什么?
答案 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