首页 Lindo,Lingo软件介绍

Lindo,Lingo软件介绍

举报
开通vip

Lindo,Lingo软件介绍Lindo,Lingo软件介绍 Lindo/Lingo软件初步 Lindo/Lingo软件是美国Lindo系统公司开发的一套专门用于求解优化 模型的软件。Lindo系统公司面向全社会免费提供该软件的“演示版”,我们 现在使用的就是这个演示版。占领硬盘空间大约20MB . 一(Lingo入门 1(编写简单的Lingo程序 Lingo程序:在“模型窗口”中,按Lingo语法格式,输入一个完整的 优化模型。 (注意:一个程序就是一个优化模型) maxz,2x,3y, s.t.4x,3y,10, 例1 要求解线...

Lindo,Lingo软件介绍
Lindo,Lingo软件介绍 Lindo/Lingo软件初步 Lindo/Lingo软件是美国Lindo系统公司开发的一套专门用于求解优化 模型的软件。Lindo系统公司面向全社会免费提供该软件的“演示版”,我们 现在使用的就是这个演示版。占领硬盘空间大约20MB . 一(Lingo入门 1(编写简单的Lingo程序 Lingo程序:在“模型窗口”中,按Lingo语法格式,输入一个完整的 优化模型。 (注意:一个程序就是一个优化模型) maxz,2x,3y, s.t.4x,3y,10, 例1 要求解线性规划问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 3x,5y,12, x,y,0.输入程序: max=2*x+3*y; 4*x+3*y<=10; 3*x+5*y<=12; 22max98x,277x,x,0.3xx,2x,121122 s.t.x,x,100,12 例2 求解 x,2x,12 x,x,0,且都是整数.12 输入程序: max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2; x1<=2*x2;x1+x2<=100; @gin(x1); @gin(x2); 2(语法格式 (1)目标函数 max= 或 min= (2)每个语句的结尾要有“;” (3)程序中,各个语句的先后次序无关 (4)自动默认各个变量均为大于等于零的实数 (5)不区分大写、小写 , (6)程序中的“<=”、“<”等同于原模型中的“” , 程序中的“>=”、“>”等同于原模型中的“” (7)对一个特定的变量 x ,进行限制: @free(x) :把x放宽为任意实数 @gin(x) :限制x为整数 @bin(x) :限制x只能取0或1 @bnd(-6,x,18) :限制x为闭区间[-6,18]上的任意实数 例3:某学校游泳队要从5名队员中选4名参加4乘100米混合泳接力赛。 5名队员4种泳姿的百米成绩(单位:秒) ----------------------------------------------------------------------------------- 李 王 张 刘 赵 蝶泳 66.8 57.2 78 70 67.4 仰泳 75.6 66 67.8 74.2 71 蛙泳 87 66.4 84.6 69.6 83.8 自由泳 58.6 53 59.4 57.2 62.4 ----------------------------------------------------------------------------------- 如何选拔, (1)请建立“0----1规划”模型; (2)用Lingo求解。 解:若第i名队员参加第j种泳姿比赛,则令;否则令;共有20x,1x,0ijij 。第i名队员的第j种泳姿成绩记为,则 个决策变量xcijij 54 目标函数为: mincx,,ijijij,,11 4 约束条件有:每名队员顶多能参加一种泳姿比赛 ; x,1,i,1,2,3,4,5,ijj,1 5 每种泳姿有且仅有一人参加 x,1,j,1,2,3,4.,iji,1 这样就能建立如下“0----1规划”模型: 54 mincx,,ijijij,,11 4 s.t. x,1,i,1,2,3,4,5,ijj,1 5 x,1,j,1,2,3,4.,iji,1 x,0或1,i,1,2,3,4,5,j,1,2,3,4. ij Lingo程序如下: min=66.8*x11+57.2*x21+78*x31+70*x41+67.4*x51+75.6*x12+66*x22+67.8*x 32+74.2*x42+71*x52+87*x13+66.4*x23+84.6*x33+69.6*x43+83.8*x53+58.6*x 14+53*x24+59.4*x34+57.2*x44+62.4*x54; x11+x12+x13+x14<=1; x21+x22+x23+x24<=1; x31+x32+x33+x34<=1; x41+x42+x43+x44<=1; x51+x52+x53+x54<=1; x11+x21+x31+x41+x51=1; x12+x22+x32+x42+x52=1; x13+x23+x33+x43+x53=1; x14+x24+x34+x44+x54=1; @bin(x11); @bin(x21); @bin(x31); @bin(x41); @bin(x51); @bin(x12); @bin(x22); @bin(x32); @bin(x42); @bin(x52); @bin(x13); @bin(x23); @bin(x33); @bin(x43); @bin(x53); @bin(x14); @bin(x24); @bin(x34); @bin(x44); @bin(x54); 答:均等于1,即,依次取第2个人王、第3个人张、第4个x,x,x,x21324314 人刘、第1个人李参加蝶泳、仰泳、蛙泳、自由泳,成绩为253.2秒。 再介绍本题的另一个解法:用遍历法求出最佳组队方案。从5人中任取4人, 随意安排各人的泳姿,则共有 5!=120 种方案,取成绩最佳的方案。Matlab程序为 clear c=[66.8,75.6,87,58.6;57.2,66,66.4,53;78,67.8,84.6,59.4;70,74.2,69.6,57.2;67.4,71, 83.8,62.4]; zxcj=888; for a1=1:5 for a2=1:5 for a3=1:5 for a4=1:5 aabb=(a1-a2)*(a1-a3)*(a1-a4)*(a2-a3)*(a2-a4)*(a3-a4); if aabb~=0 cj=c(a1,1)+c(a2,2)+c(a3,3)+c(a4,4); if cj 计划 项目进度计划表范例计划下载计划下载计划下载课程教学计划下载 ,使总运费尽量低。 (2)进一步调整这两个临时料场的位置,使总运费最低。 解:第i号工地:位置,水泥日用量, i=1,2,3,4,5,6. (a,b)diii 第j号料场:位置,水泥日供应能力, j=1,2. (x,y)ejjj 从j号料场向i号工地的日运输水泥量记为 . cij 注意:在问题(1)中,为已知数据,故决策变量为,共12个; (x,y)cjjij 在问题(2)中,待定,故决策变量为,共16个。 (x,y)x,y,cjjjjij 22 从j号料场到i号工地,距离为,送去重量为的(x,a),(y,b)cjijiij水泥,二者乘积即为运输费。 2622目标函数: minc(x,a),(y,b),,ijjijiji,,11 2 约束条件: 满足需求: c,d,i,1,2,...,6,iji,j1 6 供应能力: ,j=1,2 c,e,ijj,1i 非负性: c,0ij 这就是本题的优化模型。 尝试用Lingo求解该模型时,六个建筑工地作为一个集合gdjh,两个料场作为一个集合lcjh。接下来就会遇到困难:决策变量不仅是依赖于集合cijgdjh的属性,而且是依赖于集合lcjh的属性,这样的属性应该如何定义呢, 根据两个基本集合gdjh与lcjh构造一个派生集合gdlcjh,再把定义为cij这个集合的属性。 先看本题第(1)问的Lingo程序,再看注解: model: sets: gdjh/1..6/:a,b,d; lcjh/1,2/:x,y,e; gdlcjh(gdjh,lcjh):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; x,y=5,1,2,7;e=20,20; enddata min=@sum(gdlcjh(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^0.5); @for(gdjh(i):@sum(lcjh(j):c(i,j))=d(i)); @for(lcjh(j):@sum(gdjh(i):c(i,j))<=e(j)); end 注解:(1)定义派生集合及其属性的命令格式为 派生集合名(基本集合1,基本集合2):属性 (2)赋值语句“x,y=5,1,2,7”的赋值顺序是“x(1)=5,y(1)=1,x(2)=2,y(2)=7”,而不是“x(1),x(2),y(1),y(2)”;在程序中,该语句可换成“x=5,2;y=1,7”,功能相同。 (3)当表达式中出现的下标符号多于1个时,必须指明针对哪个符号做运算。 答:从1号料场分别向第1、2、4、6号工地运输水泥 3 5 7 1; 从2号料场分别向3、5、6号工地运输水泥 4 6 10 ; 可以使总运输量(质量乘距离)达到最小 136.2275(t*km) . 再来解决本题第(2)问,料场位置也是需要优化的决策变量。先看(x,y)jj Lingo程序,再看注解: model: sets: gdjh/1..6/:a,b,d; lcjh/1,2/:x,y,e; gdlcjh(gdjh,lcjh):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(gdlcjh(i,j):c(i,j)*((x(j)-a(i))^2+(y(j)-b(i))^2)^0.5); @for(gdjh(i):@sum(lcjh(j):c(i,j))=d(i)); @for(lcjh(j):@sum(gdjh(i):c(i,j))<=e(j)); @for(lcjh:@free(x);@free(y)); end 注解:(1)编写Lingo程序时,应尽可能地为决策变量提供初始值,这样可以节省机器工作量。 (2)初始值部分(从“init:”到“endinit”):内容是给决策变量赋初值。本程序 中,把原来的料场位置(5,1),(2,7)作为初值。 重新解前面例3之“0----1规划”模型: (第i名队员的第j种泳姿成绩记为, 表示第i名队员参加第j种泳姿比赛) cx,1ijij 54 mincx,,ijijij,,11 4 s.t. x,1,i,1,2,3,4,5,ijj,1 5 x,1,j,1,2,3,4.,iji,1 x,0或1,i,1,2,3,4,5,j,1,2,3,4.ij 程序如下: model: sets: dyjh/1..5/; yzjh/1..4/; cjjh(dyjh,yzjh):c,x; endsets data: c=66.8,75.6,87,58.6,57.2,66,66.4,53,78,67.8,84.6,59.4,70,74.2,69.6,57.2,67.4 ,71,83.8,62.4; enddata min=@sum(cjjh:c*x); @for(dyjh(i):@sum(yzjh(j):x(i,j))<=1); @for(yzjh(j):@sum(dyjh(i):x(i,j))=1); @for(cjjh:@bin(x)); end 四(稠密集合与稀疏集合 前面例4中,由两个基本集合gdjh与lcjh,构造了一个派生集合gdlcjh,这里gdlcjh的元素定义为gdjh与lcjh的笛卡儿积,即包含了两个基本集合构成的所有二元有序对,这种派生集合称为稠密集合(简称稠集)。 在实际应用中,某些时候,有的属性只在笛卡儿积的一个真子集上定义,而不是在整个稠集上定义。Lingo允许把一个派生集合定义为笛卡儿积上的真子集,这种派生集合称为稀疏集合(简称疏集)。 例6:最短路问题 在纵横交错的公路网中,货车司机希望找到一条从一个城市到另一个城市的最短路。下图标出9个城市: A1 B1 C1 S A2 B2 C2 T A3 城市之间的公路有: S----A1:60km S----A2:30km S----A3:30km A1----B1:60km A1----B2:50km A2----B1:80km A2----B2:60km A3----B1:70km A3----B2:40km B1----C1:60km B1----C2:70km B2----C1:80km B2----C2:90km C1----T:50km C2----T:60km 求从S到T的最短路。 说明:就这个小题而言,我们很容易用“动态规划”或“图论”的方法求出最短路。这里的目的不是这个题本身,而是要借用本题介绍“在Lingo中使用稀疏集”。 定义一个集合city,其元素就是这9个城市,从S到每个城市的最短距离定义为该集合的属性,记为 。 l 先看程序,再看注解: model: sets: city/s,a1,a2,a3,b1,b2,c1,c2,t/:l; gljh(city,city)/s,a1 s,a2 s,a3 a1,b1 a1,b2 a2,b1 a2,b2 a3,b1 a3,b2 b1,c1 b1,c2 b2,c1 b2,c2 c1,t c2,t/:d; endsets data: l=0,,,,,,,,; d=60,30,30,60,50,80,60,70,40,60,70,80,90,50,60; enddata @for(city(i)|i#gt#1:l(i)=@min(gljh(j,i):l(j)+d(j,i))); end 注解:(1)根据基本集合city生成一个派生集合gljh用来表示城市之间的一条条公路,因为并不是每两个城市之间都直接有公路相连(如:从A2到C1),所以这个派生集合不能定义为稠密集。本程序中,用枚举法列出了稀疏集gljh的全部15条公路,d是其属性,代表每条公路的长度。 (2)l(i)表示集合city中第i个元素的属性,即从S到第i个城市的最短距离,显然l(1)=0,而其余的l(i)正是本题所要求的,。程序中,对ll(i),min{l(j),d(j,i)},j 赋值时,第一个数是0,其余8个未知数必须用逗号给空出来。 (3)Lingo程序中,允许没有目标函数。 此例中,稀疏集的元素是用枚举法给出的,若元素较多,就太麻烦了。 Lingo提供了另一种方法:“元素过滤”法,能够从稠密集中系统地过滤出部 分真正需要的元素构成稀疏集。请看下面例子。 例7:现要将8名同学分成4个调查队(每组2人)前往4个地区进行 社会调查。假设他们任意两人组成一队的工作效率为已知,见下表(由于对称 性,只须列出上三角部分): 任意两人组成一队的工作效率 学生 S1 S2 S3 S4 S5 S6 S7 S8 S1 9 3 4 2 1 5 6 S2 1 7 3 5 2 1 S3 4 4 2 9 2 S4 1 5 5 2 S5 8 7 6 S6 2 3 S7 4 问如何组队可以使总效率最高, 解:构造一个效率集合xljh,其属性xl就是上表中那28个数据,如: xl(S1,S5)=2, xl(S3,S7)=9。 用y(Si,Sj)=1表示Si与Sj组成一个队;用y(Si,Sj)=0 表示Si与Sj不是一个队。 目标函数: maxxl(Si,Sj),y(Si,Sj),1,i,j,8 约束条件:每名学生必须且只能参加某一个队,即,对于第k名同学而 言,他与其他人所组成的队的个数必须等于1,故有 , k=1,2,3,…,8 y(Si,Sj),1,i,kj,k或1,i,j,8 另外, y(Si,Sj),0或1 (以上就是本题的优化模型,是“0----1线性规划”) model: sets: xsjh/1..8/; xljh(xsjh,xsjh)|&2#gt#&1:xl,y; endsets data: xl=9,3,4,2,1,5,6,1,7,3,5,2,1,4,4,2,9,2,1,5,5,2,8,7,6,2,3,4; enddata max=@sum(xljh(i,j):xl(i,j)*y(i,j)); @for(xsjh(k): @sum(xljh(i,j)|(i#eq#k)#or#(j#eq#k):y(i,j))=1); @for(xljh(i,j):@bin(y(i,j))); end 注解:(1)根据基本集合xsjh构造效率集合xljh时,我们只需要二元对 (i,j) 中那些当i 小于等于 等于 大于等于 (Lingo中的关系运算式通常作为约束条件来使用,用来 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 数与数之间的大小关系) 优先级: #not# -(负号) ^ * / + - #eq# #ne# #gt# #ge# #lt# #le# #and# #or# < = > 2(基本的数学函数 ( 对于给定的数x ,可以计算其函数值 ) sin(x) cos(x) tan(x) exp(x) log(x) sqrt(x) abs(x) 3(集合循环函数 (下面5个函数,其括号中的格式为 集合名:表达式 ) @for( ) @sum( ) @max( ) @min( ) @prod( ) 积 4(变量定界函数 @free(x) :把x放宽为任意实数 @gin(x) :限制x为整数 @bin(x) :限制x只能取0或1 @bnd(-6,x,18) :限制x为闭区间[-6,18]上的任意实数 七(练习题 题1.总运力问题 某卡车公司拨款800万元用于购买新的运输工具,有3种运输工具可供选择: A的载重量10吨,平均时速45千米,价格26万元; B的载重量20吨,平均时速40千米,价格36万元; C的载重量18吨,平均时速40千米,价格42万元。 其中,C是B的变种,新设了一个卧铺,所以载重降低了、价格上升了。A需要1名司机,如果每天三班工作,每天可运行18小时. 当地法律规定B和C均需要两名司机,如果三班工作,B每天可运行18小时,C可运行21小时. 该公司目前每天有150名司机可用,短期内无法招募到其他训练有素的司机。当地工会禁止司机每天工作超过一个班次。此外,受维修保障能力的限制,公司最多能拥有30辆运输工具。请你建立数学模型,确定A、B、C的数量使得公司的总运力最大。 题2.生产与销售计划问题 某公司用两种原油(A和B)混合加工成两种汽油(甲和乙)。甲、乙两种汽油含原油A的最低比例分别为50%和60%,每吨售价分别为4800元和5600元。该公司现有原油A 和B的库存量分别为500吨和1000吨,还可以从市场上买到不超过1500吨的原油A. 原油A的市场价为:购买量不超过500吨时的单价为10000元/吨;购买量超过500吨但不超过1000吨时,超过500吨的部分单价为8000元/吨;购买量超过1000吨时,超过 吨。该公司应怎样安排原油的采购和加工, 1000吨的部分单价为6000元/ 提示:约定:货币单位是“千元”;价格单位是“千元/吨” 设 原油A用于生产甲、乙两种汽油的数量分别为, x,x12 原油B用于生产甲、乙两种汽油的数量分别为, x,x34 分别是以价格10、8、6购进的原油A的量。 x,x,x567 答案 八年级地理上册填图题岩土工程勘察试题省略号的作用及举例应急救援安全知识车间5s试题及答案 :采购1000吨原油A,不生产汽油甲,用全部的1500吨原油A、1000吨原油B投入生产汽油乙;此时,利润达到最大值5000千元. 题3.机票的销售策略 在四个城市A、B、C、H之间,有唯一一家航空公司提供三个航班,这三个航班的“出发地—目的地”分别为AH、HB、HC,可搭载旅客的最大数量分别为120人、100人、110人,机票的价格分头等舱和经济舱两类。经过市场调查,公司销售部得到了每天旅客的相关信息,见下表。该公司应该在每条航线上分别分配多少张头等舱和经济舱的机票, 出发地—目的地 头等舱头等舱经济舱经济舱 需求/人 价格/人 需求/人 价格/人 33 190 56 90 AH AB(经H转机) 24 244 43 193 AC(经H转机) 12 261 67 199 HB 44 140 69 80 HC 16 186 17 103 提示:题中以“顾客的起点、终点”将顾客分成5类,现将飞机航线也做相应的分类:AH、AB、AC、HB、HC,依次编号为;相应的头等舱需求记为,i(i,1,2,3,4,5)ai价格记为;相应的经济舱需求记为,价格记为;相应的头等舱机票数记为,bpqxiiii经济舱机票数记为. 是表中所给的已知数据,是决策变量 a,p,b,qx,yyiiiiiii 答案:5个航线AH、AB、AC、HB、HC上分别销售33、10、12、44、16张头等舱机票和0、0、65、46、17张经济舱机票,可使总销售收入达到最大值39344元. 题4.飞行计划问题 下面这个问题是以第二次世界大战中的一个实际情况为背景,经过简化而提出来的。 己方一部分部队被敌方包围,水陆交通被完全割断,只能靠飞机空运向他们供给。根据整个战争进程分析,预计将有长达4个月的包围期。 这4个月分别需要2、3、3、4次编队飞行运送供给,每次飞行编队由50架飞机组成,每架需要3名飞行员,每架飞机每月只能飞一次,每名飞行员每月也只能飞一次。 在每次执行完运输任务后的返回途中,有20%的飞机会被敌方击落,被击落飞机上的飞行员也损失掉。 第1月初,有110架飞机和330名熟练飞行员。每个月初都可以购进新飞机、招收新飞行员,这些新飞机、新飞行员必须经过1个月的检查、训练才能投入使用。每个月初从熟练飞行员中取部分人作为当月教练,每名教练带领19名新飞行员组成一个训练组训练1个月,训练组全体成员下个月变成熟练飞行员。 每执行完一次飞行任务后回来的熟练飞行员,下个月带薪休假1个月,结束假期后才能投入飞行。 各项费用(单位略去)如下表所示,请你安排计划。 第1月 第2月 第3月 第4月 新飞机的价格 200.0 195.0 190.0 185.0 闲置的熟练飞行员报酬 7.0 6.9 6.8 6.7 训练组成员报酬 10.0 9.9 9.8 9.7 投入飞行的飞行员报酬 9.0 8.9 9.8 9.7 带薪休假的飞行员报酬 5.0 4.9 4.8 4.7 另外,如果把条件“每名教练带领19名新飞行员组成一个训练组”改成“每名教练带领不超过20名新飞行员组成一个训练组”,你的模型、结果有哪些变化, 提示:这个问题看起来很复杂,但只要理解了题中所描述的事实,就不难建立其优化模型。首先可以看出,投入飞行以及带薪休假的飞行员数量是常数,所以这部分费用(报酬)是固定的,在优化目标中不予考虑。令 . 设第个月购买新飞机i,1,2,3,4i架,新飞行员及教练共名. 另外,第个月中闲置的飞机数量记为,闲置的熟练xuyiiii飞行员数量记为. vi 答案:最优解是 (x,x,x,x),(60,30,80,0),(u,u,u,u),(460,220,240,0)12341234 (y,y,y,y),(10,0,0,0),(v,v,v,v),(7,6,4,4) 12341234 minz,42324.4
本文档为【Lindo,Lingo软件介绍】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_482581
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:0
分类:房地产
上传时间:2017-10-21
浏览量:28