GAMS语言简介.ppt

  1. 1、本文档共58页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GAMS语言简介

GAMS/MPSGE语法 GAMS与MPSGE GAMS(Generalized Algebraic Modeling System的简称)是用于解决线性、非线性和整数规划的程序语言。GAMS程序语言简洁、自然、易学,但功能却非常强大,能处理规模庞大的模型系统,因此,它被广泛地应用于大型经济模型和规划运筹研究上。 MPSGE(Mathematical Programming System for General Equilibrium的简称)是专门用于解决Arrow-Debreu经济均衡模型的程序语言。 MPSGE程序以嵌套式(nested)的常数替代弹性效用函数和生产函数为基础,能清晰且相对简单地书写和分析复杂的非线性不等式(nonlinear inequalities)系统。它对模型的数据要求是模型中所有消费者和生产部门份额比例和弹性参数。 GAMS与MPSGE GAMS的优点在于能轻易管理大型数据集和书写求解报告。然而,对于复杂的模型,GAMS模型环境的缺点体现在非线性等式的表达式上,因为经济均衡模型中用到的嵌入式CES等复杂的函数形式能被抽象地理解,但却很难具体指定表达式。 MPSGE主要适用于特定经济模型的非线性不等式分析,它提供了经济均衡的一般框架,包含了较为专门的知识背景。 它的优点在于书写一般均衡模型时较为简洁。但缺点体现在数据的输入和转化上,大型经济模型往往包含不同类型的部门,不同的经济参与主体,存在多种政策变量工具等,数据的输入和转化的工作量相当庞大。 GAMS与MPSGE 将MPSGE融合到GAMS中形成一个子系统能兼顾两者的优点。该语言系统采用一个基于GAMS的MPSGE扩展句法写成的程序作为主体,使得经济均衡模型的设定非常简洁;同时,在其前端和后端采用GAMS语言进行数据处理和报告书写。 GAMS语言 这里,我们将给出一个采用线性规划求解运输问题的例子,介绍如何使用GAMS语言来描述、求解和分析一个简单的小型优化问题。 运输问题 在大家熟悉的运输模型中,我们通常假设某种商品由多个厂商供给,并在多个市场销售。已知每个厂商的生产量和每个市场的需求量,以及从不同厂商将商品运输到不同市场的运输成本。求:每个厂商向不同市场的运输量是多少,才能最小化总运输成本? 代数表达式 运输问题在GAMS中的对应实体 实体类型的名称对不同建模者可能不同。例如,经济学家使用外生变量和内生变量这两个术语来分别表示给定的数据和决策变量。在GAMS中,采用的术语如下:指数被称为集合(sets),给定数据被称为参数(parameters),决策变量被称为变量(variables),限制条件和目标函数被称为方程(equations)。 GAMS模型的结构 构建实体的基本规则 GAMS模型是用GAMS语言书写的语句集合。控制语句顺序的唯一规则是模型实体不能在其被声明存在之前被引用 GAMS编辑器不区分大小写字母 一个语句存在于多行,植入空白行以及一行存在多个语句都是可行的 每个语句用分号格开 任何在第一列以星号开始的行都被GAMS编辑器认为是注释行 ;大篇幅的注释行置于$ontext 和$offtext ; 构建实体的基本规则 GAMS实体的创建包含两个步骤:声明(declaration)和赋值(assignment)或定义(definition)。声明意味着宣布某些东西的存在,并给其一个名称。赋值或定义意味着给这些东西一个具体的值或具体的形式。在方程中,你必须在单独的GAMS语句中进行声明和定义。然而,对于所有的GAMS实体,你可以选择在同一个语句中,或在不同的语句中进行声明和赋值。 给模型实体的名称必须以字母开头,后面跟随最多为30个的字母或数字。 运输问题的数据 假设有两个罐头厂和三个市场,数据在上图中给出。运输距离用千英里表示,运输成本假设为每箱每千英里$90.00。 运输问题的GAMS程序 运输问题的GAMS程序 集合(set) 集合(sets)是GAMS模型的基本建筑模块,它对应于模型算术表达式中的指数。它的一般语法如下: 本例中的集合语句如下: 集合(set) 上述语句声明了两个集合,起名为i和j,同时对集合赋予如下元素: 必须注意GAMS格式和常用的数学格式之间在罗列集合元素上的差别。GAMS采用斜杠“/”,而不是大括号“{}”来描绘集合 集合(set) 上述集合语句中的小写单词称为文本(text)。文本是可选的。它仅为了内部说明而存在,在模型中没有正式的目的。GAMS编辑器并不试图解释这些文本,而是储存这些文本。 集合(set) 并没有必要将集合i和集合j的创建放在同一个语句中。我们可将它们放到如下分开的语句中: 空格和空行的布置(以及大小写的选择)取决于你的偏好 单

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档