资源描述:
《软件工具模型的构造.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、优化模型与软件工具模型构造软件工具1模型构造软件工具模型构造方法-结构化构模方法模型构造与求解工具1-EXCEL模型构造与求解工具2-GAMSGAMS(GeneralAlgebraicModelingSystem)世界银行的专家们需要做大量模型;大部分模型通过FORTRAN编写;模型准备时间长,且容易出错,需要合适的软件工具;GAMS提供了一种系统结构和构模语言,提高了模型构造的效率;3GAMS模型求解过程模型编译模型生成模型求解模型文件中间文件结果文件4GAMS模型结构5GAMS模型结构数据定义(SET,PARAMETER,TABLE,
2、SCALAR)变量定义(VARIABLES)方程定义(EQUATIONS)模型定义(MODEL)模型求解(SOLVE)结果输出(DISPLAY)6GAMS模型结构GAMS模型有符合GAMS语法的语句组成,任何购买要素在被引用前,必须已经被定义;GAMS语句可以按自然格式书写,允许一个语句延续若干行,或一行写几个语句;每个语句必须用分号“;”结束;不区分大、小写字母;说明语句的第一列应为星号“*”;7定义集合SET语句:定义下标集合SETIplant/A1,A2/;SETJmarket/B1,B2,B3/;或:SETSIplant/A1,A
3、2/Jmarket/B1,B2,B3/;或:SETSIplant/A1A2/Jmarket/B1B2B3/;i={A1,A2}j={B1,B2,B3}来自....中国最大的资料库下载8对连续变化集合元素的定义:SETJmarket/B1*B3/;SETTyear/1991*2000/;SETJmarket/B1*B10/;SETJmarket/B01*B10/;对集合元素的说明:SETFPfinalproduct/OILCrudeOilLPGLiquefiedpetroleumgasSULSulfurCOKCoke/;定义集合(续)9多维
4、集合的定义SETCCountries/CHINA,USA/;SETPPorts/Shanghai,Seattle/;SETCP(C,P)PortofCountry/Shanghai.CHINASeattle.USA/;GAMS将进行集合相关性检查ALIAS语句:定义有相同元素的集合:ALIAS(T,TE)多维集合10数据输入SCALARS语句:给固定参数赋值SCALASRHODiscountrate/0.10/IRRInt-rateofreturn/0.07/LIFELifetimeofUnit/20/;11PARAMETERS语句:PA
5、RAMETERS(I)Supplies/Shanghai50,Tianjing30,HK75/;PARAMETERR(T)Discountrate/19910.071992*19970.0619980.04/;所有数据要被“/”包括在里面;数据元素要在数据集合中已经定义过;零元素不必输入;允许多维参数语句:PARAMETERP(K,T);数据输入12TABLA语句:TABLED(I,J)distancein1000milesNew-YorkChicagoTopekaSeattle2.51.71.8San-Diego2.51.81.4+Bo
6、stonSeattle2.6San-Diego2.7;数据输入13数据直接赋值PARAMETERC(I,J)TransportationCost;C(I,J)=F*D(I,J)/1000;给某一数据项赋值C(‘A1’,‘B1’)=0.4;或:C(I,‘B1’)=0.4;赋值语句右边可以是数值,也可以是表达式;参数可以被多次赋值,但后面的会覆盖前面的赋值;数据输入14数学运算符:+-*/**逻辑运算符:LT,LE,EQ,NE,GT,GE,NOT,AND,OR,XOR函数:ABS:ABS(-3)=3FLOOR:FLOOR(3.4)=3CEIL
7、:CEIL(3.4)=4MAX:MAX(1,2,3)=3MIN:MIN(1,2,3)=1MOD:MOD(4.3)=0.3运算符与函数15函数SIN,COS:三角函数LOG:以e为底的自然对数运算LOG10:以10为底的对数运算EXP:以e为底的指数运算POWER:指数运算(指数必须为整数)SQR:平方SQRT:平方根CARD:集合元素的总数;ORD:集合元素的序数;运算符与函数(续)16定义变量VARIABLES语句:VARIABLESX(I,J)shipmentquantitiesZtotaltransportationcosts;PO
8、SITIVEVARIABLEX;(NEGATIVE,FREE,INTEGER,BINARY)17变量的后缀:V-name.LO变量的下界V-name.UP变量的上界V-name.L变量的实际取