2016-12-27 1 views
1

Salut J'essaie d'optimiser une fonction impliquant les composantes d'une indexation s (L) variable par l'ensemble L/1 * 10 /;Requête d'indexation GAMS

J'ai créé un sous-ensemble de l'ensemble Leven L impliquant les nombres pairs (Leven/2,4,6,8,10 /)

Je veux écrire une équation qui définit les composantes même de s (L) comme le double de la valeur des composants impairs.

Comment écrire une telle équation?

je vais l'écrire comme

équation

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

Cependant ce qui précède est faux par exemple pour Leven = 4, s (Leven-1) est interprété comme s (2) et non comme s (3) ..

Un grand merci

Répondre

1

Vous peut utiliser une condition de dollar pour limiter l'équation à votre sous-ensemble comme ceci:

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

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

(Je ne suis pas sûr à 100% sur la syntaxe utilisée pour définir le sous-ensemble ci-dessus, je suis en vacances et n » J'ai des GAMS avec moi, mais vous devriez avoir l'idée.)