lingo初级入门手册.ppt
《lingo初级入门手册.ppt》由会员分享,可在线阅读,更多相关《lingo初级入门手册.ppt(127页珍藏版)》请在三一办公上搜索。
1、LINGO软件使用,LINGO是美国LINDO系统公司开发的一套专门用于求解最优化问题的软件它为求解最优化问题提供了一个平台,主要用于求解线性规划、非线性规划、整数规划、二次规划、线性及非线性方程组等问题它是最优化问题的一种建模语言,包含有许多常用的函数供使用者编写程序时调用,并提供了与其他数据文件的接口,易于方便地输入,求解和分析大规模最优化问题,且执行速度快由于它的功能较强,所以在教学、科研、工业、商业、服务等许多领域得到了广泛的应用,目录,3.1 LINGO操作界面简介3.2 LINGO模型的基本特征3.3 LINGO的运算符和函数3.4 LINGO软件求解案例,LINGO操作界面简介,
2、图1.1中最外层的窗口是LINGO软件的主窗口(LINGO软件的用户界面),所有其他窗口都在这个窗口之内主窗口有:标题栏、菜单栏、工具栏和状态栏目前,状态栏最左边显示的是“Ready”,表示准备就绪,右下角显示的是当前时间,时间前面是当前光标的位置“Ln 1,Col 1”(即1行1列)将来用户可以用选项命令(LINGO|Options|Interface菜单命令)决定是否需要显示工具栏和状态栏,在Windows操作系统下启动LINGO软件,屏幕上首先显示如图1.1所示的窗口.,图1.1,LINGO有5个主菜单:,File(文件)Edit(编辑)LINGO(LINGO系统)Windows(窗口)
3、Help(帮助),这些菜单的用法与Windows下其他应用程序的标准用法类似,下面只对主菜单中LINGO系统的主要命令进行简要介绍,LINGO系统(LINGO)的主菜单,LINGO|Solve(Ctrl-S)LINGO|Solve(Ctrl-S)(求解)命令对当前模型进行编译并求解如果当前模型输入有错误,编译时将报告错误求解时会显示一个求解器运行状态窗口 LINGO|Solution(Ctrl-O)LINGO|Solution(Ctrl-O)(解答)命令显示当前解 LINGO|Range(Ctrl-R)LINGO|Range(Ctrl-R)(灵敏度分析)命令显示当前解的灵敏度分析结果(你必须在
4、此之前求解过当前模型),LINGO|Options(Ctrl-I)LINGO|Options(Ctrl-I)(选项)命令将打开一个含有7个选项卡的对话框窗口,你可以通过它修改LINGO系统的各种控制参数和选项修改完以后,你如果单击“应用”按钮,则新的设置马上生效;如果单击“OK”按钮,则新的设置马上生效,并且同时关闭该窗口;如果单击“Save”按钮,则将当前设置变为默认设置,下次启动LINGO时这些设置仍然有效;如果单击“Default”按钮,则恢复LINGO系统定义的原始默认设置;如果单击“Cancel”按钮将废弃本次操作,退出对话框;单击“Help”按钮将显示本对话框的帮助信息LINGO|
5、Generate和LINGO|Picture LINGO|Generate和LINGO|Picture命令都是在模型窗口下才能使用,他们的功能是按照LINGO模型的完整形式分别以代数表达式形式和矩阵图形形式显示目标函数和约束,LINGO|Debug(Ctrl+D)LINGO|Debug(Ctrl+D)命令分析线性规划无解或无界的原因,建议如何修改.LINGO|Model Statistics(Ctrl+E)LINGO|Model Statistics(Ctrl+E)命令显示当前模型的统计信息LINGO|Look(Ctrl+L)LINGO|Look(Ctrl+L)命令显示当前模型的文本形式,显示
6、时对所有行按顺序编号,图1.2给出了工具栏的简要功能说明,当前光标所在的窗口(窗口标题栏上标有“LINGO Model-LINGO1”),就是模型窗口(model windows),也就是用于输入LINGO优化模型(即LINGO程序)的窗口,LINGO模型的基本特征,LINGO模型(程序)从LINGO模型窗口输入,它以语句“MODEL:”开始,以语句“END”结束它是由一系列语句组成,每个语句都是以分号“;”结束,语句是组成LINGO模型的基本单位每行可以写多个语句,为了保持模型的可读性,最好一行只写一个语句,并且按照语句之间的嵌套关系对语句安排适当的缩进,增强层次感以感叹号“!”开始的语句是
7、注释语句(注释语句也需要以分号“;”结束),LINGO模型(程序)一般由5个部分(或称5段)组成:,(1)集合段(SETS)(2)数据段(DATA)(3)初始化段(INIT)(4)计算段(CALC)(5)目标与约束段,(1)集合段(SETS)这部分要以“SETS:”开始,以“ENDSETS”结束,作用在于定义必要的集合变量(SET)及其元素(member,含义类似于数组的下标)和属性(attribute,含义类似于数组)格式有基本集和派生集两种,基本集:Setname(集合变量名)/member_list(元素列表)/:attribute_list(属性列表);元素列表可以全部一一列出,也可以
8、用格式“/元素1.元素N/”列出,例如SETS:STUDENTS/1,2,3,4,5/:NAME,AGE;ENDSETSSETS:STUDENTS/1.5/:NAME,AGE;ENDSETS,派生集:Setname(parent_set_list(源集列表)/member_list/:attribute_list;例如SETS:PRODUCT/A B/;MACHINE/M N/;WEEK/1.2/;ALLOWED(PRODUCT,MACHINE,WEEK);ENDSETS列表可以用逗号“,”分开,也可以用空格分开,(2)数据段(DATA),这部分要以“DATA:”开始,以“ENDDATA”结束
9、,作用在于对集合的属性(数组)输入必要的常数数据格式为:attribute_list(属性列表)=value_list(常数列表);例如SETS:SET1/A,B,C/:X,Y;ENDSETSDATA:X=1 2 3;Y=4 5 6;ENDDATA,(2)数据段(DATA),这部分要以“DATA:”开始,以“ENDDATA”结束,作用在于对集合的属性(数组)输入必要的常数数据格式为:attribute_list(属性列表)=value_list(常数列表);例如SETS:SET1/A,B,C/:X,Y;ENDSETSDATA:X=1 2 3;Y=4 5 6;ENDDATA,(3)初始化段(IN
10、IT),这部分要以“INIT:”开始,以“ENDINIT”结束,作用在于对集合的属性(数组)给出初值格式为:attribute_list(属性列表)=value_list(常数列表);与数据段的用法类似,(4)计算段(CALC),这部分要以“CALC:”开始,以“ENDCALC”结束,作用在于对一些原始数据进行计算处理因为在实际问题中,输入的数据往往是原始数据,不一定能在模型中直接使用,可以在这个段对这些原始数据进行一定的“预处理”,得到模型中真正需要的数据在计算段中语句是顺序执行的,(5)目标与约束段,这部分没有段的开始和结束标记,作用在于给定目标函数与约束条件可见除这一段外,其他4个段都有
11、明确的段标记这一段是模型的主要部分,其他段是为这一段服务的其他四段可以没有,这一段必须要有否则不称其为模型这一段一般要用到LINGO的运算符和各种函数,LINGO的运算符和函数,LINGO包含有大量的运算符和函数,供程序(建立优化模型)调用,其功能很强充分利用这些函数,对解决问题将是非常方便的下面给出部分函数及简要功能介绍,全部函数及详细功能说明可进一步参考LINGO的使用手册,一、运算符及其优先级二、基本的数学函数三、集合循环函数四、集合操作函数五、变量定界函数六、财务会计函数七、概率中的相关函数八、文件输入输出函数,运算符及其优先级,LINGO的运算符有三类:算数运算符、逻辑运算符和关系运
12、算符,1算术运算符:,LINGO中提供了二元运算符的算术运算符有以下5种:+(加法),-(减法或负号),*(乘法),/(除法),(求幂)算术运算是数与数之间的运算,运算结果仍是数,2逻辑运算符:,LINGO中的逻辑运算符有以下9种,可以分成两类:(1)#AND#(与),#OR#(或),#NOT#(非):这三个运算是逻辑值之间的运算,也就是它们操作的对象本身必须已经是逻辑值或逻辑表达式,计算结果也是逻辑值(2)#EQ#(等于),#NE#(不等于),#GT#(大于),#GE#(大于等于),#LT#(小于),#LE#(小于等于):这6个操作实际上是“数与数之间”的比较,也就是它们操作的对象本身必须是
13、两个数,而逻辑表达式计算的结果是逻辑值,3关系运算符:,LINGO中的关系运算符有以下3种:(即,小于等于),(等于),(即,大于等于)这三个运算符虽然也是“数与数之间”的比较,但在LINGO中只用来表示优化模型的约束条件,所以不是真正意义上的运算,这些运算符的优先级如表3.1所示(同一优先级按左到右的顺序执行;如果有括号“()”,则括号内的表达式优先进行计算),表3.1,基本的数学函数,在LINGO中写程序时可以调用大量的内部函数,这些函数以“”符号打头(类似调用命令)LINGO中数学函数的用法与其它语言中的数学函数的用法类似,主要有以下函数:ABS(X):绝对值函数,返回X的绝对值COS(
14、X):余弦函数,返回X的余弦值(X的单位是弧 度)EXP(X):指数函数,返回ex的值FLOOR(X):取整函数,返回X的整数部分(向最靠近0的方向取整)LGM(X):返回X的伽马(Gamma)函数的自然对数 值,LOG(X):自然对数函数,返回X的自然对数值MOD(X,Y):模函数,返回X对Y取模的结果 POW(X,Y):指数函数,返回XY的值SIGN(X):符号函数,返回X的符号值(X0时返回-1,X0返回1)SIN(X):正弦函数,返回X的正弦值SMAX(list):最大值函数,返回列表(list)中的最大值SMIN(list):最小值函数,返回列表(list)中的最小值SQR(X):平
15、方函数,返回X的平方值SQRT(X):平方根函数,返回X的正的平方根的值TAN(X):正切函数,返回X的正切值,集合循环函数,集合循环函数是指对集合上的元素(下标)进行循环操作的函数,主要有FOR,MAX,MIN,SUM,PROD五种,其用法如下:function(setname(set_index_list)|conditional_qualifier:expression_list);其中:Function是集合函数名;Setname是集合名;set_index_list是集合索引列表(不需要使用索引时可以省略);|conditional_qualifier是用逻辑表达式给出的过滤条件(无
16、条件时可以省略);:expression_list是一个表达式(对FOR函数,可以是一组表达式),集合循环函数,四个集合循环函数:FOR、SUM、MAX、MINfunction(setname(set_index_list)|condition:expression_list);,objective MAX=SUM(PAIRS(I,J):BENEFIT(I,J)*MATCH(I,J);FOR(STUDENTS(I):constraints SUM(PAIRS(J,K)|J#EQ#I#OR#K#EQ#I:MATCH(J,K)=1);FOR(PAIRS(I,J):BIN(MATCH(I,J);MA
17、XB=MAX(PAIRS(I,J):BENEFIT(I,J);MINB=MIN(PAIRS(I,J):BENEFIT(I,J);,Example:,程序与数据分离,文本文件,使用外部数据文件,Cut(or Copy)Paste 方法FILE 输入数据、TEXT输出数据(文本文件)OLE函数与电子表格软件(如EXCEL)连接ODBC函数与数据库连接LINGO命令脚本文件,LG4(LONGO模型文件)LNG(LONGO模型文件)LTF(LONGO脚本文件)LDT(LONGO数据文件)LRP(LONGO报告文件),常用文件后缀,FILE和TEXT:文本文件输入输出,MODEL:SETS:MYSET/
18、FILE(myfile.txt)/:FILE(myfile.txt);ENDSETSMIN=SUM(MYSET(I):SHIP(I)*COST(I);FOR(MYSET(I):CON1 SHIP(I)NEED(I);CON2 SHIP(I)SUPPLY(I);DATA:COST=FILE(myfile.txt);NEED=FILE(myfile.txt);SUPPLY=FILE(myfile.txt);TEXT(result.txt)=SHIP,DUAL(SHIP),DUAL(CON1);ENDDATAEND,myfile.txt文件的内容、格式:Seattle,Detroit,Chicago
19、,DenverCOST,NEED,SUPPLY,SHIP12,28,15,201600,1800,1200,10001700,1900,1300,1100,演示 MyfileExample.lg4,OLE:与EXCEL连接,MODEL:SETS:MYSET:COST,SHIP,NEED,SUPPLY;ENDSETSMIN=SUM(MYSET(I):SHIP(I)*COST(I);FOR(MYSET(I):CON1 SHIP(I)NEED(I);CON2 SHIP(I)SUPPLY(I);DATA:MYSET=OLE(D:JXIEBJ2004MCMmydata.xls,CITIES);COST,
20、NEED,SUPPLY=OLE(mydata.xls);OLE(mydata.xls,SOLUTION)=SHIP;ENDDATAEND,mydata.xls文件中必须有下列名称(及数据):CITIES,COST,NEED,SUPPLY,SOLUTION,在EXCEL中还可以通过“宏”自动调用LINGO(略)也可以将EXCEL表格嵌入到LINGO模型中(略),演示 MydataExample.lg4,ODBC:与数据库连接,输入基本集合元素:setname/ODBC(datasource,tablename,columnname)/输入派生集合元素:setname/ODBC(source,ta
21、ble,column1,column2)/,目前支持下列DBMS:(如为其他数据库,则需自行安装驱动)ACCESS,DBASE,EXCEL,FOXPRO,ORACLE,PARADOX,SQL SERVER,TEXE FILES,使用数据库之前,数据源需要在ODBC管理器注册,输入数据:Attr_list=ODBC(source,table,column1,column2)输出数据:ODBC(source,table,column1,column2)=Attr_list,具体例子略,LINGO软件求解案例,MODEL:MIN=66.8*x11+75.6*x12+87*x13+58.6*x14+6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- lingo 初级 入门 手册
链接地址:https://www.31ppt.com/p-6511096.html