如何使用软件_第1页
如何使用软件_第2页
如何使用软件_第3页
如何使用软件_第4页
如何使用软件_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

如何使用软件第1页,共50页,2023年,2月20日,星期六1在Lingo中使用Lindo模型Lindo与Lingo都是LINDO系统公司开发的专门用于求解最优化问题的软件包。与Lindo相比,Lingo软件主要具有两大优点:(1)除具有LINDO的全部功能外,还可用于求解非线性规划问题,包括非线性整数规划问题。(2)LINGO包含了内置的建模语言,允许以简练、直观的方式描述较大规模的优化问题,模型中所需的数据可以以一定格式保存在独立的文件中。第2页,共50页,2023年,2月20日,星期六1在Lingo中使用Lindo模型Lingo9.0完全支持Lindo模型程序的书写格式。在Lingo9.0模型窗口中选择菜单命令“File|Open(F3)”

注意在Lingo9.0以前的版本中(如Lingo8.0),“File|ImportLINDOFile(F12)”命令可以将Lindo模型文件转化成Lingo模型。这个菜单命令的意思是“导入Lindo文件”(在LINGO9.0中已无必要,所以该命令已经被取消了)。第3页,共50页,2023年,2月20日,星期六·后缀“ldt”表示LINGO数据文件;·后缀“ltf”表示LINGO命令脚本文件;·后缀“lgr”表示LINGO报告文件;·后缀“mps”表示MPS(数学规划系统)格式的模型文件;·“*.*”表示所有文件。后缀“lg4”表示LINGO格式的模型文件,是一种特殊的二进制格式文件,保存了我们在模型窗口中能够看到的所有文件和其他对象及其格式信息,只有LINGO能读出它,用其他系统打开这种文件时会出现乱码;后缀“lng”表示文本格式的模型文件,并且以这个格式保存模型时LINGO将给出警告,因为模型中的格式信息(如字体、颜色、嵌入对象等)将会丢失;LINDO格式的模型文件第4页,共50页,2023年,2月20日,星期六2用Lingo求解二次规划(QP)模型例2.1某厂生产的一种产品有甲、乙两个牌号,讨论在产销平衡的情况下如何确定各自的产量,使总的利润最大。所谓产销平衡指工厂的产量等于市场上的销量,没有卖不出去的产品的情况。显然,销售总利润既取决于两种牌号产品的销量和(单件)价格,也依赖于产量和(单件)成本,按照市场经济规律,甲的价格p1固然会随其销量x1的增长而降低,同时乙的销量x2的增长也会使甲的价格有稍微的下降,可以简单地假设价格与销量成线性关系,即p1=b1-a11x1-a12x2,b1,a11,a12>0,a11>a12;类似地,乙的价格p2遵循同样的规律,即有p2=b2-a21x1-a22x2,b2,a21,a22>0,a22>a21.例如,假定实际中b1=100,a11=1,a12=0.1,b2=280;a21=0.2,a22=2。此外,假设工厂的生产能力有限,两种牌号产品的产量之和不可能超过100件,且甲的产量不可能超过乙的产量的两倍,甲乙的单件生产成本分别是q1=2和q2=3(假定为常数)。求甲、乙两个牌号的产量x1,x2使总利润最大。第5页,共50页,2023年,2月20日,星期六优化模型

决策变量:决策变量就是甲、乙两个牌号的产量(也是销量)x1,x2目标函数:显然,目标函数就是总利润z(x1,x2),即

z(x1,x2)=(p1-q1)x1+(p2-q2)x2

=(100-x1-0.1x2-2)x1+(280-0.2x1- 2x2-3)x2

=98x1+277x2-x12-0.3x1x2-2x22约束条件:题中假设工厂的生产能力有限,两种产品的产量之和不可能超过100件,且产品甲的产量不可能超过乙的产量的两倍。写成数学表达式,就是x1+x2≤100,x1≤2x2第6页,共50页,2023年,2月20日,星期六综上所述

