所以我想运行这段代码:
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相当新,所以我不知道如何解决这个问题。顺便说一下,我不能只删除约束标签,因为我也需要它。
答案 0 :(得分:0)
我会删除
约束ctMachine [机器];
并写
forall(我在机器中)
ctMachine: sum(产品中的j)
总和(周中的k) ResourceConsumption [i] [j] * Units [j] [k]&lt; = Capacity [i];
问候