【发布时间】:2017-03-16 11:19:35
【问题描述】:
整数规划。 我尝试在 Cplex 中建模以下约束:
∑i ∑(τ=s-Dur(i)+1)to s x_(i,r,t,τ) ≤1, ∀r,∀t,∀s]
其中 x_(i,r,t,s) 是决策变量。 变量τ=s-Dur(i)+1 用作辅助变量。 无法对包含数组的总和进行建模。谢谢。
range I = 1..operations;
range J = 1..surgeons;
range T = 1..timeBlock;
range S = 1..timePeriod;
range R = 1..room;
int Duration[I] =...;
//DVars
dvar int assignment[I][R][T][S] in 0..1;
//Objective function
maximize sum (i in I, r in R, t in T, s in S) (Duration[i] * assignment[i][r][t][s]);
// constraint
forall (r in R, t in T, s in S)
{
sum(i in I, s-Duration[i]+1 in s) (assignment[i][r][t][s-Dur[i]+1]) <= 1;
}
【问题讨论】:
-
您可能需要进行一些预处理来创建不同的值集和值子集以用作索引集,而不是当前编写总和的方式。