Как поставить верхнюю границу суммы каждой строки в таблице в GAMS? - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть таблица, называемая «задержки», и она включает в себя 2 набора, a и b, и переменную y для итерации по этой таблице.Кроме того, у меня есть некоторые параметры для a, которые должны быть удовлетворены:

table latencies(a, b)
   b1  b2  b3
a1 1   2   3
a2 4   5   6
a3 7   9   8;

parameter pam1(a) /"a1" 12, "a2" 13, "a3" 14/; 
positive variable y(a,b);

Я пытаюсь составить сумму каждой строки из таблицы задержек не более каждого соответствующего элемента в параметре pam1.

equations maxime(a), ...;
maxime(a)..
   sum(a, y(a,b)) =l= pam1(a);

Таким образом, сумма первой строки в задержках должна быть меньше или равна 12, сумма во второй строке должна быть меньше или равна 13 и т. Д. Однако я получаю следующие ошибки: "Набор уже находится под контролем »и« Неконтролируемый набор введен как постоянный »в том же уравнении выше.Как мне это сделать?

1 Ответ

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

Вот исправленное решение (которое работает):

  equations maxime(a), ...;
  maxime(a)..
     sum(b, y(a,b)) =l= pam1(a);

Я неправильно устанавливал индекс строки (a) в качестве моего контрольного индекса ранее.Мне нужно было установить этот индекс как b, индекс столбца.Таким образом, вы будете перебирать сумму каждой строки и ставить верхнюю границу.

...