GAMS

Sets

Les sets sont les blocs de construction de base d’un modèle GAMS, correspondant exactement aux indices dans les représentations algébriques des modèles. L’exemple Transportation ci-dessus ne contient qu’une seule déclaration Set:

  Sets i canning plants / Seattle, San-Diego / j markets / New-York, Chicago, Topeka / ; 

L’effet de cette déclaration est probablement évident. Nous avons déclaré deux ensembles et leur avons donné les noms $i$ et $j$. Nous avons également attribué des membres aux ensembles comme suit :

$i =$ {Seattle, San Diego}

$j =$ {New York, Chicago, Topeka}.

Notez l’utilisation de tirets pour la numérotation des membres d’un ensemble. En notation mathématique et dans d’autres langages de programmation, cela serait souvent fait avec des accolades à la place.

Paramètres

Les paramètres sont une façon d’entrer des données dans GAMS. Dans ce cas, les paramètres $a$ et $b$ sont définis sur les ensembles $i$ et $j$.

  Parameters a(i) capacity of plant i in cases / Seattle 350 San-Diego 600 / b(j) demand at market j in cases / New-York 325 Chicago 300 Topeka 275 / ; 

GAMS vous permet de placer du texte explicatif (indiqué en minuscules) tout au long de votre modèle, au fur et à mesure que vous le développez. Vos commentaires sont automatiquement incorporés dans le rapport de sortie, aux endroits appropriés.

Table

Les données peuvent également être entrées sous forme de tableau pratique. Le GAMS vous permet d’entrer les données sous leur forme de base – les transformations sont spécifiées algébriquement.

  Table d(i,j) distance in thousands of miles New-York Chicago Topeka Seattle 2.5 1.7 1.8 San-Diego 2.5 1.8 1.4 ; 

Scalaire

Les constantes peuvent simplement être déclarées comme des scalaires:

  Scalar f freight in dollars per case per thousand miles /90/ ; 

Manipulation de données

Lorsque des valeurs de données doivent être calculées, vous déclarez d’abord le paramètre (c’est-à-dire que vous lui donnez un symbole et, éventuellement, vous l’indexez), puis vous donnez sa formulation algébrique. Le GAMS effectuera automatiquement les calculs.

  Parameter c(i,j) transport cost in thousands of dollars per case ;c(i,j) = f * d(i,j) / 1000 ; 

Variables

Les variables de décision sont exprimées algébriquement, avec leurs indices spécifiés. A partir de cette forme générale, le GAMS génère chaque instance de la variable dans le domaine.Les variables sont spécifiées quant à leur type : FREE, POSITIVE, NEGATIVE, BINAIRE, ou INTEGER. La valeur par défaut est FREE.La variable objectif (z, ici) est simplement déclarée sans indice.

  Variables x(i,j) shipment quantities in cases z total transportation costs in thousands of dollars ;Positive variables x ; 

Equations

On déclare d’abord les équations des fonctions objectives et des contraintes en leur donnant des noms. Ensuite, on décrit leurs formules algébriques générales. Le GAMS dispose maintenant de suffisamment d’informations (provenant des données saisies ci-dessus et des relations algébriques spécifiées dans les équations) pour générer automatiquement chaque déclaration de contrainte individuelle – comme vous pouvez le voir dans le rapport de sortie ci-dessous. Un ensemble étendu d’outils vous permet de modéliser toute expression qui peut être énoncée algébriquement : arithmétique, indexation, fonctions et protocole de traitement des exceptions (par exemple, les constructions if-then-else et such-that).

=E= indique ‘égal à’
=L= indique ‘inférieur ou égal à’
=G= indique ‘supérieur ou égal à’

  Equations cost define objective function supply(i) observe supply limit at plant i demand(j) satisfy demand at market j ;cost .. z =e= sum((i,j), c(i,j)*x(i,j)) ;supply(i) .. sum(j, x(i,j)) =l= a(i) ;demand(j) .. sum(i, x(i,j)) =g= b(j) ; 

Déclaration du modèle

Le modèle reçoit un nom unique (ici, TRANSPORT), et le modélisateur spécifie quelles équations doivent être incluses dans cette formulation particulière. Dans ce cas, nous avons spécifié ALL, ce qui indique que toutes les équations font partie du modèle. Ceci serait équivalent à MODÈLE TRANSPORT /COST, SUPPLY, DEMAND/ . Cette sélection d’équations vous permet de formuler différents modèles au sein d’un seul fichier d’entrée GAMS, sur la base de données données identiques ou différentes.

  Model transport /all/ ; 

Solve statement

L’instruction solve (1) indique à GAMS quel modèle résoudre, (2) sélectionne le solveur à utiliser (dans ce cas, un solveur LP), (3) indique la direction de l’optimisation, soit MINIMISER ou MAXIMISER , et (4) spécifie la variable objective.

  Solve transport using LP minimizing z ; 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.