最新实验4 Lingo求解最短路最小树问题备课讲稿
- 格式:ppt
- 大小:255.50 KB
- 文档页数:17
西安邮电大学现代邮政学院Xi'an post and telecommunications university modern post CollegeLINGO软件求解最短路问题最短路问题最短路问题:给定赋权有向图D=(V,A),最短路问题就是要在所有从v s到v t的路中,求一条权最小的路,最短路的权简称为从v s到v t的距离。
应用:可以直接应用于解决生产实际的许多问题,如管道铺设、线路安排、厂区布局、设备更新等,还经常被作为一个基本工具,用于解决其它的优化问题。
例 题下图,给定一个线路网络,两点之间连线上的数字表示两点间的距离,求一条从A到G的铺管线路,使总距离最短。
AB 1B 2C 1C 2C 3C 4D 1D 2D 3E 1E 2E 3F 1F 2G538761366835338422123335526643LINGO输入程序设:A为顶点城市1,B 1为2,B 2为3,C 1为4,C 2为5,C 3为6,C 4为7,D 1为8,D 2为9,D 3为10,E 1为11,E 2为12,E 3为13,F 1为14,F 2为15,G为16。
12345678910111213141516MODEL :[1]SETS :! We have a network of 16 cities. We want to find the length of the shortest route from city 1 to city 16. ;! Here is our primitive set of sixteen cities, where F(i) represents the shortest path distance from city i to the last city;[2]CITIES/1..16/:F;! The derived set ROADS lists the roads that exist between the cities (note: not all city pairs are directly linked by a road, and roads are assumed to be one way.);[3]ROADS(CITIES,CITIES) /[4]1,2 1,3 2,4 2,5 2,6 3,5 3,6 3,7 4,8 4,9 5,8 5,9 6,9 6,10 7,9 7,10[5]8,11 8,12 9,12 9,13 10,12 10,13 11,14 11,15 12,14 12,15 13,14 13,15[6]14,16 15,16 /:D;! D(i,j) is the distance from city i to j;[7]ENDSETS [8]DATA :! Here are the distance that correspond to the above links;[9]D=[10]5 3 1 3 6 8 7 6 6 8 3 5 3 3 8 4[11]2 2 1 2 3 3 3 5 5 2 6 6[12]4 3;[13]ENDDATA! If you are already in City 16,then the cost to travel to city 16 is 0;[14]F(@SIZE (CITIES))=0;!The shortest distance from City 1 to City 16 is the minimum over all cities j reachable from i of the sum of the distance from i to j plus the minimal distance from j to City 16;[15]@FOR (CITIES(i)|i#LT#@SIZE (CITIES):[16]F(i)=@MIN (ROADS(i,j):D(i,j)+F(j)));END集合段数据段运算式LINGO软件求解结果Variable ValueF( 1) 18.00000F( 2) 13.00000F( 3) 16.00000F( 4) 13.00000F( 5) 10.00000F( 6) 9.000000 F( 7) 12.00000F( 8) 7.000000 F( 9) 6.000000 F( 10) 8.000000 F( 11) 7.000000 F( 12) 5.000000 F( 13) 9.000000 F( 14) 4.000000 F( 15) 3.000000 F( 16) 0.000000Variable ValueD( 1, 2) 5.000000D( 1, 3) 3.000000D( 2, 4) 1.000000D( 2, 5) 3.000000D( 2, 6) 6.000000D( 3, 5) 8.000000D( 3, 6) 7.000000D( 3, 7) 6.000000D( 4, 8) 6.000000D( 4, 9) 8.000000D( 5, 8) 3.000000D( 5, 9) 5.000000D( 6, 9) 3.000000D( 6, 10) 3.000000D( 7, 9) 8.000000D( 7, 10) 4.000000D( 8, 11) 2.000000D( 8, 12) 2.000000D( 9, 12) 1.000000D( 9, 13) 2.000000D( 10, 12) 3.000000D( 10, 13) 3.000000D( 11, 14) 3.000000D( 11, 15) 5.000000D( 12, 14) 5.000000D( 12, 15) 2.000000D( 13, 14) 6.000000D( 13, 15) 6.000000D( 14, 16) 4.000000D( 15, 16) 3.000000点1到最后一个点(点16)的最短路的长度(距离)为18。
图论中最优树问题的Lingo求解树连通且不含圈的无向图称为树.常用T表示。
树中的边称为树枝,树中度为1的顶点称为树叶图1 树的示例在许多实际问题中,如在许多城市间建立公路网、输电网或通信网络,都可以归结为赋权图的最优树问题。
如在一个城市中,对若干个居民点要供应自来水,已经预算出连接各点间管道的造价,要求给出一个总造价最小的铺设方案。
图论中最优树的的求解通常有两种算法:Kruskal算法(或避圈法)和Prim算法(破圈法). 这里我们给出利用LINGO求解最优树的方法。
总线性规划模型为:问题1 某有10个城镇见下图,它们之间的距离见表1。
城镇1处有一条河流,现需要从各城镇之间铺设管道,使城镇1处的水可以输送到各城镇,求铺设管道最少的设计方式。
表1 10个地区之间的距离(单位:公里)地区12345678910 10859121412161722 28091516811181422 359079117121217 4915703171071515 5121693081061515 6148111780914816 7121171010908611 81618127614801111 917141225158611010 102222171515161111100该问题实际上是求从点1出发的最优树问题。
Lingo实现程序为:! 最优树的Lingo程序; model:sets:point/1..10/:u;link(point,point):d,x; endsetsdata:d=0,8,5,9,12,14,12,16,17,22, 8,0,9,15,16,8,11,18,14,22, 5,9,0,7,9,11,7,12,12,17, 9,15,7,0,3,17,10,7,15,15,12,16,9,3,0,8,10,6,15,15,14,8,11,17,8,0,9,14,8,16,12,11,7,10,10,9,0,8,6,11,16,18,12,7,6,14,8,0,11,11,17,14,12,25,15,8,6,11,0,10,22,22,17,15,15,16,11,11,10,0; @text()=@writefor(link(i,j)|x(i,j) #GT#0:'x(',i,',',j,')=',x(i,j),' ');enddatamin=@sum(link(i,j)|i#ne#j:d(i,j)*x(i,j));n=@size(point);@sum(point(j)|j#gt#1:x(1,j))>=1;@for(point(i)|i#ne#1:@sum(point(j)|j#ne#i:x(j,i))=1); @for(link(i,j):@bin(x(i,j)));@for(link(i,j)|i#ne#j:u(i)-u(j)+n*x(i,j)<=n-1); !不构成圈;end结果为minZ=60x(1,2)=1 x(1,3)=1 x(3,4)=1 x(4,5)=1x(9,6)=1 x(3,7)=1 x(7,9)=1 x(5,8)=1x(9,10)=1故最优树(最佳铺设管道方式)见图.谢谢!。
尊敬的各位老师,大家好!今天我将为大家讲解“最短路径问题”这一课,我们使用的教材是人民教育出版社的版本。
一、教材分析本节课主要探讨了图论中的一个经典问题——最短路径问题。
本节内容既是对前面学习的图的认知和表示的延续和深化,又为后续进行最短路算法的学习做好铺垫。
图是日常生活、社会科学和计算机科学中的一个基本概念,有着广泛的应用。
在很多问题中,例如,城市的街道图、拓扑排序、路径问题、网络的流量问题等,人们需要从一个或者多个点找到一个路线到达目的顶。
对于最短路径问题的研究,对于这些问题的解决具有重要的意义。
二、教学目标1. 知识与技能:理解最短路径问题的概念,掌握迪杰斯特拉算法和弗洛伊德算法的基本原理和实现方法。
2. 过程与方法:通过实例分析,使学生能够应用这两种算法解决实际问题。
3. 情感态度与价值观:通过本节课的学习,培养学生的问题解决能力和团队协作精神,激发学生对数学的兴趣和热爱。
三、教学重点与难点1. 教学重点:迪杰斯特拉算法和弗洛伊德算法的实现和应用。
2. 教学难点:如何根据具体问题选择合适的算法,理解算法的原理和实现过程。
四、教学方法与手段本节课主要采用案例教学、实验教学和讨论式教学相结合的方法,通过实例分析、实验操作和小组讨论,帮助学生理解和掌握最短路径问题的解决方法。
五、教学过程设计1. 引入新课(5分钟)通过实际问题引入最短路径问题,让学生了解该问题的实际应用背景。
2. 迪杰斯特拉算法(20分钟)(1)原理讲解:通过图论知识,介绍迪杰斯特拉算法的基本原理。
(2)代码演示:使用编程语言(如Python)实现迪杰斯特拉算法,并展示代码。
(3)实验操作:学生分组进行实验操作,尝试使用迪杰斯特拉算法解决实际问题。
(4)讨论与总结:小组讨论实验结果,分享算法应用经验,教师总结并点评。
3. 弗洛伊德算法(15分钟)(1)原理讲解:介绍弗洛伊德算法的基本原理,与迪杰斯特拉算法的区别和联系。
(2)代码演示:展示弗洛伊德算法的代码实现。
图论与网络流问题的LINGO 求解技巧我们介绍使用LINGO 求解图论与网络问题中的一些典型问题。
如最短路问题、最大流问题、关键路径问题、最优树问题,以及TSP 问题。
这里主要介绍使用LINGO 求解的方法,重在应用和解决问题。
1 最短路问题的Lingo 求解设图共有个节点,其赋权图的邻接矩阵为n n n w ×.ij w p =表示节点i 到j 的权值为.当为有向图时,p ji w w ij =;当为无向图时,和ij w ji w 分别由图得到,通常不一样。
当,表示节点i 与节点0ij w =j 不连通。
令0ii w =。
假设图的所有权值 0ij w ≥现求节点a 到节点b 的最短路,其线性规划模型为:模型一、决策变量:设1ij i j x i j ⎧=⎨⎩节点与节点连通节点与节点不连通目标函数为寻找一条节点到节点的通路,使其上权值和最小,故目标函数为:a b 11min .nnij ij i j Z w x ===∑∑1. 对节点恰有一条路出去,却不能有路回来,故有:a 11najj j ax=≠=∑ 且10nkak k a x=≠=∑2. 对节点恰有一条路到达,却不能有路出去,故有:b 11nkbk k bx=≠=∑ 且10nbjj j bx=≠=∑3. 对除起始点a 和目标点之外,其它点进入和出去的路是一样多(可都为0),则:b 11,nnkiijk j xx i a ===≠∑∑b4. 对不通的路不取,约束为:,1,2,ij ijx w i j ≤=L n总的线性规划模型为:11111111min .,10..10,1,2,,01n nij iji j nnki ijk j naj j j a n ka k k a n kb k k a nbj j j a ij ijijZ w x x x i a b x x s t x x x w i j x =====≠=≠=≠=≠=⎧=≠⎪⎪⎪=⎪⎪⎪⎪=⎪⎪⎪⎪=⎨⎪⎪⎪=⎪⎪⎪≤=⎪⎪=⎪⎪⎪⎩∑∑∑∑∑∑∑∑L 或n示例演示。
数学建模实验报告1.解析:此题属于0-1模型问题。
设队员序号为i ,泳姿为j ,记c ij 为队员i 第j 种泳姿的百米成绩,若选择队员i 参加泳姿j 的比赛,记x ij =1, 否则记xij =0;则有,目标函数为∑∑===4151j i ij ij x c Z Min ,每个人最多选泳姿为1,则有5,1,141=≤∑=i xj ij,每种泳姿有且仅有1人,则有4,1,151==∑=j xi ij。
若丁的蛙泳成绩退步及戊的自由泳成绩进步,则将c43的值和c54的值改变即可。
实验过程及运行结果如下:若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,计算结果如下:通过计算结果可知,在原数据的情况下,队伍的选择应该是甲参加自由泳,乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊不参加任何比赛,且最好的时间是253.2秒。
若丁的蛙泳成绩退步为1'15"2及戊的自由泳成绩进步57"5,则组成接力的比赛队伍调整为乙参加蝶泳,丙参加仰泳,丁参加蛙泳,戊参加自由泳,甲不参加任何比赛。
2.解析:此题属于线性规划问题。
已知某工厂用1A 、2A 两台机床加工1B 、2B 、3B 三种不同的零件,设1A 生产1B 、2B 、3B 的个数分别为1x 、2x 、3x ,2A 生产1B 、2B 、3B 的个数分别为4x 、5x 、6x ,则目标函数为min=1*2*1x +2*3*2x +3*5*3x +1*3*4x +1*3*5x +3*6*6x ;1A 加工的工时小于80小时,2A 加工的工时小于100小时,生产1B 、2B 、3B 的总数分别为70个、50个、20个。
实验过程及运行结果如下:通过计算结果可知,当1A 生产1B 、2B 、3B 的个数分别为68个、0个、4个,2A 生产1B 、2B 、3B 的个数分别为2个、50个、16个的时候,才能得到最低的成本640元。
利用lingo软件解决最短路问题的两种方法
陈允峰
【期刊名称】《信息技术与信息化》
【年(卷),期】2015(000)010
【摘要】最短路问题是网络理论解决的典型问题之一,在实际生活中有着广泛的应用,可用来解决管路铺设、线路安装、厂区布局和设备更新等实际问题.本文总结了利用matlab和lingo数学软件来解决最短路问题的几种方法,为最短路问题的解决拓展了思路.
【总页数】2页(P141-142)
【作者】陈允峰
【作者单位】济南工程职业技术学院山东济南 250200
【正文语种】中文
【相关文献】
1.利用基尔霍夫定律解决电路分析问题的两种方法 [J], 李秋霞
2.解决问题的两种方法 [J], 吴国和
3.利用LinGo求解几种有向图最短路问题 [J], 刘淋
4.两种方法解决复杂的叠加场运动 [J], 洪英兰
5.两种方法解决复杂的叠加场运动 [J], 洪英兰
因版权原因,仅展示原文概要,查看原文内容请购买。
《最短路径问题》说课稿一、教材分析1.特点与地位:本课是教材求两结点之间的最短路径问题是图最常见的应用的之一,在交通运输、通讯网络等方面具有一定的实用意义。
2.重点与难点:结合学生现有抽象思维能力水平,已掌握基本概念等学情,以及求解最短路径问题的自身特点,确立本课的重点和难点如下:(1)重点:如何将现实问题抽象成求解最短路径问题,以及该问题的解决方案。
(2)难点:求解最短路径算法的程序实现。
3.教学安排:最短路径问题包含两种情况:一种是求从某个源点到其他各结点的最短路径,另一种是求每一对结点之间的最短路径。
根据教学大纲安排,重点讲解第一种情况问题的解决。
安排一个课时讲授。
教材直接分析算法,考虑实际应用需要,补充旅游景点线路选择的实例,实例中问题解决与算法分析相结合,逐步推动教学过程。
二、教学目标分析1.知识目标:掌握最短路径概念、能够求解最短路径。
2.能力目标:(1)通过将旅游景点线路选择问题抽象成求最短路径问题,培养学生的数据抽象能力。
(2)通过旅游景点线路选择问题的解决,培养学生的独立思考、分析问题、解决问题的能力。
3.情感目标:培养学生讲究工作方法、与他人合作,提高效率。
三、教法分析课前充分准备,研读教材,查阅相关资料,制作多媒体课件。
教学过程中除了使用传统的“讲授法”以外,主要采用“案例教学法”,同时辅以多媒体课件,以启发的方式展开教学。
由于本节课的内容属于这一章的难点,考虑学生的接受能力,注意与学生沟通,根据学生的反应控制好教学进度是本节课成功的关键。
四、学法指导1.课前:上次课结课时给学生布置任务,使其有针对性的预习。
2.课中:指导学生讨论任务解决方法,引导学生分析本节课知识点。
3.课后:给学生布置同类型任务,加强练习。
五、教学过程分析(一)课前复习(3-5分钟) 回顾“路径”的概念,为引出“最短路径”做铺垫。
教学方法及注意事项:(1)采用提问方式,注意及时小结,提问的目的是帮助学生回忆概念。