Introduction aux MEGC

Transcription

Introduction aux MEGC
Introduction au logiciel GAMS
S. Mage
Année universitaire 2010-2011
Masters 111 et 211
Introduction
• GAMS « General Algebraic Modeling System » :
permet de résoudre tout problème numérique
• GAMS est un exécutable
• Ecriture du modèle et simulations : fichier
entrée avec l’extension « .gms »
• Résultats : fichier sortie avec l’extension « .lst »
• On spécifie un modèle GAMS en donnant à la
fois sa structure et des données proprement
dites dans un fichier séquentiel
Ouvrir
et appréhender
l’environnement
• Gamside pour « Integrated Development
Environment »
• Démarrer - « tous les programmes » « statistiques et économétrie » - « gamside »
• Autre possibilité : passer par le poste de travail.
Exemple : à partir de mon répertoire.
C://« Home »- »PROF» - « MAGE »
Page d’accueil
Menus déroulants et icônes
Créer un programme gams
Ouvrir un programme existant
Ouvrir la bibliothèque : exemple de
programmes appliqués à différents
champs
Beaucoup de commandes sont « grisées » : nous
n’avons pas encore ouvert ou créer un programme
Les options permettent de changer la
présentation et l’algorithme de résolution
Créer un programme
1) Sauvegarder ce fichier sous
le nom « modele1 » sur
votre répertoire ou sur une
clé
2) Fermer le fichier et l’ouvrir à
nouveau à partir de gams
L’application crée un fichier input
avec l’extension « .gms »
L’écriture du programme se fait sur
la page blanche.
Parcourir la bibliothèque
Type (exemples)
LP : Linear Programming
NLP : Non Linear Programming
Classement
par thème (+)
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 débutant la ligne par une *
2) Pour les énoncés plus longs : En commençant par
$ontext « texte à écrire sur pls lignes » et en
terminant par $offtext
3) Directement au sein des énoncés de gams
4) Gams ne reconnait pas les accents
Les principaux codes de programmation (2)
(cf. poly « CODES_GAMS_INTRO »)
• Les principaux mots-clés
Set
(annonce la déclaration d’un ensemble)
Parameters (annonce la déclaration de « paramètres »)
Table
(annonce l’écriture de tableaux avec valeurs num.)
Scalar
(annonce une valeur numérique simple)
Variables (annonce la déclaration des variables endo. et exo.)
Equation (annonce la déclaration des équations)
Model
(suivi du modèle étudié)
Solve
(lance la résolution)
Display
(suivi des paramètres ou variables pour lesquelles
on souhaite un résultat numérique)
Structure du programme
• Fichier séquentiel avec trois phases distinctes :
A) Rendre compatible le modèle et la base de
données (étapes 1 à 4)
B) Ecriture du modèle (étapes 5 à 8)
C) Résolution (étapes 9 à 10)
Ces trois phases se subdivisent en plusieurs étapes
(Etapes 1 à 10)
A) Etape 1 : Définir les ensembles
• Définir les ensembles
Exemple (si plusieurs catégories de ménages)
SET i /men1, men2, men3/
SET r(i) /men1, men2/
;
Remarques de ponctuation :
- La virgule sert de séparateur entre plusieurs
éléments (idem « retour »)
- Le point-virgule clore l’unité ou la section.
A) Etape 2 : Déclarer les paramètres et les
variables
• Déclarer tous les paramètres et toutes les
variables (endo+exo) à l’année de référence
Exemple de
• Exemple :
commentaire au sein
des énoncés de gams
PARAMETERS
Gamma(i) exposant de la CD
CM0
consommation des ménages
Attention ! Proposition : Le 0 permet de distinguer
les variables initiales (valeur numérique associée)
des « vraies » variables du modèles
A) Etape 3 : Entrée de la base de données
• 3 possibilités d’introduire des valeurs
numériques sous Gams :
1) Sous forme de tableaux (TABLE)
2) Sous forme de scalaires (SCALAR)
3) Par un calcul direct
A) Etape 4 : Etalonnage des paramètres
• On utilise les valeurs précédentes pour
calculer les paramètres du modèle
Exemple :
Pms=SM0/YM0 ;
B) Etape 5: déclaration des variables
• Cette étape consister à lister toutes les variables
du modèle
• Exemple :
VARIABLES
CM(i) Consommation des ménages en bien i
YM Revenu des ménages
(…)
;
B) Etape 6 : Déclaration des équations
• Cette étape consiste à lister toutes les équations du modèle
en leur donnant un nom
• Exemple :
EQUATIONS
EQCM(i) Consommation des ménages
EQYM
Revenu des ménages
(….) ;
Remarques : 1) Le nom de l’équation doit être différent de celui
d’une variable. On propose de toutes les commencer par
« EQ » ; 2) Deux équations différentes ne peuvent porter le
même 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 qu’une équation
mathématique va suivre
2) Le =e= indique que l’équation est une égalité
stricte ( =g= « greater than » et =l= « lower
than »)
3) * : multiplication et ** : exposant
B) Etape 8 : initialisation du modèle
• Cette étape permet
1) d’associer les variables initiales avec le 0
(paramètres) et les variables du modèle ;
2) De distinguer les variables endogènes et
exogènes ;
Exemple :
CM.l(i)=CM0(i) pour une endogène
LS.fx=LS0 pour une exogène
3) de lancer les simulations sur les exogènes !
C) Etape 9 : Lancer la résolution
• Indiquer le modèle à résoudre (MODEL)
• Indiquer le sens de la maximisation et le type
de modèle
SOLVE nomdumodèle maximizing ?? using nlp
C) Etape 10 : créer des variations en % pour
lecture des résultats
• Cette étape est facultative mais très utile pour la
lecture des résultats.
• Elle consiste à créer de nouveaux paramètres tels que
:
PARAMETERS
dcm(i) variation de la conso en %
(…) ;
dcm(i)=[(cm.l(i)-cm0(i))/cm0(i)]*100
(…) ;
DISPLAY
dcm;