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;