У меня реальная проблема с объявлением 2D-переменной в Zimpl.(Параметры вроде бы работают нормально.)
Вот мой MWE:
set I := {1 to 10};
set J := {1 to 5};
param A[I*J] := read InputFile as "n+";
var x[I] binary;
var s[J] binary; # this works but doesn't do what I need
var s2[I*J] binary; # this does what I need but doesn't work
minimize sum<i,j> in I*J with A[i,j] < 5: (s2[i,j] - x[i]) * A[i,j];
# this constraint compiles
subto constraint1:
forall <j> in J do sum <i> in I with A[i,j] < 5: x[i] <= 1 + s[j];
# this constraint does not compile
subto constraint2:
forall <j> in J do sum <i> in I with A[i,j] < 5: x[i] <= 1 + s2[i,j];
Когда я пытаюсь создать мой файл lp, я получаю
Error 133: Unknown symbol "i"
Кто-нибудьесть какие-то идеи о том, как я могу заставить работать второе ограничение?Насколько я могу судить, это идентично реализации проблемы с емкостным оборудованием (раздел 6.3) в руководстве пользователя Zimpl.
Заранее спасибо.