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

上传人:b****4 文档编号:5422449 上传时间:2023-05-08 格式:DOCX 页数:101 大小:1.83MB
下载 相关 举报
GAMS新颖修订简体版经典编程案例.docx_第1页
第1页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第2页
第2页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第3页
第3页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第4页
第4页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第5页
第5页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第6页
第6页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第7页
第7页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第8页
第8页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第9页
第9页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第10页
第10页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第11页
第11页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第12页
第12页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第13页
第13页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第14页
第14页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第15页
第15页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第16页
第16页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第17页
第17页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第18页
第18页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第19页
第19页 / 共101页
GAMS新颖修订简体版经典编程案例.docx_第20页
第20页 / 共101页
亲,该文档总共101页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

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

《GAMS新颖修订简体版经典编程案例.docx》由会员分享,可在线阅读,更多相关《GAMS新颖修订简体版经典编程案例.docx(101页珍藏版)》请在冰点文库上搜索。

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

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

国立清华大学永续发展研究室

 

GAMS基础篇

中文操作手册及程序语法

 

黄宗煌 教授

TaiSEND研究团队 制作

 

前言2

第一章GAMS的操作方法4

1.MENUSANDWINDOWS4

1.0进入GAMS系统4

1.1FILEMENU5

1.2EDITMENU14

1.3SEARCHMENU14

1.4WINDOWSMENU16

1.5HELPMENU17

第二章GAMS的程序语法19

2.GAMS程序基本结构19

2.0概述19

2.1SET、ALIAS、ANDTABLE语法例20

2.2PARAMETERANDSCALAR语法例21

2.3VARIABLE语法例22

2.4EQUATION语法例23

2.5MODEL语法例25

2.6SOLVE语法例26

2.7如何将数据导出至EXCEL26

2.8以实例说明输出文件的基本结构27

2.9GAMS的其它语法及注意事项37

第三章GAMS绘图功能48

3.在GAMS接口中绘图48

3.0GAMS绘图窗口介绍(CHARTWINDOW)48

3.1GAMS图表编辑窗口(CHARTEDITOR)49

3.2GAMS绘图步骤52

3.3折线图(LINECHART)52

3.4直方图(BARCHART)56

3.5扇形图(PIECHART)57

3.6股票走势图(MULTILINECHARTFORSTOCKDATA)58

3.73D曲面图(3DSURFACECHART)59

3.8将资料导出至EXCEL60

第四章GAMS基本例62

4.基本例62

4.0例一:

效用最大化问题62

4.1例二:

比较静态分析问题63

4.2例三:

CGE模型66

4.3例四:

家计单位优化模型70

4.4例五:

理想化成长模型73

4.5例六:

利用GAMS绘图76

参考文献80

前言

GAMS的全名为GeneralAlgebraicModelingSystem(一般性代数仿真系统),其最初的研究与发展(R&D)是由国际复兴开发银行所资助(InternationalBankforReconstructionandDevelopment),指世界银行(TheWorldBank),并且在华盛顿特区的发展研究中心执行这项计划。

自1987年以来,GAMS的研究与发展已改由GAMSDevelopmentCorporation所资助。

GAMS系统是在一羣数理经济学家的密切合作之下所开发,在系统的发展上,最重要的成功因素是共同应用在经济学、计算机科学和运筹学之间。

虽然数学规划(mathematicalprogramming)和经济理论(economicstheory)交错严密,然而1975年诺贝尔经济学奖颁给LeonidKantorovich和TjallingKoopmans,以表彰他们在数学规划中对优化资源分配理论的"贡献"。

其它诺贝尔奖得者,像1972年的KennethArrow、1973年的WassilyLeontief、及1990年的HarryMarkowitz也都在数学规划上非常闻名。

线性规划算法起源于1940和1950年代GeorgeDantzig早期的著作中,以计算技术和算法理论的发展较为迅速。

三十年后,它有可能解决较复杂的问题,允许人们拿真实生活中的问题来测试经济理论。

在1970和1980年代世界银行的研究议程里,创造了完善的环境,应用数学规划作研究一起带来不同的学科和经济发展运算上的问题。

GAMS系统的推动解决了一个从大经济模型群组中令人沮丧的经验。

事后看来,你也许觉得1970年代数理经济学家,在当时使用最佳的技术,解决了当时大部分在农业、钢铁业、肥料、及电力上的经济及仿真优化的模型,引起了令人印象深刻的研究,但最初的成功难再突破。

因为当时的技术建构,操作,和解决这样的模型,需要人工、费时、及容易出错,而且数据的格式和解答的方法不是方便携带的。

