0

所以我想运行这段代码:

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] 已分配的错误,这是有道理的。所以我尝试将第二个 for 循环放在 sum 函数之后,如下所示:

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];

但后来我收到语法错误,出乎意料。但那我该怎么办。我需要所有 k 的约束。我对线性规划和 OPL 相当陌生,所以我现在不知道如何解决这个问题。顺便说一句,我不能只删除约束标签,因为我也需要它。

4

1 回答 1

0

我会删除

约束 ctMachine[机器];

和写

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

问候

于 2017-05-24T06:46:23.990 回答