Запрос индексации GAMS

Привет, я пытаюсь оптимизировать функцию, включающую компоненты индексации переменной s(L) по набору L /1*10/;

Я создал подмножество Leven множества L, включающее четные числа (Leven /2,4,6,8,10/)

Я хочу написать уравнение, которое устанавливает четные компоненты s(L) как удвоенное значение нечетных компонентов.

Как мне написать такое уравнение, пожалуйста?

Я собирался написать это как

уравнение(Левен).. s(Левен) =E= s(Левен-1)*2;

Однако вышесказанное неверно, так как, например, для Leven = 4, s(Leven-1) интерпретируется как s(2), а не как s(3)..

Большое спасибо


person user401988    schedule 27.12.2016    source источник


Ответы (1)


Вы можете использовать условие доллара, чтобы ограничить уравнение вашим подмножеством следующим образом:

set Leven(L);
Leven(L) = yes$(mod(ord(L),2) eq 0);

equation(L)$Leven(L).. s(L) =E= s(L-1)*2;

(Я не уверен на 100% в синтаксисе, используемом для определения вышеприведенного подмножества, так как я в отпуске и у меня нет GAMS, но вы должны понять.)

person Martin Bonde    schedule 28.12.2016