《LINGO简介》PPT课件.ppt

上传人:za****8 文档编号:16087176 上传时间:2020-09-18 格式:PPT 页数:35 大小:277.50KB
返回 下载 相关 举报
《LINGO简介》PPT课件.ppt_第1页
第1页 / 共35页
《LINGO简介》PPT课件.ppt_第2页
第2页 / 共35页
《LINGO简介》PPT课件.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
LINGO优化软件简介,一、如何编写、运行一个LINGO 程序,1、编写 双击LINGO图标,启动软件,屏幕上显示LINGO的初始用户界面。光标所在的窗口称为模型窗口(model window),用来供用户输入优化模型(LINGO程序)。 输入结束后,从莱单中选择File/Save(F5)命令把它保存在一个文件中,默认的后缀名为lg4,即LINGO程序的二进制文件。 保存的文件将来可以用File/Open(F3)重新打开进行修改。,2、运行 从莱单中选择LINGO/Solve(Ctrl+S)命令运行程序。 用鼠标选择主莱单中Window/Reports Window,这就是最终结果的报告窗口。,二、如何编写一个简单的LINGO程序,说明: (1)在模型窗口中输入一个LINGO程序,以“MODEL:”开始,以“END”结束。对简单的模型,这两个语句也可以省略。 (2)目标函数的表达方式是“MAX=”或“MIN=”,约束条件的S.T不要写出。 (3)决策变量的变量名由字母和数字组成,但必须以字母开头,且长度不超过32个字符。不区分大小写字母(包括LINGO本身的关键字,如MAX、MIN、END)。,(4)每行可以用行号(行名)进行标识,行名写法和变量名一样,行号用数字前带下划线表示,以方括号“ ”为行号(行名)的首尾,位于目标函数或每一个约束条件的开头。如果用户没有指定行号(行名),系统会自动产生行号,将目标函数所在行作为第一行,从第二行起为约束条件。 (5)注释语句用“!”开头,单独一个语句。 (6)变量与其系数间用“*”连接。 (7)每个语句(目标函数、约束条件和说明语句)结束用“;”,允许一行写多个语句,但最好一行只写一个语句。,(8)LINGO假定所有变量非负,可以用命令“FREE(变量名)”取消变量的非负假定。 (9)用命令“BND(下界,变量名,上界)”设置变量的上界和下界。 (10)一般整数变量可用“GIN(变量名)”来标识,0-1型变量可用“BIN(变量名)”来标识。 (11) 可以在模型的任何地方用TITLE语句对输入的模型命名。,例1、求解线性规划(LP)问题 MAX f=2x1-3x2+4x3 S.T 4x1+3x2+2x310 -3x1+5x2-x312 x1+x2+5x38 -5x1-x2-x32 0 x220 x330 程序如下:,MODEL: TITLE 例1的模型; MAX=2*x1-3*x2+4*x3; 4*x1+3*x2+2*x3=8; -5*x1-x2-x32; x3=30; !取消变量x1的非负限制; free(x1); BND(0,x2,20); END,例2 求解整数线性规划(ILP)问题 MAX f=20 x1+10 x2 S.T 5x1+4x224 2x1+5x213 xi0, i=1,2 x1,x2为整数 程序如下:,MODEL: MAX=20*x1+10*x2; 5*x1+4*x2=24; 2*x1+5*x2=13; GIN(x1); GIN(x2); END,例3 求解01整数线性规划问题 MAX f=-3x1+2x2-5x3 S.T X1+ x2-x32 X1+4x2+x34 X1+ x2 3 4x2+x36 xi (i=1,2,3)为0或1 程序如下:,MODEL: MAX=-3*x1+2*x2-5*x3; X1+ x2-x3=2; X1+4*x2+x3=4; X1+x2=3; 4*x2+x3=6; BIN(x1); BIN(x2); BIN(x3); END,例4 求解混合整数线性规划问题 MAX f=2x1+3x2+4x3 S.T 1.5X1+3x2+5x3600 280X1+250 x2+400 x360000 80y1x11000y1 80y2x21000y2 80y3x31000y3 x1,x2,x30 yi (i=1,2,3)为0或1 程序如下:,MODEL: MAX=2*x1+3*x2+4*x3; 1.5*X1+3*x2+5*x380*y1; x280*y2; x380*y3; BIN(y1); BIN(y2); BIN(y3); end,MODEL: MAX=98*x1+277*x2-x12-0.3*x1*x2-2*x22; X1+x2=100; X1=2*x2; GIN(x1); GIN(x2); end,MODEL: Min=exp(x1)*(6*x12+3*x22+2*x1*x2+4*x2+1); X1*x2-x1-x2=0; -2*x1*x2-5=0; free(x1); free(x2); GIN(x1); GIN(x2); END 值得注意的是,此时求解模型应该用莱单命令“LINGO/Options”在“Global Solver”选项卡上启动全局优化(use global solver)选项,然后重新执行莱单命令“LINGO/Solve”,得到全局最优解。,三、LINGO模型的基本要素,当你遇到的是一个较大规模的优化问题时,怎样才能做到输入几个语句就可以建立起含有很多变量的目标函数和成千上万条约束的一个复杂庞大的模型呢? 掌握LINGO提供的最优化模型语言是至关重要的。 一个最复杂的LINGO模型由以下5个要素组成(当然,如果实际问题不需要,则其中的某些要素可以省略),它们写在“MODEL:”与“END”之间。,1、集合定义部分 这部分以“SETS:”开始,以“ENDSETS”结束,作用在于定义必要的集合变量(SET)及其元素(member,类似于数组的下标)和属性(attribute,类似于数组)。格式是: 集合名/1.n/:属性列表; 各属性之间用“,”分隔。属性的具体数值如果是常量,则可在数据输入部分输入;如果是未知量,则可在初始部分输入它的初值。,2、数据输入部分 这部分以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性输入必要的常数数据。格式是: 属性名=常数列表; 常数列表中的数据之间用“,”或空格或回车分隔。,3、目标与约束部分 这部分没有开始和结束标记。是定义了模型的实际目标函数和约束条件。 4、初始部分 这部分以“INIT:”开始,以“ENDINIT”结束,作用在于对集合的属性输入它的初值。格式是: 属性名=常数列表; 常数列表中的数据之间用“,”或空格或回车分隔。,5、计算部分 这部分以“CALC:”开始,以“ENDCALC”结束,作用在于对一些原始数据进行计算处理。为什么要这么做呢?这是因为在实际问题中,输入的数据通常是原始数据,不一定能在模型中直接使用,需要对这些原始数据进行一定的预处理后,得到我们模型中真正需要的数据。,四、如何在LINGO中使用集合,1、集合的基本用法 要注意当使用集合时,模型的目标函数是用求和函数 SUM(集合(下标):关于集合的属性的表达式) 的方式定义的,这个函数的功能是对语句中冒号“:”后面的表达式按照“:”前面的集合指定的下标(元素)进行求和。 约束条件是用循环函数 FOR(集合(下标):关于集合的属性的约束关系式) 的方式定义的,意思是对“:”前面的集合的每个下标(元素),“:”后面的约束关系式都要成立。,MODEL: SETS: !pp为集合名; pp/1.4/:r,x,y,z; ENDSETS DATA: r=40,60,75,25; ENDDATA Min=SUM(pp(i):400*x(i)+450*y(i)+20*z(i); for(pp(i):x(i)1,称为 过滤条件 for(pp(i)|I#GT#1:z(i)=z(i-1)+x(i)+y(i)-r(i);); z(1)=10 +x(1)+y(1)-r(1);END,2、基本集合与派生集合 可以利用两个集合,定义一个由二元对组成的新集合,它的功效就相当于一个二维数组。格式是: link(集合名1,集合名2):集合名3; 这里的集合名1,集合名2当然应该是之前定义了的基本集合。,MODEL: SETS: Demand/1.6/:a,b,d; Supply/1.2/:x,y,e; Link(Demand, Supply):c; ENDSETS DATA: a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; e=20,20; ENDDATA,Init: X,y=5,1,2,7; ENDInit min=sum(link(i,j):c(i,j)*(x(j)-a(i)2+(y(j)-b(i)2)(1/2); for(Demand(i):Demand_CON sum(Supply(j):c(i,j)=d(i);); for(Supply(j):Supply_CON sum(Demand(i):c(i,j)=e(j);); for(Supply:free(x); free(y);); END,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!