Ограничение рекурсивного суммирования на OPL - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу написать рекурсивную функцию суммирования в OPL.Подводя итог словами, для всех j (некоторый индекс) я хочу суммировать переменную по j;но до этого j (верхняя граница суммирования).Например, предположим, что j находится в диапазоне 1..5.Для j = 3 я хочу сложить x1 + x2 + x3 <= A Для j = 4 это должно быть x1 + x2 + x3 + x4 <= A </p>

Я написал следующий код, но я знаю, что он выигралне работает правильно.Любые предложения по этому поводу?

 forall(i in subjects, j in days)
   sum(j in days) x[i][j]<= i.PageNumber*(1-a[i][j]);

Вот, какое условие я могу добавить в суммирование?Спасибо.

1 Ответ

0 голосов
/ 19 сентября 2019

Это может быть то, что вы ищете

 forall(i in subjects, j in days)
   sum(g in 1..j) x[i][g]<= i.PageNumber*(1-a[i][j]);
...