【问题标题】:how can I write this code in a more compact way on cplex?如何在 cplex 上以更紧凑的方式编写此代码?
【发布时间】:2021-11-17 09:03:57
【问题描述】:

如何在 CPLEX 上以更紧凑的方式编写此代码?

forall (j in J)
    

    forall (i in I1)
      
      {
      
      if ( macc [i][j] == 1 || 2 || 4 || 5 || 7 || 11 || 12 ||  13 || 14 || 15 || 16 || 17 || 18 || 19) {
        
        y[i][j][m] == 1;
        
              }
         else {
           
           if (macc [i][j] == 3) {
             
             y[i][j][3] == 1 || y[i][j][4] == 1;
            
           }
    }            

【问题讨论】:

    标签: algorithm cplex


    【解决方案1】:

    您可以在 if 条件下对数据使用“in”:

    {int} s={1,2,4,5,7,11,12,13,14,15,16,17,18,19};
    int m=2;
    dvar int x;
    
    subject to
    
    {
      if (m in s) x==2;
      
    }
    

    工作正常

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-24
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      • 2021-12-21
      相关资源
      最近更新 更多