CPLEX 给我这个错误“V23 从未被使用过”

CPLEX give me this error " V23 has never been used"

部分输入为:

  tuple copie_macchine {

      int macchina;

      int copia1;

      int copia2;

      int copia3; 

   }

   {copie_macchine} copie = ...;

   int macc [I1][J] = ...;

   {int} s = {1,2,4,5,7,11,12,13,14,15,16,17,18,19};

   macc = [[1, 10],
    [1, 1],
    [3, 3],
    [0, 4]];

    copie = {<3,3,4,0>,
     <6,7,8,9>,
     <8,11,12,0>,
     <9,13,14,0>,
     <10,15,16,0>,
     <20,26,27,28>};

     dvar boolean y[I][J][M];

我在 Cplex 中写了这段代码:如果值 macc [i] [j] 在集合 s 中,算法将赋值给变量 y 1 否则它必须选择将值 1 赋值给复制 1 或复制 2 或复制

forall (j in J)

forall (i in I1 : macc [i][j] in  s)
  
  forall (i1 in I : i1==i)
  
    forall (m in M)
        
 V22:  y[i1][j][m] == 1;


  forall (j in J)
    
    forall (c in copie : c.copia3!=0)
    
     forall (i in I1 : macc[i][j] == c.macchina)
                   
             forall (i1 in I : i1==i)
       
                 forall (m in M)
       
   V23:  y[i1][j][c.copia1] == 1 ||  y[i1][j][c.copia2] == 1 ||  y[i1][j][c.copia3] == 1;   

但我遇到错误“V23 从未被使用过”。我该如何解决?

您从未使用过包含 V23 的行。

让我分享一个复制此警告的小示例:

dvar int+ x;

subject to
{
  x<=10;
  forall(i in 1..2:i>=5)
    
    {
      
       ct:(x==2) ;
   }  
}

给予

ct has never been used