问题描述
我是 Gurobi 的新手,我需要帮助在目标函数中实现嵌套求和,如下所示:
max ∑_(t∈T)∑_(i∈I)w_(i,t)(∑_(k∈K)(1-p_t)p_t^(k-1)y_(ik,t) )
I = [1,2,3,4]
J = [1,2]
K = [1,4,5,6,7]
T = [1,4]
distance = { 1 : 10,2 : 10,3 : 10,4: 10}
a = {
(1,1): { 1 : 1,2 : 0,3 : 0,4 : 0},(1,2) : { 1 : 0,2 : 1,3: 1,3) : { 1 : 0,4) : { 1 : 0,(2,3): { 1 : 1,4 : 0}
}
#w_{i,t}
w_it = {
1: { 1 : 500,2 : 1000,3 : 300,4 : 300},2 : { 1 : 600,2 : 500,3: 200,3 : { 1 : 300,2 : 600,3 : 0,4 : 0},4 : { 1 : 200,2 : 300,3 : 400,4 : 500},}
w = { (dem,t) : w_it[dem][t] for dem in I for t in T }
M = { 1 : 10,4: 10}
P = { 1 : 1,4: 1}
upper_dict2 = {
1: { 1 : 500,4 : 0}
}
upper2 = {(cand_loc,t) : upper_dict2[cand_loc][t] for cand_loc in J for t in T }
model = gb.Model()
u = model.addVars(J,T,name='u',vtype=gb.GRB.CONTINUOUS)
y = model.addVars(I,K,name='y',vtype=gb.GRB.BINARY)
model.setobjective(gb.quicksum(w[i,t] * gb.quicksum(P[t]*y[i,k,t] for k in K) for i in I for t in T),gb.GRB.MAXIMIZE)
I 是需求点的集合 J 是救护站候选位置的集合。 K 是救护车的集合。 T 是时间间隔的集合。
p_t 是救护车在时间间隔 t∈T 内不工作的概率。 w_it 是需求点 i∈I 在时间间隔 t∈T 的人口规模。 yik,t 是一个等于 1 的决策变量,如果需求点 i∈I 在时间间隔 t∈T 被至少 k∈K 辆救护车覆盖;否则为 0。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)