Неожиданная полная синтаксическая ошибка
Итак, я хотел запустить этот код:
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, так что я понятия не имею, как я могу решить это сейчас. Кстати, я не могу просто удалить метку ограничения, так как она мне тоже нужна.
1 ответ
Я бы удалил
ограничение ctMachine[Machine];
и писать
Форалл (я в машине)
ctMachine: сумма (j в продукте)
сумма (k в неделю) ResourceConsuration[i][j] * Units[j][k] <= Capacity[i];
С уважением