意外的forall语法错误

时间:2017-05-23 09:55:58

标签: linear-programming cplex opl

所以我想运行这段代码:

constraint ctMachine[Machine];
subject to{
forall(i in Machine)
  forall (k in Week)
  ctMachine[i]: sum(j in Product)
    ResourceConsumption[i][j] * Units[j][k]  <= Capacity[i];

但如果我这样做,我会得到ctMachine [1]已经分配的错误,这是有道理的。所以我试着在sum函数之后放入第二个for循环,如下所示:

constraint ctMachine[Machine];
subject to{


forall(i in Machine)
  ctMachine[i]: sum(j in Product)
  forall(k in Week)
    ResourceConsumption[i][j] * Units[j][k]  <= Capacity[i];

然后我收到语法错误,意外的forall。但是我怎么能这样做呢。我需要所有k的constranint。我对线性编程和OPL相当新,所以我不知道如何解决这个问题。顺便说一下,我不能只删除约束标签,因为我也需要它。

1 个答案:

答案 0 :(得分:0)

我会删除

  

约束ctMachine [机器];

并写

  

forall(我在机器中)
    ctMachine:     sum(产品中的j)
    总和(周中的k)       ResourceConsumption [i] [j] * Units [j] [k]&lt; = Capacity [i];

问候