我在尝试寻找资源约束调度问题的解决方案时遇到了这个问题。每当我将 dvar 作为 forall 循环中的条件或 if 条件时,我都会遇到错误,指出“不允许使用决策变量(或表达式)“S”。
range activity = 1..16;
dvar float+ S[activity];
dvar float+ rd[jobs];
forall (i in activity)
forall (t in T:S[i]<=t<=S[i]+D[i]) //boolean b
b[i][t]==1;
forall (t in T)
forall (k in R)
sum (i in activity)b[i][t]*V[i][k]<=Rk[k];//human resources constraint
forall (j in jobs)
forall (t in T:rd[j]<=t<=S[maxact[j]])//boolean y
y[j][t]==1;