如何解决Gurobi 嵌套目标函数
我是 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 举报,一经查实,本站将立刻删除。