ImageVerifierCode 换一换
格式:DOCX , 页数:101 ,大小:1.83MB ,
资源ID:5422449      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5422449.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(GAMS新颖修订简体版经典编程案例.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

GAMS新颖修订简体版经典编程案例.docx

1、GAMS新颖修订简体版经典编程案例国立清华大学永续发展研究室GAMS基础篇 中文操作手册及程序语法黄宗煌教授TaiSEND研究团队制作前 言 2第一章 GAMS的操作方法 41. MENUS AND WINDOWS 41.0进入GAMS系统 41.1 FILE MENU 51.2 EDIT MENU 141.3 SEARCH MENU 141.4 WINDOWS MENU 161.5 HELP MENU 17第二章 GAMS的程序语法 192. GAMS程序基本结构 192.0概述 192.1 SET、ALIAS、AND TABLE语法例 202.2 PARAMETER AND SCALAR语

2、法例 212.3 VARIABLE语法例 222.4 EQUATION语法例 232.5 MODEL语法例 252.6 SOLVE语法例 262.7如何将数据导出至EXCEL 262.8以实例说明输出文件的基本结构 272.9 GAMS的其它语法及注意事项 37第三章 GAMS绘图功能 483. 在GAMS接口中绘图 483.0 GAMS绘图窗口介绍(CHART WINDOW) 483.1 GAMS图表编辑窗口(CHART EDITOR) 493.2 GAMS绘图步骤 523.3折线图(LINE CHART) 523.4直方图(BAR CHART) 563.5扇形图(PIE CHART) 57

3、3.6股票走势图(MULTI LINE CHART FOR STOCK DATA) 583.7 3D曲面图(3D SURFACE CHART) 593.8将资料导出至EXCEL 60第四章 GAMS基本例 624. 基本例 624.0例一:效用最大化问题 624.1例二:比较静态分析问题 634.2例三:CGE模型 664.3例四:家计单位优化模型 704.4例五:理想化成长模型 734.5例六:利用GAMS绘图 76参考文献 80前 言GAMS的全名为General Algebraic Modeling System(一般性代数仿真系统),其最初的研究与发展(R&D)是由国际复兴开发银行所资

4、助(International Bank for Reconstruction and Development),指世界银行(The World Bank),并且在华盛顿特区的发展研究中心执行这项计划。自1987年以来,GAMS的研究与发展已改由GAMS Development Corporation所资助。GAMS系统是在一羣数理经济学家的密切合作之下所开发,在系统的发展上,最重要的成功因素是共同应用在经济学、计算机科学和运筹学之间。虽然数学规划(mathematical programming)和经济理论(economics theory)交错严密,然而1975年诺贝尔经济学奖颁给Leon

5、id Kantorovich 和Tjalling Koopmans,以表彰他们在数学规划中对优化资源分配理论的贡献 。其它诺贝尔奖得者,像1972年的Kenneth Arrow、1973 年的Wassily Leontief、及1990年的Harry Markowitz也都在数学规划上非常闻名。线性规划算法起源于1940和1950年代George Dantzig早期的著作中,以计算技术和算法理论的发展较为迅速。三十年后,它有可能解决较复杂的问题,允许人们拿真实生活中的问题来测试经济理论。在1970和1980年代世界银行的研究议程里,创造了完善的环境,应用数学规划作研究一起带来不同的学科和经济发

6、展运算上的问题。GAMS系统的推动解决了一个从大经济模型群组中令人沮丧的经验。事后看来,你也许觉得1970年代数理经济学家,在当时使用最佳的技术,解决了当时大部分在农业、钢铁业、肥料、及电力上的经济及仿真优化的模型,引起了令人印象深刻的研究, 但最初的成功难再突破。因为当时的技术建构,操作,和解决这样的模型,需要人工、费时、及容易出错,而且数据的格式和解答的方法不是方便携带的。因此GAMS Development Corporation所接手开发的GAMS软件,是为了处理模型线性、非线性及混和整数优化的问题。GAMS尤其适合处理须精确模型之大型、复杂及独特的问题,使得问题符合高度精确及自然的法

7、则等,也允许使用者自行快速且简便的修改公式以便于求解其它的问题,甚至于只要稍加费心就能转换线性公式成非线性公式,近年来已广泛地被世界各经济学家所使用。对初学者来讲,需要掌握三个学习重点:解决含有限制式之目标函数优化问题、解决经济上一般平衡的问题、及解决非线性系统程序之问题。数月前承蒙清华大学经济系黄宗煌教授的建议,因有感于GAMS的操作手册及程序语法皆为英文且较为深入复杂,对初学者来讲会有阅读及学习上的困扰,因此编写此讲义,期盼对于初学GAMS的使用者有所帮助。此外,特别感晴雯小姐适时提供部份的GAMS基本例,及谷泛先生对本人在编写此讲义时的一些建议。对操作GAMS过程之技术询问,以及对本讲义

8、之容建议,请洽TaiSEND研究团队:中央大学产经所博士班 晴雯:(03)572-3685E-mail:93444008cc.ncu.edu.tw,清华大学永续发展研究室研究专任助理 谷泛:(03)572-3685E-mail:kfchenmx.nthu.edu.tw,及清华大学永续发展研究室研究专任助理 黄耿信:(03)572-3685E-mail:g4huangwmich.edu黄 耿 信 谨识民国九十七年七月九日于清华大学永续发展研究室第一章 GAMS的操作方法:1.Menus and Windows1.0进入GAMS系统1.1 File Menu1.2 Edit Menu1.3 Sea

9、rch Menu1.4 Windows Menu1.5 Help Menu1.0 进入GAMS系统: 当GAMS软件安装好之后,在计算机桌面上会出现GAMS-IDE之图像,请 点击此按钮进入GAMS系统,出现画面如下图所示: 1.1 File Menu: 1.1.1 File | New: 打开新的编辑窗口,请点选File | New指令或按键盘Ctrl+N,即可编写新的 GAMS程序,出现画面如下图所示:1.1.2 File | Open:打开一个或多个已存在档案,请点选File | Open指令、或按键盘Ctrl+O、或在GAMS接口中点击按钮,会出现开启档案的窗口,然后按照档案储存的路径

10、开启档案,按Shift+Ctrl+可选择多个GAMS档案,出现画面如下图所示: 1.1.3 File | Open in New Window: 打开一个或多个已存在档案在新的编辑窗口,其操作方法同1.1.2。 1.1.4 File | View in Explorer: 先开启一个已存在的GAMS档案,再点选File | View in Explorer指令, 会出现其档案的储存窗口,出现画面如下图所示: 1.1.5 File | Run: 执行GAMS程序,请点选File | Run指令、或直接按键盘的F9、或在GAMS 界面中点击按钮。 1.1.6 File | Save: 原档名存储G

11、AMS档案,请点选File | Save指令、或按键盘Ctrl+S、或在GAMS界面中点击 按钮。 1.1.7 File | Save as: 更改档名储存GAMS档案,请点选File | Save as。 1.1.8 File | Close: 关闭GAMS档案,请点选File | Close指令或点击编辑窗口右上角 。 1.1.9 File | Print: 打印GAMS档案,请点选File | Print指令、或在GAMS接口中点击 按 钮,出现画面如下图。打印之前可选择打印容,如档案路径及页数(Header & page number)、每列程序的编号(Line Numbers)、程序

12、格式栏印(Syntax print,如粗体字和斜体字)、彩色打印(Color print)、双面打印(Two pages)、打印预览(Preview)、及字号和样式(Printer font)等。 1.1.10 File | Preview: 打开之前曾经开启过的档案,请点选File | Preview指令,出现画面如下图 所示:曾經開啟過的檔案。 1.1.11 File | Exit: 点选File | Exit指令,或点击GAMS系统窗口右上角 ,可离开GAMS系统。 1.1.12 File | Model Library: 点选File | Model Library指令,可打开GAMS

13、标准模型图书馆(Open GAMS Model Library)里的例档案(着重于Model Type,如LP或NLP 等),出现画面如下图所示:或可打开式样模型图书馆(Open User Model Library)里的例档案(着重于语法格式,例如变量、方程式、及模型的宣告),其文件名为modlib.glb,路径如下:C:Program FilesGAMS22.6docsbigdocsgams2002modlib.glb。File | Project:(1)New Project:点选File | Project | New Project后,再决定New Project的檔名(例如:Har

14、ry Potter)及路径,其功能在使所有跟Harry Potter.gpr有关的档案都会储存在相同的路径底下,gpr为Project的扩展名,出现画面如下图所示:在Harry Potter.gpr下打開math1.gms檔案(儲存在F槽),然後執行程式,其所產生的輸出檔會跟Harry Potter.gpr儲存在相同的路徑。(2)Open Project:打开一个已存在的Project,则GAMS系统会要求你储存正在修改中的档案,且会自动关闭。File | Options:Options的功能如同GAMS系统的管家一般,总管GAMS系统的设定,包括Editor、Execute、Output、S

15、olvers、Licenses、Colors、File Extensions、Charts/GDX、及Execute2。(1) Options | Editor: 可设定字型及其样式和大小、Tab键的型式及大小、页边空白、段落标记、及语法颜色等,Options | Editor出现画面如下图所示:(2) Options | Execute: 设定GAMS系统执行程序时的环境,显示执行过程的窗口、及执行完成后显示lst文件的窗口等,Options | Execute出现画面如下图所示:(3) Options | Output: 设定输出档页面宽度和高度、日期和时间的型式,通常页面宽度的围介于72

16、255,页面高度为0或99999,Options | Output出现画面如下图所示:(4) Options | Solvers: 显示可使用的Solvers和Model的型态,以便解决问题。第一行显示可使用的Solvers,第二行显示Solvers的license状态。Full表示可完全使用其Solvers的功能,Demo表示试用版本,可部份使用其Solvers的功能。小长方形表示对某个Model型态来说,此Solvers选择了GAMS系统的隐含值;X表示对某个Model型态来说,现行所使用的Solvers;-(a dash)表示对某个Model型态来说,无法使用的Solvers。 例如:C

17、PLEX适用于LP、MIP、MIQCP、QCP等模型。(5) Options | Licenses: 在安装GAMS系统时,即可上传license档案,或在Options | Licenses选择替代的license档案,出现画面如下图所示:(6) Options | Colors: 设定GAMS程序语法的颜色(分为前景(Foreground)及背景(Background)及字体(包括粗体(Bold)、斜体(Italics)、及底线(Underline)。例如保留字(Reserved words),前景为蓝色,背景为Default值,粗体字。Options | Colors出现画面如下图所示:

18、1.2 Edit Menu(其功能和Microsoft Words编辑字段的功能一样): 1.2.1 Edit | Undo(Ctrl + Z): 回复至上一次更改程序的画面。 1.2.2 Edit | Redo(Shift + Ctrl + Z): 再次回复至上一次更改程序的画面。 1.2.3 Edit | Cut(Ctrl + X): 删除某一段程序容,并复制到你想要贴上的地方。 1.2.4 Edit | Copy(Ctrl + C): 复制所选择的程序容。 1.2.5 Edit | Paste(Ctrl + V): 贴上所选择的程序容。 1.2.6 Edit | Delete: 删除所选

19、择的程序容。 1.2.7 Edit | Select All(Ctrl + A): 选择档案全部的容。1.3 Search Menu:1.3.1 Search | Find(Ctrl + F): 寻找程序里的指令或语法。 1.3.2 Search | Replace(Ctrl + R): 寻找程序里错误的语法,并用正确的语法来取代,1.3.1和1.3.2的画面窗口如下图所示: 1.3.1画面窗口 1.3.2画面窗口1.3.3 Search | Goto line(Ctrl + G): 输入某列错误程序的列数(可由输出文件得知此列数),并修改其程式,出现的画面窗口如下图所示:程式中第七行發生打字

20、錯誤。1.4 Window Menu:1.4.1 Windows | Cascade: 多个编辑窗口呈阶梯式排列,出现的画面窗口如下图所示: 1.4.2 Windows | Tile Horizontal: 多个编辑窗口呈水平排列,出现的画面窗口如下图所示: 1.4.3 Windows | Tile Vertical: 多个编辑窗口呈垂直排列,出现的画面窗口如下图所示:1.5 Help Menu:可查询GAMS语法及其操作方法1.5.1 点选Help | GAMSIDE Help Topics,出现的画面窗口如下图所示:1.5.2可供查询的GAMS文件:(1) Help | GAMS User

21、s Guide: (2) Help | Solver Manual: (3) Help | Expanded GAMS Guide(McCarl):第二章 GAMS的程序语法:2.GAMS程序基本结构:2.0概述2.1 Set、Alias、and Table语法例2.2 Parameter and Scalar语法例2.3 Variable语法例2.4 Equation语法例2.5 Model语法例2.6 Solve语法例2.7如何将数据导出至Excel2.8以实例说明输出文件的基本结构2.9 GAMS的其它语法及注意事项2.10基本例2.0 概述:GAMS基本成员的语法格式大至如下所述:集合

22、的宣告(Declaration of sets):set set_name optional descriptive text / first element, second element, . /;数据的宣告(Declaration of data),包括参数(parameters)、表格(tables)、及规模变量(scalars):parameter parameter_name (set_dependency) optional descriptive text /first element with respect to the associated value,second el

23、ement with respect to the associated value, . /;table table_name (set_1, set_2) optional descriptive textset_2_element_1 set_2_element_2set_1_element_1 value_11 value_12set_1_element_2 value_21 value_22;scalar scalar_name optional descriptive text / numerical value /;变量的宣告(Declaration of variables):

24、variable type variable_name (set_dependency) optional descriptive text;方程式的宣告(Declaration of equations):equation equation_name (set_dependency) optional descriptive text;Equation_name. definition of equation;模型的述(Model statement):model model_name /all/;求解方法的述(Solve statement):solve model_name maximi

25、zing objective_function_name using model type;solve model_name minimizing objective_function_name using model type;2.1 Set、Alias、and Table语法例:给定一个集合u = 1, 2, 3,.,10 和它的子集合i = 1, 2, 3,用GAMS语法(GAMS syntax)可以写成如下的形式: set u person / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 /i(u) male / 1, 2, 3 /;假设我们已经定义集合u = 1, 2

26、, 3,.,10,如果再定义一个和u相同的集合,称为v = 1, 2, 3,.,10,我们能够写成如下的形式:set v person / 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 /; 然而我们能够用GAMS指令alias来取代上述的写法,其格式为:alias(u, v);例:set u SAM entry / BRD, WIN, CAP, LAB, HOH /i(u) goods / BRD, WIN /h(u) factor / CAP, LAB /;alias (u, v), (i, j), (h, k);*loading data -Table SAM(u, v)

27、social accounting matrix BRD WIN CAP LAB HOH BRD 15 WIN 35 CAP 5 20 LAB 10 15 HOH 25 25 ;*-2.2 Parameter and Scalar语法例:一般来说参数(parameter)的格式中,数据项的定义,通常都与集合有关联,这些数据项可以是一维空间或多维空间的例子。Parameter语法的基本格式如下:parameter par_name (set_dependency) optional descriptive text/ first set element name associated value

28、, second set element name associated value, . /;规模变量(scalar)的述是用来宣告及初始化参数,这意味着规模变量跟集合无关联,而是一个跟参数相关联的数值。Scalar语法的基本格式如下:scalar scalar_name optional descriptive text /numerical value/;例:Sets i canning plants / Seattle, San-Diego /j markets / New-York, Chicago, Detroit /;Parameters a(i) capacity of pla

29、nt i in cases / Seattle 350 San-Diego 600 / b(j) demand at market j in cases / New-York 325 Chicago 300 Detroit 275 /;Table d(i, j) distance in thousands of miles New-York Chicago Detroit Seattle 2.5 1.7 1.8 San-Diego 2.5 1.8 1.4;Scalar f freight in dollars per case per thousand miles /90/;Parameter

30、 c(i, j) transport cost in 1000s of dollars per case; c(i, j) = f*d(i, j)/1000;2.3 Variable语法例:在使用变量(variable)之前,必须先宣告变量的名字,Variable语法的基本格式如下:variable type var_name (set_dependency) optional descriptive text;变量类型(variable types):Variable TypesAllowed Range of VariableVariable- to +Free Variable- to +Variable TypesAllowed Range of VariablePositive Variable0 to +Nonnegative

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2