优化建模与LINGO第07章.ppt
《优化建模与LINGO第07章.ppt》由会员分享,可在线阅读,更多相关《优化建模与LINGO第07章.ppt(180页珍藏版)》请在三一办公上搜索。
1、欢迎各位同学学习第七章,内容导航 概述7.1运输问题与转运问题7.2最短路问题和最大流问题7.3最优连线问题与旅行商问题7.4计划评审方法和关键路线法 习题 七,第 7 章 图论与网络模型,本章内容概述 本章介绍图论与网络(Graph Theory and Network)的有关优化问题模型。在这里,我们并不打算全面系统介绍图论与网络的知识,而着重介绍与LINDO、LINGO软件有关的组合优化模型和相应的求解过程。如果读者打算深入地了解图论与网络的更全面的知识,请参阅图论或运筹学中的有关书籍.LINDO软件和LINGO软件可以求解一些著名的组合优化问题,这包括最短路问题、最大流问题、运输和转运
2、问题、最优匹配和最优指派问题、最优连线或最小生成树问题、旅行商问题、关键路线法与计划评审方法等。,7.1运输问题与转运问题,本节内容导航运输问题指派问题转运问题,运输问题运输问题(Transportation Problem)是图论与网络中的一个重要问题,也是一个典型的线性规划问题.例7.1(运输问题),返回导航,例7.1 就是典型的运输问题,图7-1给出了 个产地,个销地运输问题的图形.关于它的求解方法有两类,一类是按照图论的方法求解,另一类是化成线性规划问题.这里介绍第二类方法,即用LINDO或LINGO软件求解运输问题.但为便于后面的叙述,先给出图论中有关图的部分定义.,图7-1:个产地
3、,个销售地运输问题的图形,1.图的基本定义从直观上看,所谓图是由点和边组成的图形,如图7-1所示.下面我们给出图的定义.,注:通常有向图的边称为弧,由弧构成的集记为因此,有向图记为,而无向图记为.为方便起见,在后面的论述中,有时也用表示有向图.在无向图中,每条至多有一条边的图称为简单图(Simple Graph).若每一对不同的顶点都有一条边相连的简单图称为完全图(Complete Graph).若一个图中的顶点集可以分解为两个子集和,使得任何一条边都有一个端点在中,另一个端点在中,这种图称为二部图或偶图(Bipartite Graph).运输问题所构成的图7-1是偶图.,2.运输问题的数学表
4、达式,第个产地的运出量应小于或等于该地的生产量,即:,第个销地的运入量应等于该地的需求量,即:,因此,运输问题的数学表达式为:,称具有形如式的线性规划问题为运输问题.,3.运输问题的求解过程为了便于讨论,以一个运输问题实例的求解过程来介绍如何用LINDO或LINGO软件求解运输问题模型.例7.2(继例7.1)设 即为有3个产地和4个销地的运输问题,其产量、销量及单位运费如表7-1所示.试求总运费最少的运输方案,以及总运费.,解:从前面的分析来看,运输问题属于线性规划问题,因此,不论是LINDO软件或LINGO软件都可以对该问题求解.为了便于比较两种软件的优缺点,以及各自的特点,我们用两种软件分
5、别求解该运输问题.首先写出LINDO软件的模型(程序),程序名:exam0702.ltx.!3 Warehouse,4 Customer Transportation Problem!The objectivemin 6x11+2x12+6x13+7x14+4x21+9x22+5x23+3x24+8x31+8x32+x33+5x34subject to,!The supply constraints2)x11+x12+x13+x14=303)x21+x22+x23+x24=254)x31+x32+x33+x34=21!The demand constraints5)x11+x21+x31=15
6、6)x12+x22+x32=177)x13+x23+x33=228)x14+x24+x34=12end,LINDO软件的计算结果如下:LP OPTIMUM FOUND AT STEP 6 OBJECTIVE FUNCTION VALUE 1)161.0000 VARIABLE VALUE REDUCED COST X11 2.000000 0.000000 X12 17.000000 0.000000 X13 1.000000 0.000000 X14 0.000000 2.000000 X21 13.000000 0.000000 X22 0.000000 9.000000 X23 0.00
7、0000 1.000000,X24 12.000000 0.000000 X31 0.000000 7.000000 X32 0.000000 11.000000 X33 21.000000 0.000000 X34 0.000000 5.000000 ROW SLACK OR SURPLUS DUAL PRICES 2)10.000000 0.000000 3)0.000000 2.000000 4)0.000000 5.000000 5)0.000000-6.000000 6)0.000000-2.000000 7)0.000000-6.000000 8)0.000000-5.000000
8、 NO.ITERATIONS=6,事实上,我们关心更多的是那些非零变量,因此,可选择LINDO中的命令(具体方法见第二章的2.3节),只列出非零变量.,OBJECTIVE FUNCTION VALUE 1)161.0000 VARIABLE VALUE REDUCED COST X11 2.000000 0.000000 X12 17.000000 0.000000,X13 1.000000 0.000000 X21 13.000000 0.000000 X24 12.000000 0.000000 X33 21.000000 0.000000 ROW SLACK OR SURPLUS DUA
9、L PRICES 3)0.000000 2.000000 4)0.000000 5.000000 5)0.000000-6.000000 6)0.000000-2.000000 7)0.000000-6.000000 8)0.000000-5.000000 NO.ITERATIONS=6,LINDO软件虽然给出最优解,但上述模型还存在着缺点,例如,上述方法不便于推广的一般情况,特别是当产地和销地的个数较多时,情况更为突出.下面写出求解该问题的LINGO程序,并在程序中用到在第三章介绍的集与数据段,以及相关的循环函数.写出相应的LINGO程序,程序名:exam0702.lg4,MODEL:1!3
10、 Warehouse,4 Customer Transportation Problem;2sets:3 Warehouse/1.3/:a;4 Customer/1.4/:b;,5 Routes(Warehouse,Customer):c,x;6endsets 7!Here are the parameters;8data:9 a=30,25,21 10 b=15,17,22,12;11 c=6,2,6,7,12 4,9,5,3,13 8,8,1,5;14enddata 15!The objective;16OBJ min=sum(Routes:c*x);,17!The supply cons
11、traints;18for(Warehouse(i):SUP 19 sum(Customer(j):x(i,j)=a(i);20!The demand constraints;21for(Customer(j):DEM 22 sum(Warehouse(i):x(i,j)=b(j);END,在上述程序中,第16表示运输问题中目标函数(7.1).第18 19行表示约束条件(7.2),第21 22行表示约束条件(7.3).,下面列出LINGO软件的求解结果(仅保留非零变量),Global optimal solution found at iteration:6 Objective value:1
12、61.0000 Variable Value Reduced Cost X(1,1)2.000000 0.000000 X(1,2)17.00000 0.000000 X(1,3)1.000000 0.000000 X(2,1)13.00000 0.000000 X(2,4)12.00000 0.000000 X(3,3)21.00000 0.000000 Row Slack or Surplus Dual Price OBJ 161.0000-1.000000 SUP(1)10.00000 0.000000,从上述求解过程来看,两种软件的计算结果是相同的,但由于LINGO软件中采用集、数据段
13、和循环函数的编写方式,因此更便于程序推广到一般形式使用.例如,只需修改运输问题中产地和销地的个数,以及参数a,b,c的值,就可以求解任何运输问题.所以,从程序通用性的角度来看,推荐大家采用LINGO软件来求解运输问题.,7.1.2 指派问题,例7.3(指派问题)设有n个人,计划作n项工作,其中 表示第i个人做第j项工作的收益,现求一种指派方式,使得每个人完成一项工作,使总收益最大.例7.3就是指派问题(Assignment Problem).指派问题也是图论中的重要问题,有相应的求解方法,如匈牙利算法.从问题的形式来看,指派问题是运输问题的特例,也可以看成0-1规划问题.,返回导航,1.指派问
14、题的数学表达式,设变量为,当第 个人作第 项工作时,,否则.因此,相应的线性规划问题为,2.指派问题的求解过程 分别用LINDO软件和LINGO软件求解指派问题,并对两种软件的求解方法与各自的优缺点进行比较.,例7.4(继例7.3)考虑例7.3中 的情况,即6个人做6项工作的最优指派问题,其收益矩阵如表7-2所示.,!Assignment model!Maximize valve of assignmentsmax 20 x11+15x12+16x13+5x14+4x15+7x16+17x21+15x22+33x23+12x24+8x25+6x26+9x31+12x32+18x33+16x34
15、+30 x35+13x36+12x41+8x42+11x43+27x44+19x45+14x46-99x51+7x52+10 x53+21x54+10 x55+32x56-99x61-99x62-99x63+6x64+11x65+13x66subject to,解:与运输问题一样,先用LINDO软件求解.给出LINGO程序,程序名exam0704.ltx,!Each person must be assigned to some job x11+x12+x13+x14+x15+x16=1 x21+x22+x23+x24+x25+x26=1 x31+x32+x33+x34+x35+x36=1 x
16、41+x42+x43+x44+x45+x46=1 x51+x52+x53+x54+x55+x56=1 x61+x62+x63+x64+x65+x66=1!Each job must receive an assignment x11+x21+x31+x41+x51+x61=1 x12+x22+x32+x42+x52+x62=1 x13+x23+x33+x43+x53+x63=1 x14+x24+x34+x44+x54+x64=1 x15+x25+x35+x45+x55+x65=1 x16+x26+x36+x46+x56+x66=1end,在上述程序中,x51,x61,x62,x63前的系数均为
17、-99,这是因为某人无法做某项工作可以某人做该项工作的收益是,在计算中通常取一个较大的负数就可以.上述程序也没有说明决策变量 是0-1型变量,这是因为对于此类问题线性规划理论已保证了变量 的取值只可能是0或1.,LINDO软件给出的计算结果如下(只列出非零变量):,OBJECTIVE FUNCTION VALUE 1)135.0000 VARIABLE VALUE REDUCED COST X11 1.000000 0.000000 X23 1.000000 0.000000 X32 1.000000 0.000000 X44 1.000000 0.000000 X56 1.000000 0.
18、000000 X65 1.000000 0.000000 ROW SLACK OR SURPLUS DUAL PRICES,2)0.000000 3.000000 3)0.000000 15.000000 5)0.000000-4.000000 7)0.000000-19.000000 8)0.000000 17.000000 9)0.000000 12.000000 10)0.000000 18.000000 11)0.000000 31.000000 12)0.000000 30.000000 13)0.000000 32.000000 NO.ITERATIONS=20,即第1个人做第1项
19、工作,第2个人做第3项工作,第3个人做第2项工作,第4个人做第4项工作,第5个人做第6项工作,第6个人做第5项工作.总效益值为135.下面用LINGO程序再求解此问题,程序中仍然用到集、数据段和循环函数.写出相应的LINGO程序,程序名exam0704.lg4.,MODEL:1!Assignment Problem Model;2sets:3 Flight/1.6/;4 Assign(Flight,Flight):c,x;,5endsets 6!Here is income matrix;7data:8 c=20 15 16 5 4 7 9 17 15 33 12 8 6 10 9 12 18
20、 16 30 13 11 12 8 11 27 19 14 12-99 7 10 21 10 32 13-99-99-99 6 11 13;14enddata 15,16!Maximize valve of assignments;17max=sum(Assign:c*x);18for(Flight(i):19!Each i must be assigned to some j;20 sum(Flight(j):x(i,j)=1;21!Each I must receive an assignment;22 sum(Flight(j):x(j,i)=1;23);END,程序中第12 13行中的
21、-99意义与LINDO程序中的意义相同,当某人无法做某项工作时,取一个数值较大的负值.LINGO软件计算结果如下(只列出非零变量):,Global optimal solution found at iteration:0 Objective value:135.0000 Variable Value Reduced Cost X(1,1)1.000000 0.000000 X(2,3)1.000000 0.000000 X(3,2)1.000000 0.000000 X(4,4)1.000000 0.000000 X(5,6)1.000000 0.000000 X(6,5)1.000000
22、0.000000,从上述两个例子,可以看出LINGO软件在处理问题方面要大优于LINDO软件,而且便于推广,只是在编程方面,LINGO程序的编写稍复杂一些.在后面的问题求解中,绝大多数的求解方法是采用LINGO软件计算.对于指派问题,也可以考虑人数不工作数不相等的情况,和考虑支付最小的情况.第一章的例1.5“混合泳接力队员选拔问题”就是属于这一类情况.,例7.5(继例1.5)用LINGO软件求解例1.5.解:在第二章的例2.7给出了该问题的LINDO软件求解方法,这里给出LINGO软件的求解方法,读者可根据问题的求解过程来考查两种软件求解问题的方法,以及每种软件各自的特点.为了便于编写程序,将
23、5名队员的4种泳姿的百米平均成绩重新列在表7-3中.,按第1章所列的规划问题(第章中的式(1.25)式(1.28))写出相应的LINGO程序,程序名:exam0705.lg4.,MODEL:1!5 persons and 4 jobs Assignment Problem;2sets:3 Person/1.5/;4 Job/1.4/;5 Assign(Person,Job):c,x;6endsets 7!Here are the parameters;8data:,9 c=66.8,75.6,87,58.6,10 57.2,66,66.4,53,11 78,67.8,84.6,59.4,12
24、70,74.2,69.6,57.2,13 67.4,71,83.8,62.4;14enddata 15!The objective;16OBJ min=sum(Assign:c*x);17!The supply constraints;18for(Person(i):SUP 19 sum(Job(j):x(i,j)=1);20!The demand constraints;21for(Job(j):DEM 22 sum(Person(i):x(i,j)=1);END该程序同样没有限制是01型变量.,下面列出LINGO软件计算结果(仅保留非零变量):,Global optimal solutio
25、n found at iteration:9Objective value:253.2000Variable Value Reduced Cost X(1,4)1.000000 0.000000 X(2,1)1.000000 0.000000 X(3,2)1.000000 0.000000 X(4,3)1.000000 0.000000Row Slack or Surplus Dual Price OB J 253.2000-1.000000 SUP(5)1.000000 0.000000,即甲游自由泳,乙游蝶泳,丙游仰泳,丁游蛙泳,没有被选拔上.平均成绩为.4132.,7.1.3 转运问题,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优化 建模 LINGO 07

链接地址:https://www.31ppt.com/p-5224058.html