答案 0 :(得分:0)
我使用 CPLEX 20.1 运行了您的模型并得到了
你使用哪个版本?
如果您发表评论,您稍后会发送完整的模型
//forall( j in J )
//C1_a: sum(i in I) X[i][j][1] ==35;
和
//c6:sum(i in I) (X[i][j][k] - d1p[i] + d1n[i]) ==1;
然后你得到一个解决方案
答案 1 :(得分:0)
here is the complete model
int n = 70;
int f = 2;
int q = 30;
range I = 1..n;
range J = 1..q;
range K = 1..f;
dvar boolean X[I][J][K];
dvar boolean h[I][J];
dvar float d1p[I];
dvar float d1n[I];
dexpr float z = sum(i in I) (d1p[i]+d1n[i]);
minimize z;
subject to {
forall( j in J )
C1_a: sum(i in I) X[i][j][1] ==35;
forall(j in J)
C1_b: sum(i in I) X[i][j][2] ==34;
forall(i in I, j in J:j<=29)
C2_a:X[i][j][2] + X[i][j+1][1] + X[i][j+1][2] <= 2;
forall(i in I, j in J:j<=29)
C2_b:X[i][j][1] + X[i][j][2] + X[i][j+1][1] <= 2;
forall(i in I)
C3_a: sum(j in J:j<=14) (h[i][j] + h[i][j+1] + h[i][j+2] + h[i][j+3] +
h[i][j+4]+h[i][j+5]+h[i][j+6]+
h[i][j+7]+h[i][j+8]+h[i][j+9]+h[i][j+10]+h[i][j+11]+h[i][j+12]+h[i][j+13])
>=1;
forall(i in I, j in J)
C4:sum(k in K) X[i][j][k]+h[i][j]==1;
forall(i in I)
c5:sum(j in J) (X[i][j][1]+X[i][j][2])>=29;
forall(j in J, k in K)
sum(i in I) (X[i][j][k] - d1p[i] + d1n[i]) ==1;
forall(i in I){ d1p[i] >=0; d1n[i]>=0;}
}