因此GAMSDevelopmentCorporation所接手开发的GAMS软件,是为了处理模型线性、非线性及混和整数优化的问题。

GAMS尤其适合处理须精确模型之大型、复杂及独特的问题,使得问题符合高度精确及自然的法则等,也允许使用者自行快速且简便的修改公式以便于求解其它的问题,甚至于只要稍加费心就能转换线性公式成非线性公式,近年来已广泛地被世界各经济学家所使用。

对初学者来讲,需要掌握三个学习重点:

解决含有限制式之目标函数优化问题、解决经济上一般平衡的问题、及解决非线性系统程序之问题。

数月前承蒙清华大学经济系黄宗煌教授的建议,因有感于GAMS的操作手册及程序语法皆为英文且较为深入复杂,对初学者来讲会有阅读及学习上的困扰,因此编写此讲义,期盼对于初学GAMS的使用者有所帮助。

此外,特别感晴雯小姐适时提供部份的GAMS基本例,及谷泛先生对本人在编写此讲义时的一些建议。

对操作GAMS过程之技术询问,以及对本讲义之容建议,请洽TaiSEND研究团队:

中央大学产经所博士班晴雯

(03)572-3685

E-mail:

93444008cc.ncu.edu.tw

,清华大学永续发展研究室研究专任助理谷泛

(03)572-3685

E-mail:

kfchenmx.nthu.edu.tw

,及清华大学永续发展研究室研究专任助理黄耿信

(03)572-3685

E-mail:

g4huangwmich.edu

 

黄耿信谨识

民国九十七年七月九日

于清华大学永续发展研究室

第一章GAMS的操作方法:

1.MenusandWindows

1.0进入GAMS系统

1.1FileMenu

1.2EditMenu

1.3SearchMenu

1.4WindowsMenu

1.5HelpMenu

 

1.0进入GAMS系统:

当GAMS软件安装好之后,在计算机桌面上会出现GAMS-IDE之图像

,请

点击此按钮进入GAMS系统,出现画面如下图所示:

1.1FileMenu:

1.1.1File|New:

打开新的编辑窗口,请点选File|New指令或按键盘Ctrl+N,即可编写新的

GAMS程序,出现画面如下图所示:

1.1.2File|Open:

打开一个或多个已存在档案,请点选File|Open指令、或按键盘Ctrl+O、或在GAMS接口中点击

按钮,会出现开启档案的窗口,然后按照档案储存的路径开启档案,按Shift+Ctrl+↓可选择多个GAMS档案,出现画面如下图所示:

1.1.3File|OpeninNewWindow:

打开一个或多个已存在档案在新的编辑窗口,其操作方法同1.1.2。

1.1.4File|ViewinExplorer:

先开启一个已存在的GAMS档案,再点选File|ViewinExplorer指令,

会出现其档案的储存窗口,出现画面如下图所示:

1.1.5File|Run:

执行GAMS程序,请点选File|Run指令、或直接按键盘的F9、或在GAMS

界面中点击

按钮。

1.1.6File|Save:

原档名存储GAMS档案,请点选File|Save指令、或按键盘Ctrl+S、或在

GAMS界面中点击

按钮。

1.1.7File|Saveas:

更改档名储存GAMS档案,请点选File|Saveas。

1.1.8File|Close:

关闭GAMS档案,请点选File|Close指令或点击编辑窗口右上角。

1.1.9File|Print:

打印GAMS档案,请点选File|Print指令、或在GAMS接口中点击

钮,出现画面如下图。

打印之前可选择打印容,如档案路径及页数(Header

&pagenumber)、每列程序的编号(LineNumbers)、程序格式栏印(Syntax

print,如粗体字和斜体字)、彩色打印(Colorprint)、双面打印(Twopages)、

打印预览(Preview)、及字号和样式(Printerfont)等。

1.1.10File|Preview:

打开之前曾经开启过的档案,请点选File|Preview指令,出现画面如下图

所示:

曾經開啟過的檔案。

1.1.11File|Exit:

点选File|Exit指令,或点击GAMS系统窗口右上角,可离开GAMS

系统。

1.1.12File|ModelLibrary:

点选File|ModelLibrary指令,可打开GAMS标准模型图书馆(Open

GAMSModelLibrary)里的例档案(着重于ModelType,如LP或NLP

等),出现画面如下图所示:

或可打开式样模型图书馆(OpenUserModelLibrary)里的例档案(着重于语

法格式,例如变量、方程式、及模型的宣告),其文件名为modlib.glb,路径如下:

C:

