在CPLEX中,我如何在forall循环语法中使用变量



我想在cplex forall语法中使用变量,如下所示…

forall(j in {1,2,3,4,5,6,7})
{
  x[1][j] + x[1][(j+3)%7] + x[1][(j+4)%7] + x[1][(j+5)%7] + 
  x[1][(j+6)%7] + x[2][j] + x[2][(j+3)%7] + x[2][(j+4)%7] + 
  x[2][(j+5)%7] + x[2][(j+6)%7] >= 5;
}

但是在我运行这个脚本之后,有一个语法错误,因为(j+3)…我应该如何做一个脚本来使用这个算法?

有不同的方法来解决这个问题,基本上你需要一个函数,它将j索引和偏移量作为参数,并返回相应的结果。

这可以通过一个常数矩阵来完成,您可以在开始时为每个7j和偏移量设置一个常数矩阵。然后在循环中引用

x[1][ f[j][3] ]

最新更新