如何解决约束中的冲突问题

时间:2021-06-25 12:18:09

标签: python cplex opl

widgetTimeArrived

约束 C1_b 没有反映在运行后的结果中。 我也得到了这个: img

我需要有关如何解决此问题的帮助

2 个答案:

答案 0 :(得分:0)

我使用 CPLEX 20.1 运行了您的模型并得到了

result

你使用哪个版本?

如果您发表评论,您稍后会发送完整的模型

//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;}
      }
相关问题