Sie sind auf Seite 1von 20

Introduction au logiciel GAMS

S. Mage

Anne universitaire 2010-2011 Masters 111 et 211

Introduction
GAMS General Algebraic Modeling System : permet de rsoudre tout problme numrique GAMS est un excutable Ecriture du modle et simulations : fichier entre avec lextension .gms Rsultats : fichier sortie avec lextension .lst On spcifie un modle GAMS en donnant la fois sa structure et des donnes proprement dites dans un fichier squentiel

Ouvrir

et apprhender lenvironnement

Gamside pour Integrated Development Environment Dmarrer - tous les programmes statistiques et conomtrie - gamside Autre possibilit : passer par le poste de travail. Exemple : partir de mon rpertoire. C:// Home - PROF - MAGE

Page daccueil

Menus droulants et icnes

Crer un programme gams Ouvrir un programme existant Ouvrir la bibliothque : exemple de programmes appliqus diffrents champs Beaucoup de commandes sont grises : nous navons pas encore ouvert ou crer un programme Les options permettent de changer la prsentation et lalgorithme de rsolution

Crer un programme
1) Sauvegarder ce fichier sous le nom modele1 sur votre rpertoire ou sur une cl 2) Fermer le fichier et louvrir nouveau partir de gams

Lapplication cre un fichier input avec lextension .gms Lcriture du programme se fait sur la page blanche.

Parcourir la bibliothque
Type (exemples) LP : Linear Programming NLP : Non Linear Programming

Classement par thme (+)

Les principaux codes de programmation (1) (cf. poly CODES_GAMS_INTRO ) Introduire un titre et un sous-titre $title suivi du titre du fichier $stitle suivi du sous-titre Introduire des commentaires 1) En dbutant la ligne par une * 2) Pour les noncs plus longs : En commenant par $ontext texte crire sur pls lignes et en terminant par $offtext 3) Directement au sein des noncs de gams 4) Gams ne reconnait pas les accents

Les principaux codes de programmation (2) (cf. poly CODES_GAMS_INTRO ) Les principaux mots-cls
Set (annonce la dclaration dun ensemble) Parameters (annonce la dclaration de paramtres ) Table (annonce lcriture de tableaux avec valeurs num.) Scalar (annonce une valeur numrique simple) Variables (annonce la dclaration des variables endo. et exo.) Equation (annonce la dclaration des quations) Model (suivi du modle tudi) Solve (lance la rsolution) Display (suivi des paramtres ou variables pour lesquelles on souhaite un rsultat numrique)

Structure du programme
Fichier squentiel avec trois phases distinctes : A) Rendre compatible le modle et la base de donnes (tapes 1 4) B) Ecriture du modle (tapes 5 8) C) Rsolution (tapes 9 10)

Ces trois phases se subdivisent en plusieurs tapes (Etapes 1 10)

A) Etape 1 : Dfinir les ensembles


Dfinir les ensembles Exemple (si plusieurs catgories de mnages) SET i /men1, men2, men3/ SET r(i) /men1, men2/ ; Remarques de ponctuation : - La virgule sert de sparateur entre plusieurs lments (idem retour ) - Le point-virgule clore lunit ou la section.

A) Etape 2 : Dclarer les paramtres et les variables


Dclarer tous les paramtres et toutes les variables (endo+exo) lanne de rfrence Exemple de Exemple : commentaire au sein des noncs de gams PARAMETERS Gamma(i) exposant de la CD CM0 consommation des mnages
Attention ! Proposition : Le 0 permet de distinguer les variables initiales (valeur numrique associe) des vraies variables du modles

A) Etape 3 : Entre de la base de donnes


3 possibilits dintroduire des valeurs numriques sous Gams : 1) Sous forme de tableaux (TABLE) 2) Sous forme de scalaires (SCALAR) 3) Par un calcul direct

A) Etape 4 : Etalonnage des paramtres


On utilise les valeurs prcdentes pour calculer les paramtres du modle Exemple : Pms=SM0/YM0 ;

B) Etape 5: dclaration des variables


Cette tape consister lister toutes les variables du modle Exemple : VARIABLES CM(i) Consommation des mnages en bien i YM Revenu des mnages () ;

B) Etape 6 : Dclaration des quations


Cette tape consiste lister toutes les quations du modle en leur donnant un nom Exemple : EQUATIONS EQCM(i) Consommation des mnages EQYM Revenu des mnages (.) ; Remarques : 1) Le nom de lquation doit tre diffrent de celui dune variable. On propose de toutes les commencer par EQ ; 2) Deux quations diffrentes ne peuvent porter le mme nom.

B) Etape 7 : Ecriture des quations symboliques


Syntaxe respecter : EQCM(i).. CM(i)=e=(betaC(i)*CTM)/p(i) ; 1) Les deux points .. indiquent quune quation mathmatique va suivre 2) Le =e= indique que lquation est une galit stricte ( =g= greater than et =l= lower than ) 3) * : multiplication et ** : exposant

B) Etape 8 : initialisation du modle


Cette tape permet 1) dassocier les variables initiales avec le 0 (paramtres) et les variables du modle ; 2) De distinguer les variables endognes et exognes ; Exemple : CM.l(i)=CM0(i) pour une endogne LS.fx=LS0 pour une exogne 3) de lancer les simulations sur les exognes !

C) Etape 9 : Lancer la rsolution


Indiquer le modle rsoudre (MODEL) Indiquer le sens de la maximisation et le type de modle SOLVE nomdumodle maximizing ?? using nlp

C) Etape 10 : crer des variations en % pour lecture des rsultats


Cette tape est facultative mais trs utile pour la lecture des rsultats. Elle consiste crer de nouveaux paramtres tels que : PARAMETERS dcm(i) variation de la conso en % () ; dcm(i)=[(cm.l(i)-cm0(i))/cm0(i)]*100 () ; DISPLAY dcm;