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

时间:2014-05-14 04:13:11

标签: variables linear-programming cplex forall opl

我想在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)而出现了语法错误...... 我该如何制作一个脚本来使用这个算法?

1 个答案:

答案 0 :(得分:1)

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

这可以使用您在7 j和偏移中的每一个的开头设置的常量矩阵来完成。 然后在循环内部引用

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