GAMS用户手册(中文翻译第2-15章).pdf
《GAMS用户手册(中文翻译第2-15章).pdf》由会员分享,可在线阅读,更多相关《GAMS用户手册(中文翻译第2-15章).pdf(151页珍藏版)》请在咨信网上搜索。
1、目录目录第二章 GAMS 指南.22.1 引言.22.2 GAMS 模型的结构.42.3 集合.62.4 数据.72.4.1 清单数据输入.72.4.2 表格数据输入.82.4.3 直接赋值数据输入.82.5 变量.92.6 方程.102.6.1 方程声明.102.6.2 GAMS 的求和符号(乘积符号).112.6.3 方程定义.112.7 目标函数.132.8 模型和求解语句.132.9 显示语句.142.10.lo,.l,.up,.m 数据库.142.10.1 变量边界和初始值的赋值.142.10.2 最优值的转化和显示.152.11 GAMS 输出.162.11.1 复写.162.11
2、.2 错误信息.182.11.3 引用地图.202.11.4 方程清单.212.11.5 模型统计数据.222.11.6 状态报告.222.11.7 解报告.232.12 总结.24第三章 GAMS 程序.263.1 引言.263.2 GAMS 程序的结构.263.2.1 GAMS 输入的格式.263.2.2 GAMS 语句的分类.273.2.3 GAMS 程序的组织.273.3 数据类型和定义.283.4 语言项.293.4.1 字符.293.4.2 保留词.293.4.3 标识符(Identifiers).303.4.4 标签.303.4.5 文本.313.4.6 数字.313.4.7 分
3、隔符.323.4.8 注释.323.5 小结.33第四章 集合定义.344.1 引言.344.2 简单集合.344.2.1 语法.344.2.2 集合名称.344.2.3 集合元素.354.2.4 相关文本.364.2.5 作为集合元素的序列.364.2.6多集合声明.374.3 别名语句:一个集合多个名称.374.4 子集合和定义域检查.384.5 多维集合.394.5.1 一对一映射.394.5.2 多对多映射.404.6 小结.41第五章 数据输入:参数,标量和表格.425.1 引言.425.2 标量.425.2.1 语法.425.2.2 例子.425.3 参数.435.3.1 语法.4
4、35.3.2 例子.435.3.3 高维数据参数.445.4 表格.445.4.1 语法.455.4.2 例子.455.4.3 续表.465.4.4 超过两维的表格.465.4.5浓缩表格.475.4.6 处理长行表格.485.5 Acronyms.485.5.1 语法.485.5.2 示例.495.6 小结.49第六章参数的数据处理.506.1 引言.506.2 赋值语句.506.2.1 标量赋值.506.2.2 指数化赋值.506.2.3 在赋值中直接采用标签.516.2.4 子集上的赋值.516.2.5 控制指数的相关问题.516.2.6 赋值中扩展值域的标识符.526.2.7 赋值中的
5、 Acronyms.526.3 表达式.526.3.1 标准算术运算.526.3.2 指数化运算.536.3.3 函数.546.3.4 扩展值域算法和错误处理.556.4 小结.56第七章 变量.577.1 引言.577.2 变量声明.577.2.1 语法.577.2.2 变量类型.587.2.3 变量声明的方式.587.3 变量属性.597.3.1 变量的边界.597.3.2 定值变量.597.3.3 变量的活动水平.607.4 显示语句和赋值语句中的变量.607.4.1 对变量属性进行赋值.607.4.2 赋值语句中的变量属性.607.4.3 显示变量属性.617.5 小结.62第八章 方
6、程.638.1 引言.638.2 方程声明.638.2.1 语法.638.2.2 例子.638.3 方程定义.648.3.1 语法.648.3.2 例子.648.3.3 标量方程.658.3.4 指数化方程.658.3.5 在方程中明确使用标签.658.4 方程定义中的表达式.668.4.1 方程定义中的算术算子.668.4.2 方程定义中的函数.668.4.3 避免方程中的无定义操作.678.5 方程的数据处理问题.67第九章 模型和求解语句.699.1 引言.699.2 模型语句.699.2.1 语法.699.2.2 模型的分类.709.2.3 模型属性.709.3 求解语句.719.3.
7、1 语法.729.3.2 合法求解语句的要求.729.3.3 求解语句触发的行动.729.4 多个求解语句的程序.739.4.1 几个模型.739.4.2 敏感性分析和场景分析.739.4.3 非标准算法的迭代执行.749.5 让 GAMS 获得新的求解模块.75第十章 GAMS 输出.7610.1 引言.7610.2 示例模型.7610.3 编辑输出.7710.3.1 输入文件的复写.7710.3.2 符号引用地图.7910.3.3 符号清单地图.8010.3.4 单元素清单地图.8110.3.5 实用的 dollar($)控制指令.8210.4 执行输出.8210.5 求解语句生成的输出.
8、8310.5.1 方程清单.8310.5.2 列清单.8410.5.3 模型统计数据.8510.5.4 求解摘要.8610.5.5 求解模块报告.8910.5.6 解清单.8910.5.7 报告摘要.9110.5.8 文件概要.9110.6 错误报告.9110.6.1 编辑错误.9210.6.2 编辑时间错误.9310.6.3 执行错误.9410.6.4 求解错误.9410.7 小结.95第十一章 条件表达式,赋值和方程.9611.1 引言.9611.2 逻辑条件.9611.2.1 作为逻辑条件的数值表达式.9611.2.2 数值关系算子.9611.2.3 逻辑算子.9711.2.4 集合元素
9、.9711.2.5 包含 Acronyms 的逻辑条件.9711.2.6 逻辑条件的数值.9811.2.7 混合逻辑条件算子优先顺序.9811.2.8 混合逻辑条件例子.9911.3 Dollar 条件.9911.3.1 例子.9911.3.2 嵌套 dollar 条件.9911.4 条件赋值.10011.4.1 dollar 置于赋值语句左边.10011.4.2 dollar 置于赋值语句右边.10111.4.3 在指数化运算中过滤控制指数.10111.4.4 过滤赋值语句中的集合.10211.5 条件指数化运算.10311.5.1 在指数化运算中过滤控制指数.10411.6 条件方程.10
10、511.6.1 代数表达式中的 dollar 算子.10511.6.2 定义域的 dollar 控制.10511.6.3 过滤定义域.106第十二章 动态集合.10712.1 引言.10711.2 动态集合的元素赋值.10711.2.1 语法.10711.2.2 例子.10712.2.3 多指数动态集合.10811.2.4 动态集合定义域上赋值语句.10812.2.5 定义在动态集合定义域上的方程.10812.3 使用带有动态集合的 dollar 控制.10912.3.1 赋值.10912.3.2 指数化运算.10912.3.3 方程.11012.3.4 通过动态集合过滤.11012.4 集合
11、运算.11112.4.1 并集.11112.4.2 交集.11112.4.3 补集.11112.4.4 差集.11112.5 小结.112第十三章 作为序列的集合:有序集合.11313.1 引言.11313.2 有序和无序集合.11313.3 ord 和 card.11413.3.1 ord 算子.11413.3.2 Card 算子.11513.4 lag 和 lead 算子.11513.5 赋值语句中的 lags 和 leads.11613.5.1 线性 lag 和 lead 算子引用.11613.5.2 线性 lag 和 lead 算子赋值.11613.5.3 循环 lag 和 lead
12、算子.11713.6 方程中的 lags 和 leads.11813.6.1 线性 lag 和 lead 算子定义域控制.11813.6.2 线性 lag 和 lead 算子引用.11913.6.3 循环 lag 和 lead 算子.11913.7 小结.120第十四章 显示语句.12114.1 引言.12114.2 语法.12114.3 例子.12114.4 显示语句中的标签顺序.12214.4.1 例子.12314.5 显示控制.12414.5.1 全局显示控制.12414.5.2 局部显示控制.12414.5.3 生成列表格式数据的显示语句.125第十五章 put 书写工具.12715.
13、1 引言.12715.2 语法.12715.3 例子.12715.4 输出文件.12915.4.1 定义文件.12915.4.2 赋值文件.13015.4.3 关闭文件.13015.4.4 添加内容到文件.13015.5 页面格式.13115.6 页面区域.13215.6.1 访问不同的页面区域.13215.5.2 分页.13315.7 定位页面指针.13315.8 系统后缀.13315.9 输出项.13415.9.1 文本项.13415.9.2 数字项.13515.9.3 集合值项.13615.10 全局输出项格式.13615.10.1 字段对齐.13615.10.2 字段宽度.13615.
14、11 局部输出项格式.13715.12 额外的数字显示控制.13715.12.1 例子.13815.13 指针控制.13915.13.1 当前指针列.13915.13.2 当前指针行.14015.13.3 末行控制.14015.14 分页控制.14115.15 例外处理.14115.16 与 put 语句相关的错误来源.14115.16.1 语法错误.14115.16.2 put 错误.14215.17 简单的电子数据表/数据库应用.14215.17.1 例子.142第二章第二章 GAMS 指南指南2.1 引言引言本书的介绍部分将给出一个详细的例子,介绍如何使用 GAMS 来描述、求解和分析一
15、个简单的小型优化问题。加利福尼亚州蒙特里海军研究院的 Richard E.Rosenthal 写了这个指南。这个例子对 GAMS 及其特性给出了一个快速但全面的概述。许多内容可参考书本的其它部分,但它们仅仅是告诉你要去哪里寻找更详细的细节。这里的材料在不参考书本其余部分的情况下,单独阅读也能带来诸多益处。例子是一个线性规划的运输问题,在优化技术的发展历史中,它充当了“试验动物”的角色。(例如,见 Dantzig,1963)。这是用来说明像 GAMS 这样的代数建模语言的强大功能的一个很好选择,因为运输问题,不管多复杂,它都拥有一个简单的,可利用的代数结构。你将看到如果要考虑一个更大的运输问题,
16、我们要给出的 GAMS 输入文件中几乎所有的语句都将保持不便。在这个大家熟悉的运输问题中,我们给定几个厂商和几个市场对单一商品的供给和需求,同时给定将商品从工厂运到市场的单位运输成本。经济问题是:应该从每个工厂向每个市场运输多少,才能最小化总的运输成本。这个问题的代数表达式通常以与下列相同的格式给出:指数:工厂i 市场j给定数据:工厂 i 的商品供给(cases)ia 市场 j 的商品需求jb 工厂 i 到市场 j 之间的单位运输成本($/case)ijc决策变量:=从工厂 i 向市场 j 运输的商品数量(case)ijx 其中,for all i,j0ijx 约束条件:工厂 i 的供给限制:
17、for all i(cases)ijijxa 满足市场 j 的需求:for all j(cases)ijjixb目标函数:($K)minijijijc x 值得注意的是这个简单的例子揭示了一些我们一般认为是好习惯的建模惯例,它与 GAMS的设计是一致的。首先,模型的所有实体是通过类型识别(和分组)的。其次,实体顺序的选择应该使得符号在被定义之前没有被引用到。第三,所有实体单位是详细设定的。第四,单位被选择为一定度量比例,它使得优化程序碰到的数字有相对小的绝对数量级。(这里,符号$K 表示千美元)。实体类型的名称对不同建模者可能不同。例如,经济学家使用外生变量和内生变量这两个术语来分别表示给定的
18、数据和决策变量。在 GAMS 中,采用的术语如下:指数被称为集合(sets),给定数据被称为参数(parameters),决策变量被称为变量(variables),限制条件和目标函数被称为方程(equations)。运输问题的 GAMS 表达式几乎与上面的代数表达式相同。但是,最重要的不同之处在于GAMS 版本能够由计算机阅读并执行。表表 2.1 运输问题的数据(改编自运输问题的数据(改编自 Dantzig,1963)作为运输问题的一个例子,假设有两个罐头厂和三个市场,数据在表 2.1 中给出。运输距离用千英里表示,运输成本假设为每 case 每千英里$90.00。这个问题的 GAMS 表达式
19、如下:如果你将包含上述语句的文件作为 GAMS 程序的输入文件,那么这个运输模型将被读取并求解。细节将根据在不同计算机上如何调用 GAMS 而有所不同,但是,调用 GAMS 的最简单的(不带任何虚饰)方式是在输入文件名之前输入单词 GAMS。你将看到许多简洁的行,它描述了 GAMS 的进展情况,包括输出被写入的文件的名称。当 GAMS 完成之后,检查这个文件,如果运行良好,那么最优的运输量将显示在其底部,结果如下:你也将得到如下边际成本(单纯形乘子):这些结果表明,从 Seattle 到 Topeka 的最优运输量是零,但如果你坚持要运输一单位的话,最优成本将增加$0.036$K(也即$36.
20、00)。(你能从最优运输量和给定数据证明这个数字是正确的吗?)2.2 GAMS 模型的结构模型的结构在这个指南的剩余部分中,我们将以上述的例子作为参考讨论 GAMS 模型的基本成分。基本成分列在表 2.2 中。表表 2.2 GAMS 模型的基本成分模型的基本成分.GAMS 模型中存在可选的输入成分,如错误数据的编辑检查和结果的定制报告要求。其它可选的高级特征包括存储和恢复旧模型,在一次运行中生成多个模型等,但该指南只讨论基本成分。在处理单个成分之前,我们给出几个综合的注释。1 GAMS 模型是用 GAMS 语言书写的语句集合。控制语句顺序的唯一规则是模型实体不能在其被声明存在之前被引用;2 G
21、AMS 语句能够以用户喜好的几乎任何方式来进行编排。一个语句存在于多行,植入空白行以及一行存在多个语句都是可行的。你将从该指南的例子中得到什么是被允许的概念,但其准确的规则将在下一章给出。3 如果你是 GAMS 的初级用户,那么你应该用分号终止每个语句,如同本例一样。GAMS 编辑器不区分大小写字母,因此你能够自由使用大小写中任一种。4 注释对数学模型的有效性是至关重要的。如果注释被植入模型本身,而不是分开书写,那么它将更加有用(也更加精确)。至少存在两种方式在 GAMS 模型中插入注释。首先,任何在第一列以星号开始的行都被 GAMS 编辑器认为是注释行。第二,也许是更重要的一点,解释性文本能
22、够插入到具体的 GAMS 语句之中。运输模型中所有的小写单词是第二种文件形式的例子。5 正如你从上面输入成分列表中看到的,GAMS 实体的创建包含两个步骤:声明(declaration)和赋值(assignment)或定义(definition)。声明意味着宣布某些东西的存在,并给其一个名称。赋值或定义意味着给这些东西一个具体的值或具体的形式。在方程中,你必须在单独的 GAMS 语句中进行声明和定义。然而,对于所有的 GAMS实体,你可以选择在同一个语句中,或在不同的语句中进行声明和赋值。6 给模型实体的名称必须以字母开头,后面跟随最多为 30 个的字母或数字。2.3 集合集合集合(sets)
23、是 GAMS 模型的基本建筑模块,它对应于模型算术表达式中的指数。上面的运输模型仅包含一个集合语句:语句是能够自我解释的。我们声明了两个集合,起名为 i 和 j,同时对集合赋予如下元素:你必须注意 GAMS 格式和常用的数学格式之间在罗列集合元素上的差别。GAMS 采用斜杠“/”,而不是大括号“”来描绘集合,这仅仅是因为并非所有的计算机键盘都有大括号键。应该注意的还有多单词名称,如New York是不允许的,因此必须插入连字符号。上述集合语句中的小写单词称为文本(text)。文本是可选的。它仅为了内部说明而存在,在模型中没有正式的目的。GAMS 编辑器并不试图解释这些文本,而是储存这些文本,并
24、在你觉得方便的时候把它复制给你。并没有必要将集合 i 和集合 j 的创建放在同一个语句中。我们可将它们放到如下分开的语句中:空格和空行的布置(以及大小写的选择)取决于你的偏好。每个 GAMS 用户往往使用自己格式上的习惯。(单数 set 的使用也取决于你自己,在一个进行单一声明的语句中使用 set,和在一个进行多个声明的语句中使用 sets 仅是英语好的表现,但单数和复数对 GAMS 而言是相同的。)当你对一个集合赋予元素的时候,可采用一个方便的特性,即使用星号。这在元素是一个序列的情况下使用。例如,下列是 GAMS 中的合法 set 语句。这里结果是赋值:应该注意的是集合元素是作为字符串进行
25、存储的,因为 t 的元素不是数字。另一个方便的特性是 alias 语句,它用于给前面声明的集合起另外一个名称。看下面例子:名称 tp 就像在数学符号中的 t。在相同集合中的元素之间存在相互联系的模型中,这个语句是非常有用的。上述语句中集合 i,j,t 和 m 是静态集合的例子,也即,这些集合的元素直接由用户赋值,并且不再改变。GAMS 有几种创建动态集合的功能,它要求集合的元素在集合理论和逻辑运算的执行中是可变的。动态集合将在第 12 章讨论。另一个有价值的高级特性是多维集合,这将在 4.5 节讨论。2.4 数据数据这个运输问题的 GAMS 模型说明了所有三种允许用于输入数据的基本格式。这三种
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- GAMS 用户手册 中文翻译 15 编辑 修改 word
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。