GAMS新颖修订简体版经典编程案例Word文档格式.docx

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

GAMS新颖修订简体版经典编程案例Word文档格式.docx

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

GAMS新颖修订简体版经典编程案例Word文档格式.docx

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

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

kfchenmx.nthu.edu.tw

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

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

PositiveVariable

0to+∞

Nonnegative

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

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

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

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