[二年级其它课程]LINGO简介.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[二年级其它课程]LINGO简介

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)=40); !下面I#GT#1是一个逻辑关系式,意思是i1,称为 过滤条件 @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当然应该是之前定义了的基本集合。 * * * * * 一、如何编写、运行一个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+2x3≤10 -3x1+5x2-x3≤12 x1+x2+5x3≥8 -5x1-x2-x32 0≤x2≤20 x3≥30 程序如下: MODEL: TITLE 例1的模型; MAX=2*x1-3*x2+4*x3; 4*x1+3*x2+2*x3=10; -3*x1+5*x2-x3=12; x1+x2+5*x3=8; -5*x1-x2-x32; x3=30; !取消变量x1的非负限制; @free(x1); @BND(0,x2,20); END 例2 求解

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档