\ProgramFiles\GAMS22.6\docs\bigdocs\gams2002\modlib.glb。

File|Project:

(1)NewProject:

点选File|Project|NewProject后,再决定NewProject的檔名(例如:

HarryPotter)及路径,其功能在使所有跟HarryPotter.gpr有关的档案都会储存在相同的路径底下,gpr为Project的扩展名,出现画面如下图所示:

在HarryPotter.gpr下打開math1.gms檔案(儲存在F槽),然後執行程式,其所產生的輸出檔會跟HarryPotter.gpr儲存在相同的路徑。

(2)OpenProject:

打开一个已存在的Project,则GAMS系统会要求你储存正在修改中的档案,且会自动关闭。

File|Options:

Options的功能如同GAMS系统的管家一般,总管GAMS系统的设定,包括Editor、Execute、Output、Solvers、Licenses、Colors、FileExtensions、Charts/GDX、及Execute2。

(1)Options|Editor:

可设定字型及其样式和大小、Tab键的型式及大小、页边空白、段落标记、及语法颜色等,Options|Editor出现画面如下图所示:

(2)Options|Execute:

设定GAMS系统执行程序时的环境,显示执行过程的窗口、及执行完成后显示lst文件的窗口等,Options|Execute出现画面如下图所示:

(3)Options|Output:

设定输出档页面宽度和高度、日期和时间的型式,通常页面宽度的围介于72~255,页面高度为0或99999,Options|Output出现画面如下图所示:

(4)Options|Solvers:

显示可使用的Solvers和Model的型态,以便解决问题。

第一行显示可使用的Solvers,第二行显示Solvers的license状态。

Full表示可完全使用其Solvers的功能,Demo表示试用版本,可部份使用其Solvers的功能。

小长方形表示对某个Model型态来说,此Solvers选择了GAMS系统的隐含值;X表示对某个Model型态来说,现行所使用的Solvers;-(adash)表示对某个Model型态来说,无法使用的Solvers。

例如:

CPLEX适用于LP、MIP、MIQCP、QCP等模型。

(5)Options|Licenses:

在安装GAMS系统时,即可上传license档案,或在Options|Licenses选择替代的license档案,出现画面如下图所示:

(6)Options|Colors:

设定GAMS程序语法的颜色(分为前景(Foreground)及背景(Background)及字体(包括粗体(Bold)、斜体(Italics)、及底线(Underline))。

例如保留字(Reservedwords),前景为蓝色,背景为Default值,粗体字。

Options|Colors出现画面如下图所示:

1.2EditMenu(其功能和MicrosoftWords编辑字段的功能一样):

1.2.1Edit|Undo(Ctrl+Z):

回复至上一次更改程序的画面。

1.2.2Edit|Redo(Shift+Ctrl+Z):

再次回复至上一次更改程序的画面。

1.2.3Edit|Cut(Ctrl+X):

删除某一段程序容,并复制到你想要贴上的地方。

1.2.4Edit|Copy(Ctrl+C):

复制所选择的程序容。

1.2.5Edit|Paste(Ctrl+V):

贴上所选择的程序容。

1.2.6Edit|Delete:

删除所选择的程序容。

1.2.7Edit|SelectAll(Ctrl+A):

选择档案全部的容。

 

1.3SearchMenu:

1.3.1Search|Find(Ctrl+F):

寻找程序里的指令或语法。

1.3.2Search|Replace(Ctrl+R):

寻找程序里错误的语法,并用正确的语法来取代,1.3.1和1.3.2的画面窗口如

下图所示:

1.3.1画面窗口1.3.2画面窗口

1.3.3Search|Gotoline(Ctrl+G):

输入某列错误程序的列数(可由输出文件得知此列数),并修改其程

式,出现的画面窗口如下图所示:

程式中第七行發生打字錯誤。

1.4WindowMenu:

1.4.1Windows|Cascade:

多个编辑窗口呈阶梯式排列,出现的画面窗口如下图所示:

1.4.2Windows|TileHorizontal:

多个编辑窗口呈水平排列,出现的画面窗口如下图所示:

1.4.3Windows|TileVertical:

多个编辑窗口呈垂直排列,出现的画面窗口如下图所示:

 

1.5HelpMenu:

可查询GAMS语法及其操作方法

1.5.1点选Help|GAMSIDEHelpTopics,出现的画面窗口如下图所示:

1.5.2可供查询的GAMS文件:

(1)Help|GAMSUsersGuide:

(2)Help|SolverManual:

(3)Help|ExpandedGAMSGuide(McCarl):

第二章GAMS的程序语法:

2.GAMS程序基本结构:

2.0概述

2.1Set、Alias、andTable语法例

2.2ParameterandScalar语法例

2.3Variable语法例

2.4Equation语法例

2.5Model语法例

2.6Solve语法例

2.7如何将数据导出至Excel

2.8以实例说明输出文件的基本结构

2.9GAMS的其它语法及注意事项

2.10基本例

 

2.0概述:

GAMS基本成员的语法格式大至如下所述:

◆集合的宣告(Declarationofsets):

●setset_nameoptionaldescriptivetext/firstelement,secondelement,.../;

◆数据的宣告(Declarationofdata),包括参数(parameters)、表格(tables)、及规模变量(scalars):

●parameterparameter_name(set_dependency)optionaldescriptivetext

/firstelementwithrespecttotheassociatedvalue,secondele

mentwithrespecttotheassociatedvalue,.../;

●tabletable_name(set_1,set_2…)optionaldescriptivetext

set_2_element_1set_2_element_2

set_1_element_1value_11value_12

set_1_element_2value_21value_22;

●scalarscalar_nameoptionaldescriptivetext/numericalvalue/;

◆变量的宣告(Declarationofvariables):

●variabletypevariable_name(set_dependency)optionaldescriptivetext;

◆方程式的宣告(Declarationofequations):

●equationequation_name(set_dependency)optionaldescriptivetext;

●Equation_name..definitionofequation;

◆模型的述(Modelstatement):

●modelmodel_name/all/;

◆求解方法的述(Solvestatement):

●solvemodel_namemaximizingobjective_function_nameusingmodeltype;

●solvemodel_nameminimizingobjective_function_nameusingmodeltype;

 

2.1Set、Alias、andTable语法例:

Ø给定一个集合u={1,2,3,...,10}和它的子集合i={1,2,3},用GAMS语法(GAMSsyntax)可以写成如下的形式:

setuperson/1,2,3,4,5,6,7,8,9,10/

i(u)male/1,2,3/;

Ø假设我们已经定义集合u={1,2,3,...,10},如果再定义一个和u相同的集合,称为v={1,2,3,...,10},我们能够写成如下的形式:

setvperson/1,2,3,4,5,6,7,8,9,10/;

然而我们能够用GAMS指令alias来取代上述的写法,其格式为:

alias(u,v);

Ø例:

setuSAMentry/BRD,WIN,CAP,LAB,HOH/

i(u)goods/BRD,WIN/

h(u)factor/CAP,LAB/;

alias(u,v),(i,j),(h,k);

*loadingdata-----------------------------------------------------------------

TableSAM(u,v)socialaccountingmatrix

BRDWINCAPLABHOH

BRD15

WIN35

CAP520

LAB1015

HOH2525

;

*----------------------------------------------------------------------------------

 

2.2ParameterandScalar语法例:

Ø一般来说参数(parameter)的格式中,数据项的定义,通常都与集合有关联,这些数据项可以是一维空间或多维空间的例子。

ØParameter语法的基本格式如下:

parameterpar_name(set_dependency)optionaldescriptivetext

/firstsetelementnameassociatedvalue,secondsetelementnameassociatedvalue,.../;

Ø规模变量(scalar)的述是用来宣告及初始化参数,这意味着规模变量跟集合无关联,而是一个跟参数相关联的数值。

ØScalar语法的基本格式如下:

scalarscalar_nameoptionaldescriptivetext/numericalvalue/;

Ø例:

Setsicanningplants/Seattle,San-Diego/

jmarkets/New-York,Chicago,Detroit/;

Parametersa(i)capacityofplantiincases

/Seattle350

San-Diego600/

b(j)demandatmarketjincases

/New-York325

Chicago300

Detroit275/;

Tabled(i,j)distanceinthousandsofmiles

New-YorkChicagoDetroit

Seattle2.51.71.8

San-Diego2.51.81.4;

Scalarffreightindollarspercaseperthousandmiles/90/;

Parameterc(i,j)transportcostin1000sofdollarspercase;

c(i,j)=f*d(i,j)/1000;

 

2.3Variable语法例:

Ø在使用变量(variable)之前,必须先宣告变量的名字,Variable语法的基本格式如下:

variabletypevar_name(set_dependency)optionaldescriptivetext;

Ø变量类型(variabletypes):

VariableTypes

AllowedRangeofVariable

Variable

-∞to+∞

FreeVariable

-∞to+∞

VariableTypes

AllowedRangeofVariable

PositiveVariable

0to+∞

Nonnegative

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

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

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