maxz=98x1+277x2-x12-0.3 x1x2-2x22

(1.1)

s.t.

x1+x2≤100(1.2)

x1≤2x2(1.3)

x1,x2≥0(1.4)第7页,共50页,2023年,2月20日,星期六LINGO中的变量名由字母和数字组成,但必须以字母开头,长度不能超过32个字符(只能是英文字符,不能含有中文字符)行号、“TITLE”语句和注释语句是LINGO中唯一可以使用汉字字符的地方行号必须以字母或下划线开头;LINGO中不区分大小写字母LINGO中已假定所有变量非负第8页,共50页,2023年,2月20日,星期六通过“LINGO|Generate|DisplayModel(Ctrl+G)”命令可以看到完整的模型以及每行语句对应的行号了。第9页,共50页,2023年,2月20日,星期六可使用“

LINGO|Picture

”命令检查模型中的简单错误,该命令将目标函数和约束表达式中的非零系数通过列表(或图形)显示出来。第10页,共50页,2023年,2月20日,星期六用“LINGO|Solve(Ctrl+S)”命令来运行这个程序。(如果想要了解运行状态窗口中各项的含义,可先点击工具栏上的图标,再点击运行状态窗口,屏幕上自动弹出运行状态窗口的帮助信息。)第11页,共50页,2023年,2月20日,星期六求解结果报告窗口第12页,共50页,2023年,2月20日,星期六3敏感性分析敏感性分析的作用是给出“Rangesinwhichthebasisisunchanged”,即研究当目标函数的系数和约束右端项在什么范围变化(此时假定其他系数保持不变)时,最优基(矩阵)保持不变。注意:这里LINGO不询问是否进行敏感性分析。如果需要进行敏感性分析,必须用“LINGO|Options”命令打开系统选项对话框,在“GeneralSolver”标签下的“DualComputations”下拉列表中选中“Prices&Range”,再按下“OK”按钮激活敏感性分析功能。修改了系统选项后,以后只需调用“LINGO|Range”命令即可进行敏感性分析了。第13页,共50页,2023年,2月20日,星期六修改运行时的内存限制激活敏感性分析第14页,共50页,2023年,2月20日,星期六 例3.1一奶制品加工厂用牛奶生产A1,A2两种奶制品,1桶牛奶可以在甲车间用12h加工成3kgA1,或者在乙车间用8h加工成4kgA2。根据市场需求,生产出的A1,A2全部能售出,且每千克A1获利24元,每千克A2获利16元。现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480h,并且甲车间的设备每天至多能加工100kgA1,乙车间的设备的加工能力可以认为没有上限限制(即加工能力足够大)。试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题: (1)若用35元可以买到1桶牛奶,是否作这项投资?若投资,每天最多购买多少桶牛奶? (2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元? (3)由于市场需求变化,每千克A1的获利增加到30元,是否应该改变生产计划?第15页,共50页,2023年,2月20日,星期六优化模型

决策变量: 设每天用x1桶牛奶生产A1,用x2桶牛奶生产A2

目标函数: 设每天获利为z(元),x1桶牛奶生产3x1(kg)A1,获利24×3x1,x2桶牛奶生产4x2(kg)A2,获利16×4x1,故z=72x1+64x2.

约束条件:

原料供应:生产A1,A2的原料(牛奶)总量不得超过每 天的供应,即x1+x2≤50(桶);

劳动时间:生产A1,A2的总加工时间不得超过每天正式 工人总的劳动时间,即12x1+8x2≤480(h);

设备能力:A1的产量不得超过甲车间设备每天的加工 能力,即3x1≤100;

非负约束:x1,x2均不能为负值。第16页,共50页,2023年,2月20日,星期六综上所述Maxz=72x1+64x2;s.t.x1+x2≤50,

12x1+8x2≤480,

3x1≤100,

x1,x2≥0线性规划模型(LP)第17页,共50页,2023年,2月20日,星期六模型分析与假设

比例性可加性连续性xi对目标函数的“贡献”与xi取值成正比xi对约束条件的“贡献”与xi取值成正比xi对目标函数的“贡献”与xj取值无关xi对约束条件的“贡献”与xj取值无关xi取值连续A1,A2每公斤的获利是与各自产量无关的常数每桶牛奶加工出A1,A2的数量和时间是与各自产量无关的常数A1,A2每公斤的获利是与相互产量无关的常数每桶牛奶加工出A1,A2的数量和时间是与相互产量无关的常数加工A1,A2的牛奶桶数是实数线性规划模型第18页,共50页,2023年,2月20日,星期六模型求解

图解法

x1x20ABCDl1l2l3l4l5约束条件目标函数

Z=0Z=2400Z=3600z=c(常数)~等值线c在B(20,30)点得到最优解目标函数和约束条件是线性函数可行域为直线段围成的凸多边形目标函数的等值线为直线最优解一定在凸多边形的某个顶点取得。第19页,共50页,2023年,2月20日,星期六Lingo优化模型这是一个(连续)线性规划(LP)问题第20页,共50页,2023年,2月20日,星期六“LINGO|Solve”求解结果报告(1)若用35元可以买到1桶牛奶,是否作这项投资?若投资,每天最多购买多少桶牛奶?(2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?(3)由于市场需求变化,每千克A1的获利增加到30元,是否应该改变生产计划?“LINGO|Range”敏感性分析第21页,共50页,2023年,2月20日,星期六结论应该批准用35元买1桶牛奶的投资,但每天最多购买10桶牛奶。可以用低于2元/h的工资聘用临时工人以增加劳动时间,但最多增加53.3333h。若每千克A1的获利增加到30元,则x1系数变为30×3=90,在允许的范围内,所以不应改变生产计划,但最优值变为90×20+64×30=3720。第22页,共50页,2023年,2月20日,星期六 例4.1SAILCO公司需要决定下四个季度的帆船生产量。下四个季度的帆船需求量分别是40条,60条,75条,25条,这些需求必须按时满足。每个季度正常的生产能力是40条帆船,每条船的生产费用为400美元。如果加班生产,每条船的生产费用为450美元。每个季度末,每条船的库存费用为20美元,假定生产提前期为0,初始库存为10条船。如何安排生产可使总费用最小?4在LINGO中使用集合第23页,共50页,2023年,2月20日,星期六

DEM——需求量,RP——正常生产的产量,OP——加班生产的产量,INV——库存量

目标函数:

约束条件:

能力限制RP(I)≤40,I=1,2,3,4

产品数量的平衡方程

INV(I)=INV(I-1)+RP(I)+OP(I)-DEM(I)I=1,2,3,4 INV(0)=10;

变量的非负约束第24页,共50页,2023年,2月20日,星期六Lingo优化模型集合属性集合的属性相当于以集合的元素为下标的数组第25页,共50页,2023年,2月20日,星期六Lingo模型的基本要素(1)集合段(SETS)(2)目标与约束段(3)数据段(DATA):作用在于对集合的属性(数 组)输入必要的常数数据。格式为:

attribute(属性)=value_list(常数列表);

常数列表(value_list)中数据之间可以用逗号“,”分 开,也可以用空格分开(回车的作用也等价于一个空 格)

“变量名=?;”

——运行时赋值(4)初始段(INIT)——赋初值(5)计算段(CALC)——预处理第26页,共50页,2023年,2月20日,星期六例4.2建筑工地的位置(用平面坐标a,b表示,距离单位:km)及水泥日用量d(单位:t)由下表给出。目前有两个临时料场位于P(5,1),Q(2,7),日储量各有20t,求从A,B两料场分别向各工地运送多少吨水泥,使总的吨公里数最小。两个新的料场应建在何处,节省的吨公里数有多大?

123456a1.258.750.55.7537.25b1.250.754.7556.57.75d3547611工地的位置(a,b)及水泥日用量d第27页,共50页,2023年,2月20日,星期六优化模型 记工地的位置为(ai,bi),水泥日用量为di,i=1,2,…,6;料场位置为(xj,yj),日储量为ej,j=1,2;从料场j向工地i的运送量为cij。决策变量: 在问题(1)中,决策变量就是料场j向工地i的运送量cij,该问题是个LP问题;在问题(2)中,决策变量除了料场j向工地i的运送量cij,新建料场位置(xj,yj)也是决策变量,该问题是个NLP问题。目标函数:

f是总吨公里数(运量乘以运输距离)第28页,共50页,2023年,2月20日,星期六约束条件:各工地的日用量必须满足,所以各料场的运送量不能超过日储量,所以Cij非负第29页,共50页,2023年,2月20日,星期六综上所述该问题的数学规划模型是:第30页,共50页,2023年,2月20日,星期六Lingo优化模型(NLP)demand,supply:这种直接把元素列举出来的集合,称为基本集合link={(s,t)|s∈demand,t∈supply}.这种基于其他集合派生出来的二维或多维集合称为派生集合。Demand,supply称为link的父集合。初始段按列赋值第31页,共50页,2023年,2月20日,星期六局部最优解第32页,共50页,2023年,2月20日,星期六全局最优解第33页,共50页,2023年,2月20日,星期六Lingo优化模型(LP)第34页,共50页,2023年,2月20日,星期六全局最优解第35页,共50页,2023年,2月20日,星期六

总结:集合的不同类型及其关系集合派生集合基本集合稀疏集合稠密集合元素列表法元素过滤法直接列举法隐式列举法第36页,共50页,2023年,2月20日,星期六5运算符优先级 运算符Highest#NOT#-(negation) ^*/ +-#EQ##NE##GT##GE##LT##LE##AND##OR#Lowest <=(<)=>=(>)算术运算符:^*/+-逻辑运算符:a)#AND##OR##NOT#——逻辑值之间

b)#EQ##NE##GT##GE##LT# #LE#——数与数之间

a)、b)运算结果都是逻辑值关系运算符:<=(<)=>=(>)——数与数之间,表示优化模型的 约束条件第37页,共50页,2023年,2月20日,星期六函数注意:LINGO9.0与之前的版本相比,增加了很多新的内部函数。使用这些新函数的优化模型在LINGO9.0之前的各种版本中无法执行。我们可以使用下拉菜单“Edit|PasteFunction”在LINGO的模型窗口下直接输入所需的各种内部函数。此外,可先点击工具栏上的图标,再点击“Edit|PasteFunction”下你所感兴趣的函数,屏幕上将弹出该函数功能的帮助信息。第38页,共50页,2023年,2月20日,星期六“Edit|PasteFunction”菜单命令第39页,共50页,2023年,2月20日,星期六6LINGO软件与外部文件的接口

1〉通过Windows剪贴板传递数据:(1)“Edit|Paste(Ctrl+V)”

一般仅用于剪贴板中的内容是文本(包括多信息文本,即RTF格式的文本)的情形。(2)“Edit|PasteSpecial…(Ctrl+V)”

可以用于剪贴板中的内容不是文本的情形,如可以嵌入(插入)其他应用程序中生成的对象(object)或对象的链接(link)。第40页,共50页,2023年,2月20日,星期六

2〉通过文本文件传递数据(1)输入:@FILE(filename);

可以在集合段和数据段使用,但不允许嵌套使用,filename文件中记录之间必须用“~”分开。(2)输出:@TEXT([‘filename’]);通常只在数据段使用。第41页,共50页,2023年,2月20日,星期六3〉通过Excel电子表格文件传递数据

@OLE('xlsFile','range1'[,...,'rangen'])

xlsFile是电子表格文件的名称,应当包括扩展名(如*.xls),还可以包含完整的路径名,只要字符数不超过64均可;

range列表是指文件中包含数据的单元范围(单元范围的格式与Excel中工作表的单元范围格式一致)。

第42页,共50页,2023年,2月20日,星期六该函数只能在LINGO模型的集合段、数据段和初始段使

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论