最短路问题的实际应用论文
图论论文
课程名称图论入门论文题目图论在物流物配送上的应用指导教师刘颖学院管理学院姓名郭凤午学号2011030284图论在物流货物配送中的应用摘要:最短路径问题对于节约人们的时间成本具有重要意义。
最短路问题是图论理论的一个经典问题。
寻找最短路径就是在指定网络中两结点间找一条距离最小的路。
最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。
它可被用来解决厂区布局、管路铺设、线路安装等实际问题。
本文介绍了图论的起源和发展、最短路径问题及其算法,并应用图论最短路径问题的分析方法解决物流货物配送中问题。
1 引言数学是一门古老的学科,它已经有了几千年的历史。
然而,图论作为数学的一个分支,却只有200多年的历史,但是其发展十分迅速。
图论是以图为研究对象,图形中我们用点表示对象,两点之间的连线表示对象之间的某种特定的关系。
事实上,任何一个包含了某种二元关系的系统都可以用图形来模拟,而且它具有形象直观的特点,在图中点的位置和线的长短曲直无关紧要[1]。
图论的发展大力地推进了科学文明的进步,解决了很多实际应用问题。
图论是数学领域中发展最快的分支之一,它以图为研究对象。
图论中的图是有若干给定的点及连接两点的线所构成的图形,这种图形常用来描述某些事物之间的某种特定关系,用来代表事物,用连接两点的线表示相应两个事物间具有这种关系。
图论本身是应用数学的一部分,因此,历史上图论曾经被好多位数学家各自独立的建立过。
关于图论的文字记载最早出现在欧拉1736年的论文中,他所考虑的原始问题有很强的实际背景。
数学史上著名的七桥问题欧拉只用了一步就证明了不重复地通过7座桥的路线是根本不存在的!这是拓扑学研究的先声。
图的染色问题一直是图论研究的焦点问题。
数学家赫伍德成功地运用肯普的方法证明了五色定理,即一张地图能够用五种或者更少的颜色染色。
美国伊利诺斯大学的黑肯和阿佩尔,经过四年的艰苦工作.终于完成了四色猜想的证明。
最短路径问题网络分析毕业论文(可编辑)
最短路径问题网络分析毕业论文摘要第一章绪论二十世纪中后期,随着计算机的出现和发展,图论的研究得到广泛重视,最短路径问题是图论中的一个典范问题,它已经被应用于众多领域.最短路径问题最直接的应用当数在地理信息领域,如:GIS 网络分析、城市规划、电子导航等.在交通咨询方面,寻找交通路网中两个城市间最短的行车路线就是最短路径问题的一个典型的例子.在网络通信领域,信息包传递的路径选择问题也与最短路径问题息息相关.举个例子,OPSF开放路由选择协议,每个OPSF路由器都维护一个描述自治系统拓扑结构的数据库,通过这个数据库构建最短路径树来计算路由表,从而跟踪自治系统范围内到每个目标的最短路径.在图象分割问题中,最短路径也有直接的应用:在语音识别中,一个主要的问题就是区别同音词,例如,to、two、too.为解决这个问题,我们需要建一个图,顶点代表可能的单词,边连接相邻的单词,边上的权代表相邻的可能行大小.这样图中的最短路径,就是对句子的最好解释.由于最短路径问题的广泛应用,很多学者都对此进行了深入的研究,也产生了一些经典的算法.近些年来,对最短路径研究的热度依然不减,并且时间复杂度降得越来越低.所以在本课题中我们将提出不仅是以前我们学习过的一些经典的算法,我们还将提出一些以前没有学习过的更有应用空间的算法.以及各算法之间的比较.最后还将把这些算法在现实中的应用最一些简单的介绍.第二章网络的最短路问题的基础知识2.1 图的基本概念(1)图定义:一个(无向)图G 是一个有序二元组(V,E),其中是顶点集,是边集,且是一个无序二元组,它表示该边连接顶点与.图1就是一个图说明:在保持图的点边关系不变的情况下,图形的位置、大小、形状都是无关紧要的.若,则称连接与;点和称为的顶点,称或与关联,与是邻接的顶点;如果两条边有一个公共顶点,则称这两条边是邻接的;(2)环定义:两个顶点重合为一点的边称为环如图图1中.图1(3)重边定义:如果有两条边的顶点是同一对顶点,则称这两条边为重边(如图1中与中有两条边相连).(4)孤立点定义:不与任何边关联的点称为孤立点(如图1中);(5)无环图定义:没有环的图称为无环图;(6)简单图:定义:既没有环也没有重边的图称为简单图.设G(V,E)是一个简单图,则显然有.(7)完全图定义:若上式中等号成立,则说明该图中每对顶点间恰有一条边相连,称此图为完全图.(8)补图定义:一个简单图的补图是与有相同顶点的简单图,且中两个点相邻当且仅当它们在中不相邻.(9)二分图定义:一个图G(V,E),若存在V 的一个分划(,),使得每条边有一个顶点在中,另一个在中,则称为二分图.(10)子图、支撑子图定义:设有两个图,,如果,,则称为的支撑子图.(11)点导出子图定义:设有图G(V,E),是的非空子集,若以为点集,以两点均在中的所有边为边集的子图称为由导出的的子图,记为,简称点导出子图.(12)边导出子图定义:若是的一个非空子集,则以为边集以中边的所有顶点作为点集的子图,称为由导出的的子图,记为,简称边导出子图.(13)度:定义:图中顶点的度为与关联的边的数目(与关联的每个环算作两条边),记为.结论:设G(V,E)是一个图,则,即度数为奇数的顶点有偶数个.2.2有向图(1)有向图定义:一个有向图是一个有序二元组,其中是顶点集,称为的弧集,为一个有序二元组.称为连向的弧,为的出弧,的入弧;称为得尾,称为的头;称为的前继,称为的后继.图2就是一个有向图.图2(2)环定义:头和尾重合的弧称为环.(3)重弧定义:若两条弧有相同的头和尾,则称这两条弧为重弧.(4)简单有向图定义:没有环和重弧的有向图称为简单有向图‘(5)基图定义:把有向图中每条弧用边来代替,得到一个无向图,称为得基图.(6)完全有向图定义:设G(V,E)是一个简单有向图,则,若等号成立,则称这样的图为完全有向图.(7)出度、入度定义:有向图中顶点的出弧的数目称为的出度,记为;顶点入弧的数目称为的入度,记为.结论:设G(V,E)是一有向图,则类似地可以定义有向图的子图,支撑子图,点,边导出之子图的概念.(8)网络定义:设是一个图,若对的每一条边都赋以一个实数,称为边的权,则连同边上的权称为一个网络,记为.同样可以定义有向网络.在此主要讨论网络上的各种优化问题.无向网络可以转化为有向网络,具体做法为:把无向网络中每条边代之以一对弧()和(),且两条弧的权都等于边的权.2.3连通性途径、迹、路定义:设有图 G(V,E),如果它的某些顶点与边可以排成一个非空的有限交错序列,这里该途径中边互不相同,则称为迹;如果顶点互不相同,则称它为路.显然路必为迹,但反之未必.闭路径定义:如果某途径至少含一条边,且起点与终点重合,则称它为一条闭途径.类似可定义闭迹和回路(又称圈).注意:若为简单图,则两个顶点间边若存在必是唯一的,故由到的一条途径可以用顶点序列表示.连通图:定义:图中若存在一条从顶点到的途径,则称与是连通的.如果图中任何两个顶点都是连通的,则称是连通图.例如,完全图是连通的.二分图,,则只要,中有一个大于1,则一定不是连通图.连通子图定义:如果是的子图,且是连通的,则称为的连通子图.极大连通子图定义:如果为的连通子图,且不存在连通子图,使是的子图.图的极大连通子图又称为的连通分支.有向途径定义:设有一个有向图,中某些顶点与弧组成的非空有限序列这里,,且,则称它为从到的有向途径.类似可定义有向迹,有向路,有向闭途径,有向闭迹,有向回路(有向圈).当是简单有向图时,从到的一条有向途径可简记为().强连通定义:中若既存在一条从顶点到的有向途径,又存在从到的有向途径,则称和是强连通的.如果中任意两顶点都是强连通的,则称是强连通的.强连通分支定义:的极大强连通子图称为强连通分支.注:若强连通,则恰有一个强连通分支.结论:若为有个连通分支的简单无向图,则的邻接矩阵为准对角矩阵若为有个强连通分支的简单有向图,则的邻接矩阵为准上三角矩阵2.4割集割边定义:设有图,是的一条边,如果从中删去,使它的连通分支数量增加1,则称是的割边.显然,的一条边是割边当且仅当该边不包含在的任何闭迹中.边割定义:设是的一个非空子集,,记,如果,且从中删去这些边后,的连通分支至少增加1,则称是的一个边割.割集定义:若是一个边割,且的任何真子集都不是边割,则称它为极小边割,的极小边割又称为割集.结论:任给图,设是图的圈,是图的割集,用表示的边集.如果,那么.弧割定义:设是一个有向图,记,如果,则从中删去这些弧以后,的强连通分支数至少增加1,称它为的一个弧割.的极小弧割称为有向割集.2.5最短路问题定义:所谓最短路径是指如果从图中某一顶点称为源点到达另一顶点称为终点的路径可能不止一条,如何找到一条有向路径使得沿此路径上各弧的权值总和达到最小.第三章网络的最短路问题的算法研究3.1最短路问题的提出某旅客要从杭州乘飞机前往奥地利的萨尔斯堡,因为他害怕乘飞机,所以要选择一条航线,使得在空中飞行的时间尽可能的少.问题是如何选择航线以达到要求.为此构造一个无向网络总可以化成有向网络,故下面只讨论有向网络的最短路问题.设是一有向网络,为中一条有向路,称为路的权或路长.现寻找网络中自某一指定顶点到另一指定顶点的最短有向路.3.2 Bellman最短路方程设有一个有向网络,.若用表示自顶点到顶点的最短有向路长,用表示弧()的长度,若,则定义,则对一切有且当且仅当弧在自顶点到顶点的最短有向路上.因为所有均表示自到的最短路长,因此这些最短路必有最后一条弧(),且该有向路上自到的一段也是最短路,故有Bellman最短路方程:即自点到各点最短路长度必满足Bellman最短路方程.反过来,Bellman最短路方程的解是自点到其余各点最短路的长度.3.3无负回路网络的最短有向路的Ford算法3.3.1 Ford算法的基本思想Ford算法的思想是逐次逼近,每次逼近求出网络从到其余各顶点的带某种约束的最短路,这里的约束是路中弧数.第一次逼近是从到其他任意顶点由一条弧组成的所有路中找一条最短路,记其长度为;第二次逼近是从到由不多于两条弧组成的所有路中找一条最短路,记其长度为.一般地,第次逼近是从到由不多于条弧组成的路中找一条最短的,记其长度为.因为中自到的最短路至多含个顶点, 条弧,所以最多次逼近即可. 即为中自到的最短路长.3.3.2 Ford算法的步骤为方便起见,定义.第一步置,,.第二步令.第三步若,停止;否则令,返回第二步.3.3.3实例求如下图所示网络中从顶点到其余各点的最短路.解求解过程如下:因此从到的最短路径分别为,,,,,路长分别为1,2,-3,0,2.3.4求正权网络中有向最短路的Dijkstra算法3.4.1Dijkstra算法的基本思想对网络中每个顶点赋以一个标号,用来记录从顶点到该顶点的最短路的长度(此时称为永久标号)或最短路长度的上界(此时称为暂时标号).算法开始时,只有顶点被赋予永久标号,其它顶点被赋予暂时标号.一般地,算法在被暂时标号的顶点中寻找一个顶点,其暂时标号最小,然后将赋予永久标号,且对其余暂时标号的顶点按方式修正其标号.算法在所有顶点均被赋予永久标号终止.3.4.2Dijkstra算法的理论依据对于中任一顶点,其永久标号是从顶点到该顶点的最短路的长度.对于中任一顶点,其暂时标号是从顶点出发,只经过中顶点到达该顶点的最短路的长度.3.4.3 Dijkstra算法的算法步骤最短路径问题是指在一个赋权图的两个指定节点和之间找出一条具有最小权的路.Dijkstra 算法是一个解最短路径问题的算法,这个算法不仅可以找到最短的,路径而且可以给出从到图中所有节点的最短路径.其基本步骤如下:1 设,对所有的节点来说,设,并将标号为0, ,为和w之间的权值距离.2按照每个未标号的节点w计算, ,表示点t 到点w 之间的权值距离 .若被修改了说明在当前得到的到w 的最优路径上t 和w 相邻用记录下来在所有中选择一个最小的即,未标号.将s 标号为, 表示节点到s的最优路径的长度为且与s 相邻.3 若终点v 已标号,则停止.得到一条从到v 的最优路径,否则,转向2再计算.3.4.4 Dijkstra算法的应用举例以具体实例说明Dijkstra 算法的具体应用.例 1. 利用Dijkstra 算法求图1 中节点A 到其它各节点的最优路径 202.9 3.218 4.4 3.5 3.2 4.516 Y 4.1 2.2 14 4.22 3.4 4.512 5.62.9 3 4.22.2 10 3.4 3.5 4 2.23 8 0 24 6 X 8 图1 101214相应的权值为:根据Dijkstra 算法的实现步骤其计算过程可归纳为表1 所示.从表1 中可以看出从到的最短路径为且到的距离为18.3 在求到最短路径的过程中到其余各点的最短路径也相应求出.若以计算一次为计算单位,则利用Dijkstra算法计算到最短路径时所需的计算次数15+14+13+ +2 119次表1采用Dijkstra 算法求解A到其他各节点最优路径的过程序号 A B C D E F G H I J K L M N O P1 - 4.2 3.42 - 4.2 3.4/A9.0 6.93 - 4.2/A - 8.6 8.3 6.94 - - - 8.6 8.3 6.9/C 11.9 10.95 - - - 8.5 8.3/B -10.3 11.2 10.96 - - - 8.6/B - - 11.5 10.3 11.2 10.97 - - - - - - 11.5 10.3/D 11.2 10.9 13.513.78 - - - - - - 11.5 - 11.2 10.9/F 13.5 13.713.19 - - - - - - 11.5 - -11.2/E - 13.5 13.713.110 - - - - - - 11.5/D - - - 13.5 13.713.111 - - - - - - - - - - 13.5 13.713.1/J16.112 - - - - - - - - - - 13.5/H 13.7 -18.0 16.113 - - - - - - - - - - - 13.7/H - 15.916.114 - - - - - - - - - - - - - 15.9/L16.1 18.715 - - - - - - - - - - - - - - 16.1/M18.33.4.5 Dijkstra算法的不足在现行电子地图中,网络模型的规模常常较大,节点数多达上千或上万,并且对网络模型的查询也要求实时性,因此Dijkstra 算法虽然在理论上是可行的,但在实际应用中不尽人意,当网络模型中节点数和边数较多的情况下,算法的计算量较大时间花费较多效率非常低.3.4.6 改进Dijkstra 算法的基本思想及实现表1 中的数值大多数是,都是无用运算,如果节点数量很大,将极其浪费运算时间.由于,节点是否在上次已经被计算出最短路径未知,当前节点是否与节点是否相连也未知,也就是未知,这时是已知的,故本次计算的到底是不是,取决于上一步数值和的数值,从表达式可以看出,只要这两个数值不都是,本次计算的就不会是,所以在上面Dijkstra 算法的实现步骤第2 步时,先判断一下,只要原来的, 的数值中至少有一个不是,才进行下面的计算,这样就保证了当预见是时,不对它进行计算,避免了大量无效的计算,提高了搜索效率.下面仍以一个具体实例来说明改进的Dijkstra算法的具体应用.例2 利用改进的Dijkstra 算法求图1中节点A到其他各节点的最优路径,此例的计算过程和Dijkstra 算法基本一致,只是表 1 中所有标记的部分在改进Dijkstra 算法中被省去了,利用改进的Dijkstra 算法计算到最短路径时所需计算次数为次,由此可见,改进的Dijkstra 算法确实减小了计算量在程序设计中,判断语句所花费的时间可以忽略,并不增大计算量.3.4.7 实验对比为了更好地说明改进的Dijkstra 算法的有效性,利用C语言自行编制了最短路径搜索程序并进行了仿真实验,采用自绘制的地图,共5 张,第一张图16个节点,共24条弧;第二张图32个节点,共55条弧;第三张图43个节点,共75条弧;第四张图62个节点,共111条弧;第五张图78个节点,共139条弧,计算结果如表2 所示.从表 2 可以看出,两种算法的计算量有很大的区别,改进的Dijkstra 算法较之经典Dijkstra 算法在计算量方面有很大幅度的减少,而且这种减少的程度在节点数目增加地图更大,更复杂时,会变得越来越明显.对于实际系统,由于地图都会很大,使用改进Dijkstra 算法的改进效果将非常显著.表2 改进Dijkstra 算法和经典Dijkstra 算法计算次数比较节点数经典Dijkstra 算法改进的Dijkstra 算法16 119 4739.5%32 465 13428.8%43 861 23427.2%62 1830 44124.1%78 2926 54018.5%注:表中的百分数表示改进算法计算量与经典算法计算量的百分比3.5 算法的问题和改进3.5.1算法的基本思想算法在人工智能中是一种典型的启发式搜索算法.通过选择合适的估价函数,指导搜索朝着最有希望的方向前进,以求得最优解. 算法中关键是求估价函数:其中, 是从起点到当前节点已付出的代价, 是从当前节点到目标节点的代价估计函数,必须保证其中是从当前点到目标点的实际最小代价.3.5.2算法的步骤算法的搜索步骤如下:1给起始节点标记,对它的没有标记过的子节点进行扩展;2对每一个子节点计算评价函数值,按评价值的大小进行排列,找出评价值最小的节点,并给它作标记,如果当前节点就是目标节点,则停止搜索;3 否则,对最新被标记的节点进行第2 步处理并记录最短路径.3.5.3算法分析算法是利用对问题的了解和对问题求解过程和解的了解,寻求某种有利于问题求解的启发信息,从而利用这些启发信息去搜索最优路径.它不用遍历整个地图,而是每一步搜索都根据启发函数朝着某个方向搜索.当地图很大很复杂时,它的计算复杂度大大优于Dijkstra 算法,是一种搜索速度非常快、效率非常高的算法.但是,相应的算法也有它的缺点.启发性信息是人为加入的,有很大的主观性,直接取决于操作者的经验,对于不同的情形要用不同的启发信息和启发函数,且他们的选取难度比较大,很大程度上找不到最优路径.下面通过一个具体加以实例说明.例3 利用算法求图1 中从点出发到点的最优路径.解:在本例中将评价函数中的取为当前节点到起始节点的最短距离,而取为当前节点到目标节点的欧氏距离,在应用算法时除采用上面Dijkstra 算法所用过的拓扑结构外,还应该再给定所有节点的坐标如各点坐标为0,13, 3,16, 3,11,….根据算法的具体实现步骤可求得从到的最短路径其距离是16.6.查看表1可知,用Dijkstra 算法搜索的最优路径是, 路径长度15.9 ,很明显算法没有找到最优路径,而且通过比较两条路径可以发现:当采用算法搜索路径时,从第二个节点就把最优路径舍弃了.3.5.4 算法改进思想及实现为了克服最优路径可能被轻易舍弃的缺点,本文提出采用多次搜索的方法,用增大计算量为代价来换取尽量多的最优路径备选结果.具体的方法如下:将经典算法搜索出原始最优路径中的节点依次进行封堵后,再按照经典算法搜索在每一次封堵情况下的最优路径.最后将这些新的最优路径与原始最优路径进行对比以便确定最后的最优路径.现举例说明改进算法的具体应用.例4.利用改进的算法求图1中从点出发到点的最优路径.1 按算法寻找路径得到: ,路径长度16.6;2 封闭此路径中节点后得到的最优路径为:, 路径长度15.9;3 封闭此路径中节点后得到的最优路径为: , 路径长度17.1;4 封闭此路径中节点后得到的最优路径为: ,路径长度17.2;5 封闭此路径中节点后得到的最优路径为: ,路径长度18.7;对前面求得的5 种路径长度进行对比,得到最优路径,其长度为15.9 ,从而将此路径定为改进算法求得的最优路径.查看表1可知此路径正是采用Dijkstra算法时求得的最优路径.3.5.5 实验对比为了进一步验证改进算法的有效性利,用C 语言自行编制了最短路径搜索程序并进行了仿真实验.以78个节点含1个起始节点,77个待规划节点的地图作为对象得到的仿真结果.采用经典算法对77个节点分别进行路径规划,有45个找到了最优路径而采用改进的算法对77个节点进行路径规划时,有68个找到了最优路径,有8个节点虽未找到最优路径但得到了比经典算法更短的路径,只有1个节点和经典算法结果一致.这充分说明改进的算法较之经典的算法在搜索最优路径的成功率方面具有明显的优势.3.6 结论本文对经典Dijkstra 算法和算法进行了改进,改进后的算法具有以下特点.1改进的Dijkstra 算法能在很大程度上节省计算量,提高路径规划的速度.2改进的算法虽在一定程度上增大了计算量但远远小于Dijkstra 算法的计算量, 却大大增大了搜索到最优路径的成功率.3.7 混合步长网络漫游最短路算法3.7.1引言网络最短路问题一直是网络理论与实践的重要研究课题之一,是在工农业生产及各项经济活动中非常具有实用价值的一门计算技术,是系统工程和运筹学研究的一个重要分枝.随着图与网络理论的不断发展与完善和计算技术、计算手段的不断进步,为新的网络最短路算法的研究提供了前提和条件.经过深入的研究探索和实践,本文提出一种任意路权网络最短路的新算法??混合步长网络漫游法.3.7.2 网络漫游法原理在一个给定的任意路权网络图中,为该网络的点集合,为该网络的弧集合,为网络各弧的权数集合.确定一个点作为漫游网络的起点,并记该点的漫游路长为零 ,其余各点的漫游路长 ,以此作为初始状态.之后,每一步都以当前漫游点的路长来修正其余相关连点的路长,并选择一个新的漫游点,如此往复,直至不再有可以漫游的点为止.若从起始点到任意点的直接路长为 (为网络的顶点数,若两点和之间没有直接的弧连接,则),则以修改各点的初始漫游路长, 作为第一步各点的漫游路长,并选择所对应的点作为第一步的漫游点,称之为当前漫游点.一般而言,经过步漫游到达第点,则第点为当前漫游点,该点的当前漫游路长为 .为寻找下一步的漫游点,要计算 ,并以作为点第步的漫游路长,选择点作为第步的漫游点,如此循环,直至各能够到达的点均已漫游过且各点已不存在更短的漫游路长时,漫游终止.同时得到了从起始点到各点的最短路.3.7.3网络漫游法的特点3.7.3.1 混合步长每次从当前漫游点寻找下一漫游点时,采用了算式,所以,下一漫游点的路长不只是第步中的最短路,而且是在第步、第步、…、第1步、第0步中的最短路,是当前步长内所有步数能够到达该点的最短路.3.7.3.2路长递减性由于采用了算式作为第点的第步的路长,它小于等于步之内任一步长的路长,具有递减性.3.7.3.3条件记忆性由第k步的当前漫游点寻找下一漫游点时,是在除当前点之外的其它点中寻找.其余的点分为两类,一类是还没有漫游过的点,它自然属于寻找的范围;另一类是已经漫游过的点,这类点分为两种情况,其一是该点记录的步步长之内的最短路值是该点作为漫游点时的路长,则该点不在寻找之列,即该点已漫游过这件事是在记忆之中的,其二是该点虽然已漫游过,但在其后的漫游中更新了该点漫游时的路长值,则该点在寻找范围之列,即对该点已漫游过这一事实失去记忆,如同没有漫游过的点一样.也就是说,若该点作为漫游点时的路长值一直保持为该点的最短漫游路长,则对该点保持记忆;若该点作为漫游点时的路长值已发生变化,则对该点的漫游失去记忆.3.7.4 网络漫游法的算法对于给定的任意路权网络,按照如下步骤进行网络漫游,只要网络中不含负回路,最终总可以求得从起始点到其所能到达的所有点的最短路.当然,也可以从终点反向漫游,以求得从网络的任意一点到终点的最短路.3.7.4.1 确定漫游起始状态若求从某点到其它各点的最短路,则以作为漫游的起始点(当前漫游点),并记该点的起始漫游路长为零,其余各点的漫游路长为无穷大(注:若求其它各点到终点的最短路,则以作为漫游起点,进行反向漫游即可).3.7.4.2 从当前漫游点向外探索计算从当前漫游点走到其它各点所产生的路长3.7.4.3确定各点新的漫游路长将各点的与其当前的最短路长进行比较,选取较小者作为该点新的漫游路长,即.3.7.4.4 作漫游标记当从本漫游点向外探索之后则对其作一标记,表示此点已漫游过.在以后的漫游中保持此标记,直到该点有更短的漫游路长出现时,则除去该点的漫游标志.3.7.4.5 确定新的漫游点在当前没有作漫游标记的点中,选取所对应的点作为新的漫游点.返回3.2继续漫游.。
最短路问题及其应用
最短路问题及其应用顾碧芬 06200103摘要:主要介绍最短路的两种算法,迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。
以及这两种算法在实际问题中的应用和比较。
1 引言最短路问题是图论理论的一个经典问题。
寻找最短路径就是在指定网络中两结点间找一条距离最小的路。
最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。
最短路径算法的选择与实现是通道路线设计的基础,最短路径算法是计算机科学与地理信息科学等领域的研究热点,很多网络相关问题均可纳入最短路径问题的范畴之中。
经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。
2 最短路 2.1 最短路的定义对最短路问题的研究早在上个世纪60年代以前就卓有成效了,其中对赋权图()ij w ≥的有效算法是由荷兰著名计算机专家E.W.Dijkstra 在1959年首次提出的,该算法能够解决两指定点间的最短路,也可以求解图G 中一特定点到其它各顶点的最短路。
后来海斯在Dijkstra 算法的基础之上提出了海斯算法。
但这两种算法都不能解决含有负权的图的最短路问题。
因此由Ford 提出了Ford 算法,它能有效地解决含有负权的最短路问题。
但在现实生活中,我们所遇到的问题大都不含负权,所以我们在()0ij w ≥的情况下选择Dijkstra 算法。
定义①1若图G=G(V ,E)中各边e 都赋有一个实数W(e),称为边e 的权,则称这种图为赋权图,记为G=G(V,E,W)。
定义②2若图G=G(V,E)是赋权图且()0W e ≥,()e E G ∈,若u 是i v 到j v 的路()W u 的权,则称()W u 为u 的长,长最小的i v 到j v 的路()W u 称为最短路。
若要找出从i v 到n v 的通路u ,使全长最短,即()()min ij e uW u W e ∈=∑。
2.2 最短路问题算法的基本思想及基本步骤在求解网络图上节点间最短路径的方法中,目前国内外一致公认的较好算法有迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。
最短路问题案例(short-path problem)
三、Dijkstra算法演示:
5.选取顶点
U=V\S={A(22), B (13)}
l(B)=13, l(B)=l(C)+W(C,B)
6.选取顶点
U=V\S={A(22)}
l(A)=22, l(A)=l(F)+W(F,A)
三、Dijkstra算法演示:
1. 初始时, S只包含起点s ; U包含除s外的其他顶 点,且U中顶点的距离为“起点s到该顶点的距离”[例. U中顶点v的距离为d(s,v),然而s与v不相邻,故为inf]。
2. 从U中选出“距离最短的顶点w”,并将顶点w 加入到S 中;同时,从U中移除顶点w 。
3. 更新U中各个顶点到起点s的距离。 由于上一步中 确定了w是求出最短路径的顶点,从而可以利用w来更新 其他顶点的距离。[例. (s,v)的距离大于(s,w) + (w,v)]。
l(E)=4, l(E)<l(C)+W(C,E); l(F)=9, l(F)=l(C)+W(C,F)
三、Dijkstra算法演示:
3.选取顶点 U=V\S={A(inf), B (13), F(6), G (12)}
l( )=6, l(F)=l(E)+W(E,F)
4.选取顶点 U=V\S={A(22), B (13), G(12)}
4. 重复步骤2和3,直到遍历完所有顶点。
三、Dijkstra算法演示:
1.选取顶点 U=V\S={A(inf), B (inf), C (3), E (4), F (inf), G (inf)}
2.选取顶点 U=V\S={A(inf), B (13), E (4), F (9), G (inf)}
最短路问题实际案例
最短路问题实际案例介绍最短路问题是图论中的一个经典问题,其目标是找到两个顶点之间的最短路径。
这个问题在日常生活中有着广泛的应用,例如导航系统、网络路由以及物流配送等场景中都需要解决最短路问题。
本文将通过实际案例来深入探讨最短路问题及其应用。
什么是最短路问题?最短路问题是指在一个给定的图中,找到两个顶点之间的最短路径。
通常情况下,路径的长度可以通过边的权重来衡量。
最短路问题可以分为单源最短路问题和全源最短路问题,前者是指从一个固定的起点出发,求到图中其他所有顶点的最短路径;后者是指求图中任意两个顶点之间的最短路径。
实际案例:导航系统导航系统是最短路问题的一个典型应用。
当我们使用导航系统来规划路线时,系统需要找到最短路径以优化我们的行车时间。
下面以一个具体案例来说明导航系统如何解决最短路问题。
案例场景假设我们身处一座陌生的城市,想要前往城市中心的一个著名景点。
我们打开导航系统,输入起点和终点信息。
导航系统会根据地图数据自动生成最短路径,并提供导航指引。
导航系统的实现导航系统实现最短路径规划的过程可以分为以下几个步骤:1.构建路网图:将城市中的道路以及交叉口等信息转化为图的形式。
图中的节点表示交叉口,边表示道路,边的权重可以表示行驶距离、时间等。
2.选择算法:根据实际需求选择合适的最短路径算法。
常见的算法有Dijkstra算法、Bellman-Ford算法和A*算法等。
3.计算最短路径:根据选定的算法,在路网图上计算起点到终点的最短路径。
算法会考虑边的权重以及路径的方向等因素。
4.导航指引:根据计算得到的最短路径,导航系统会生成具体的导航指引,包括行驶指示、路口转向、距离和预计时间等信息。
优化策略导航系统通过不断的优化,提高了最短路径的计算效率和准确性。
以下是几种常见的优化策略:1.路网数据更新:导航系统会及时更新路网数据,包括道路信息、交通状况等。
这样可以保证计算得到的最短路径更准确。
2.平行算法:为了加快计算速度,导航系统采用并行算法来计算最短路径。
最短路径问题设计论文
目录第1章绪论 (1)1.1 问题描述 (1)1.2 问题分析 (1)1.3 相关标识(名词定义) (1)1.4 本文主要研究内容 (2)第2章算法设计与实现 (3)2.1 穷举法 (3)2.1.1穷举法描述 (3)2.1.2穷举法设计 (3)2.1.3 穷举法分析 (6)2.2 回溯法 (6)2.2.1 回溯法描述 (6)2.2.2 回溯法设计 (6)2.2.3 回溯法分析 (9)2.3 贪心法 (10)2.3.1 贪心法描述 (10)2.3.2 贪心法设计 (10)2.3.3 贪心法分析 (12)2.4 动态规划法 (12)2.4.1 动态规划法描述 (12)2.4.2 动态规划法设计 (12)2.4.3 动态规划法分析 (14)第3章实验结果分析与算法对比 (15)3.1 输入数据 (15)3.2 实验结果与分析 (15)3.3 算法分析与对比 (17)第4章总结与展望 (18)参考文献 (1)第1章 绪论1.1 问题描述最短路径问题是图论理论的一个经典问题。
寻找最短路径就是在指定网络中两结点间找一条距离最小的路。
最短路不仅仅指一般地理意义上的距离最短,还可以引申到其它的度量,如时间、费用、线路容量等。
最短路径算法的选择与实现是通道路线设计的基础,最短路径算法是计算机科学与地理信息科学等领域的研究热点,很多网络相关问题均可纳入最短路径问题的范畴之中。
经典的图论与不断发展完善的计算机数据结构及算法的有效结合使得新的最短路径算法不断涌现。
本文主要解决的问题是:给定带权有向图G =(V , E),对任意顶点i v ,j v ∈V (i ≠j ),求顶点i v 到顶点j v 的最短路径。
即给定一个有向图,再给出任意2个不相邻的顶点,求2个顶点之间的最短距离。
1.2 问题分析给定一个带权有向图G =(V , E )中的各个顶点之间的权值,对任意输入2个顶点i v ,j v ∈V (i ≠j ),求出从i v 到j v 的最短路径。
最短路问题实际案例
最短路问题实际案例最短路问题是指在图中找出两个顶点之间的最短路径的问题,其中图可以是有向图或无向图,并且每条边可以有权重。
这个问题是在许多实际案例中都会遇到的。
以下是几个实际案例,其中涉及到最短路问题:1. 导航系统:导航系统是最常见的利用最短路问题的实例。
当用户输入起点和终点时,导航系统会计算出最短路径,并显示给用户。
这个过程中,导航系统需要考虑路程的时间或距离,同时还需要考虑道路的限速和交通情况等因素。
2. 物流配送:物流配送涉及到从一个地点到另一个地点的最短路径。
物流公司需要计算出从货物的起始点到目标点的最短路径,以最快速度将货物送达目的地。
在这个问题中,可能还会有其他限制条件,如运输工具的载重量、路段的通行能力等。
3. 电信网络:电信网络是一个复杂的网络,其中存在着许多节点和边,每个节点代表一个通信设备,边代表设备之间的通信连接。
在设计电信网络时,需要考虑到从一个节点到另一个节点的最短路径,以最小化通信的时延。
这个问题中,还会有其他因素,如网络拓扑的复杂性、网络流量的负载均衡等。
4. 交通规划:交通规划涉及到城市道路网络的设计和优化。
在设计城市交通规划时,需要考虑到不同节点之间的最短路径,以便在城市中建设高效的道路系统。
这个问题中,需要考虑到人口分布、交通流量、环境因素等复杂变量。
5. 谷歌地图:谷歌地图是一种广泛使用最短路径算法的应用。
当用户在谷歌地图上搜索起点和终点时,谷歌地图会计算出最短路径,并给出导航指引。
这个过程中,谷歌地图需要考虑到道路的限速、交通情况和实时路况等因素。
综上所述,最短路问题在许多实际案例中都有应用。
无论是导航系统、物流配送、电信网络、交通规划还是谷歌地图等,都需要计算出最短路径以满足需求。
因此,研究和解决最短路问题在实际应用中具有重要意义。
运筹学论文最短路问题
运筹学论文——旅游路线最短问题摘要:随着社会的发展,人民的生活水平的提高,旅游逐渐成为一种时尚,越来越多的人喜欢旅游。
而如何才能最经济的旅游也成为人民考虑的一项重要环节,是选择旅游时间最短,旅游花费最少还是旅游路线最短等问题随之出现,如何决策成为一道难题。
然而,如果运用运筹学方法来解决这一系列的问题,那么这些问题就能迎刃而解。
本文以旅游路线最短问题为列,给出问题的解法,确定最短路线,实现优化问题。
关键词:最短路 0-1规划约束条件提出问题:从重庆乘飞机到北京、杭州、桂林、哈尔滨、昆明五个城市做旅游,每个城市去且仅去一次,再回到重庆,问如何安排旅游线路,使总旅程最短。
各城市之间的航线距离如下表:问题分析:1.这是一个求路线最短的问题,题目给出了两两城市之间的距离,而在最短路线中,这些城市有的两个城市是直接相连接的(即紧接着先后到达的关系),有些城市之间就可能没有这种关系,所以给出的两两城市距离中有些在最后的最短路线距离计算中使用到了,有些则没有用。
这是一个0-1规划的问题,也是一个线性规划的问题。
2.由于每个城市去且仅去一次,最终肯定是形成一个圈的结构,这就导致了这六个城市其中有的两个城市是直接相连的,另外也有两个城市是不连接的。
这就可以考虑设0-1变量,如果两个城市紧接着去旅游的则为1,否则为0。
就如同下图3.因为每个城市只去一次,所以其中任何一个城市的必有且仅有一条进入路线和一条出去的路线。
LINGO解法:为了方便解题,给上面六个城市进行编号,如下表(因为重庆是起点,将其标为1)重庆北京杭州桂林哈尔滨昆明1 2 3 4 5 6假设:设变量x11。
如果x11=1,则表示城市i与城市j直接相连(即先后紧接到达关系),否则若x11=0,则表示城市i与城市j不相连。
特别说明:xij和xji是同一变量,都表示表示城市i与城市j是否有相连的关系。
这里取其中xij (i<j)的变量。
模型建立:由于这是一个最短路线的问题,且变量已经设好。
最短路问题的实际应用论文
金华双龙洞旅游路线中最短路问题摘要:金华双龙洞景点分布较多,通过对其旅游路线的设置,转化为图论内容中的最短路情景进行讨论,建立模型,并通过搜索资料,利用几种方法解决路线最小的问题。
关键字:数学建模最短路问题 lingo Dijkstra法 flod算法一、研究背景:在旅游过程中,我们常常感觉到自己一天下来走了很多路,回到宾馆脚痛的不行。
但其实我们可以利用运筹学的知识,通过建立数学模型,转化为图论的内容。
从而较为合理的制定出选择的路线(即最短路问题)。
因而这次的小论文,我主要探究一下几个问题:1.从景点进口到出口的最短路程。
(最短路问题)2.从景点到出口的最长路线。
3.建立的模型是否满足能回到起点(古典图论问题)二、研究内容:根据从互联网中搜索的资料,金华双龙洞的主要景点:景区进口双龙洞,冰壶洞,朝真洞,桃源洞,黄大仙祖宫五个,其余为小景点(若要加入,同样可以按照以下问题的研究方法进行讨论)现在忽略。
问题总假设:分别设置双龙洞,冰壶洞,朝真洞,桃源洞,黄大仙祖宫五个景点为A,B,C,D,E五点,根据现实及假设,可以得到如图所示的路线图:再利用用Dijkstra算法求解无负权网络的最短路。
同时也可以利用此法算出最长路程。
问题一的解决:以A为景点出口,E为出口。
故A点标号为P(a)=0 给其余所有的T标号T(i)=+∞考虑与A相邻的两个顶点BC,两个顶点为T标号,故修改这两个点的标号为:T(b)=min[T(b),P(a)+l12]=min[+∞,0+3]=3T(c)=min[T(c),P(a)+l13]=min[+∞,0+2]=2比较所有T标号,T(c)最小,所以令P(c)=2再考察(C,B)(C,D)(C,E)的端点:同理可得T(b)=6 T(d)=6.8 T(e)=10.2(显然已经到终点但还需要看看其余路线长短)故又令P(b)=6.综合分析只有一条线路即A→C→B→D→E 此时总路程为2+4+3+8.4=16.4>10.2所以,最短路程为A→C→E。
短路的事例
短路的事例短路是电路中常见的问题,它可能由不正确的电线连接、破损的电线绝缘层或设备的过载引起。
当电流在电路中遇到短路时,它会找到另一条路径,绕过正常的电路,直接返回电源。
这种现象可能会导致电路瘫痪、设备损坏甚至起火。
下面,我们来看几个短路的常见事例。
第一个事例是家庭用电中的短路。
假设你正在家中做晚饭,突然灯光熄灭,电视也无法使用。
你发现整个房间的插座都没有电。
这可能是由于你在使用微波炉的同时打开了过多的电器,导致电路过载,引发了短路。
这时你需要重置电路保险丝或找电工解决问题。
第二个事例是汽车中的短路。
你正在驾驶汽车,突然车辆失去动力,仪表盘上的警示灯也亮了起来。
这可能是由于车辆电路出现了短路,导致电能无法正常传递。
这种情况可能是由于车辆电线破损或连接不良引起的。
在这种情况下,你需要将车辆停在安全的地方,检查电线是否完好,并找专业人士修复。
第三个事例是工业生产中的短路。
在一家工厂中,一台机器突然停止运行,工作人员发现有烟雾从机器内部冒出。
这可能是由于机器的电路发生了短路,导致电线过载并引发了火灾。
工作人员需要立即关闭电源,并使用灭火器或报警器进行处理,同时找专业人士维修设备。
以上事例只是短路问题的几个常见案例,但实际上短路可能出现在任何的电路中。
为了避免短路问题,我们需要注意以下几点。
首先,正确连接电线,确保电线绝缘层完好无损。
其次,合理使用电器,避免过载。
最后,定期检查电路,及时修复破损的电线或设备。
总之,短路问题在生活中是常见的,但它可能带来严重的后果。
我们应该时刻保持警惕,避免引发短路的问题。
同时,了解短路的常见事例,可以帮助我们更好地理解和解决这个问题。
图论及其应用课程论文—— 解决城市道路最短路问题
图论及其应用专业:计算机科学与技术班级:图论及其应用5学号:姓名:任课教师:图论及其应用——解决城市道路最短路问题(重庆邮电大学计算机科学与技术学院,重庆重庆市400065)E-mail: 1356310671@【摘要】本文通过Dijkstra算法编程计算出重庆市主城九区任意两区间的最短路径,并在VC下实现一个顶点到其余各个顶点的所有最短路径的查找。
【关键字】最短路径Dijkstra算法中图分类号 O1571引言当前城市的规模越来越大,交通道路状况也越来越复杂,从城市的一个地方到另一个地方可能有很多种路径,如何从众多的路径中选择距离最短或者所需时间最短的路径便成了人们关注的热点。
能够选择出一条最符合条件的路径会给我们的日常生活带来极大地方便。
本文就通过找城市各地之间的最短距离路径为例,详细的介绍经典的最短路径算法Dijkstra算法及其算法的实现。
2相关知识定义2.1.1图G是一个有序二元组<V,E>,记作G=<V,E>,其中V是一个非空集合,V中的元素成为结点;E是无序积V&V的多重子集,称E为G的边集。
每一条边都是无向边的图称为无向图,每一条边都是有向边的图称为有向图。
定义2.1.2如果有两条边的端点是同一对顶点,则称这两条边为重复边。
给定图G=(V,E),设v0,v1,……,v n∈V,e1,e2,……,e n∈E,其中e i是关联于结点v i-1,v i的边,交替序列称为联结v0到v n的路。
当v0=v n时,这条路称作回路。
定义2.1.3若图G只有一个连通分支,则称G是连通图。
设无向图G=(V,E)为连通图,若有边集E i⊂E,使图G中删除了E i的任一真子集后得到的子图是连通图,则称E i是G的一个边割集。
若是E i单元集{e},则称e为割边或桥。
定义2.1.4设图G=<V,E>,若G为一个无向图,v∈V,与v关联边的次数为v的度数。
若G为一个有向图,v∈V,v作为边的始点的次数为v的出数;v 作为边的终点的次数为v的入数。
最短路问题及其应用
最短路问题及其应用顾碧芬 06200103摘要:主要介绍最短路得两种算法,迪杰斯特拉(D ijk stra)及弗罗伊德(Floyd)算法。
以及这两种算法在实际问题中得应用与比较。
1 引言最短路问题就是图论理论得一个经典问题。
寻找最短路径就就是在指定网络中两结点间找一条距离最小得路。
最短路不仅仅指一般地理意义上得距离最短,还可以引申到其它得度量,如时间、费用、线路容量等。
最短路径算法得选择与实现就是通道路线设计得基础,最短路径算法就是计算机科学与地理信息科学等领域得研究热点,很多网络相关问题均可纳入最短路径问题得范畴之中。
经典得图论与不断发展完善得计算机数据结构及算法得有效结合使得新得最短路径算法不断涌现。
2 最短路2、1 最短路得定义对最短路问题得研究早在上个世纪60年代以前就卓有成效了,其中对赋权图得有效算法就是由荷兰著名计算机专家E 、W 、Di jkstra 在1959年首次提出得,该算法能够解决两指定点间得最短路,也可以求解图G 中一特定点到其它各顶点得最短路。
后来海斯在Dijkst ra 算法得基础之上提出了海斯算法。
但这两种算法都不能解决含有负权得图得最短路问题。
因此由Ford 提出了F ord 算法,它能有效地解决含有负权得最短路问题。
但在现实生活中,我们所遇到得问题大都不含负权,所以我们在得情况下选择Dijkstra 算法。
定义①1若图G=G(V ,E)中各边e 都赋有一个实数W(e),称为边e 得权,则称这种图为赋权图,记为G =G(V ,E,W)。
定义②2若图G=G(V ,E )就是赋权图且,,若u 就是到得路得权,则称为得长,长最小得到得路称为最短路。
若要找出从到得通路,使全长最短,即。
2、2最短路问题算法得基本思想及基本步骤在求解网络图上节点间最短路径得方法中,目前国内外一致公认得较好算法有迪杰斯特拉(Dijkstra)及弗罗伊德(Floyd)算法。
这两种算法中,网络被抽象为一个图论中定义得有向或无向图,并利用图得节点邻接矩阵记录点间得关联信息。
短路的实例
短路的实例短路是指电路中出现的一种异常情况,当电路中的电流超过设定值时,电路将会自动中断。
这是一种保护电路和设备的重要机制,可以避免电流过大导致设备损坏或产生危险。
本文将以几个实际生活中的例子来解释短路的原理和应用。
我们来谈谈汽车电路中的短路。
当汽车电路中的导线出现断裂或损坏时,电流就会找到其他路径流动,这可能导致短路。
例如,当你的车辆中的尾灯灯泡烧坏时,电流可能会绕过灯泡并通过其他电路回到电池,导致其他灯泡也无法正常工作。
这时,短路保险丝就会起到作用,它会自动切断电路,以防止电流过大损坏电器设备。
另一个例子是家庭电路中的短路。
当你在家里使用大功率电器设备时,例如电热水壶或电炉,电流可能会超过电路的承载能力,导致短路发生。
这时,电路中的保险丝或断路器会自动切断电流,以保护电线和电器设备的安全。
短路还可以发生在插座或开关等电器设备损坏时,当设备内部的导线短路时,电流就会绕过设备并回到电源,这可能会导致火灾或电器设备损坏。
除了电路中的短路,我们还可以谈论一些其他领域中的短路现象。
例如,当我们在做数学题时,如果一个问题的解决过程中出现错误,可能会导致答案的错误。
这种情况下,我们可以说解题过程发生了短路,即出现了错误的推理或计算,导致答案的错误。
另一个例子是人际关系中的短路。
当我们与他人沟通时,如果我们的意图没有被准确地传达或理解,就可能出现误解或冲突。
这种情况下,我们可以说沟通过程发生了短路,即信息的传递和理解出现了问题。
总的来说,短路是一种常见的现象,不仅在电路中存在,在其他领域中也会出现。
短路能够保护电路和设备的安全,避免电流过大造成损坏或危险。
对于短路的理解和应用,有助于我们更好地保护设备、解决问题和改善人际关系。
因此,我们应该对短路有一定的了解,并在需要时采取相应的措施,以确保安全和顺利的运行。
最短路问题在城市路网中的应用
最短路问题在城市路网中的应用摘要:为减少城市交通拥堵,提高道路通行能力,以最短交通时间为目标,根据交通状况,以时间为权值赋与每段道路,运用最短路模型,计算出道路网中两点之间最有效的路线。
最终总结路网信息,指导车辆的行驶路线,缓解道路的交通压力。
借此思路为城市交通管理部门提供管理新手段,在城市交通管理中具有很现实的指导意义。
关键词: 运筹学;最短路问题;交通;通行能力The Application of Shortest Path Problem in urban road networkJIN Yan-qing1, WANG Fei1, LAN Yun-song1, YUE Guang-hua1(1.Chang’an University Institute of Highway, Shanxi Xi’an 710064)Abstract:In order to reduce urban traffic congestion and improve road capacity, this paper uses the shortest path model to calculate the most efficient route between two points in road network. The goal is the shortest travel time through assigning the road time to each weight depending on traffic conditions. At last, summing up the road network information, which can guide the vehicle driving route to ease traffic pressure of the road. Take this new idea to provide management tools for urban traffic management sector, which has very realistic guiding significance in urban traffic management.Key words: Operations Research; Shortest Path Problem; Traffic; Road capacity0引言随着我国城市经济的快速发展,机动车拥有量迅速增加,城市交通拥堵已经成为我国许多城市的严重问题,严重影响着城市功能的发挥和城市中人们的生活质量,所以缓解交通拥堵是保障和促进经济社会发展、改善民生的必然要求。
基于最短路算法在生产最优化中的应用
基于最短路算法在生产最优化中的应用1问题最短路问题是图论中的一个重要问题。
人们已经熟知最短路算法在电信、交通、电子设计及计算机等领域有广泛的应用[1~3 ] 。
迪克斯特拉算法(Di2jkstra) 是典型最短路算法,可计算图的一个结点到其他结点的最短路径。
本文给出基于迪克斯特拉算法的一种简捷有效的最短路算法实现,然后利用这一算法实现求解设备更新问题和原料选配问题,揭示最短路算法在生产优化领域的意义。
2算法实现有限权图可以是生产实践中各种图的抽象,如图1 所示。
若图中的点代表城市,边代表公路线或航线,边的权代表相应的路程或航程,也可以是某种费用,则两点间的最短路和距离即意味着两城市之间的最短行程或最低费用。
现就图1 给出一种迪克斯特拉最短路算法[4~6 ]的实现,该算法实现能一次求出权图中任一点到图中其余各点的最短路及距离。
求图1 中点V3 到图中其余各点的最短路及距离,运算格式如图2 所示。
图2点V3 到其余各点的最短路及距离此运算格式显示了点V3 到其余各点的最短路及距离。
( V3 ) (0) 表示点V3 到本身的距离为0 ,(V3 ,V2 ) (1) 表示点V3 到点V2 的最短路及距离。
此运算格式严格清晰显示了求解顺序及过程。
下面给出上述运算格式的运算过程:①在一行中按任意顺序列出除V3 以外的其余各点,另起一行写出( V3 ) (0) ,然后从图1 中查出V3到各点的权,分别标在对应点的下面,从其中选出最小者1 ,则把1 及其所对应的点以条框圈起,同时另起一行写出( V3 , V2 ) (1) 即为点V3到点V2 的最短路及距离,如图3 所示。
V3 到V2 点的最短路及距离②在①基础上,从图1 中查出V2 到除去V3 ,V2的其余各点的权并加上1 ( V3 到V2 的距离) ,分别标在各点的对应位置(1 + ∞= ∞) 。
在第一步和现在所标出的权及权和中,条框圈起的除外,选取最小者为2 ,则把2 所对应的点及权和一列用条框圈起,同时另起一行写出( V3 , V5 ) (2) 即为V3 点到点V5 的最短路及距离,如图4 所示。
短路课程设计论文
短路计算课程设计1课题概述1.1 课题目的电力系统发生短路故障造成的危害性是最大的。
作为电力系统三大常规计算之一,分析短路故障的参数更为重要。
目的:(1)通过课程设计, 使学生掌握电力系统三相短路计算的基本原理与方法;(2)掌握并能熟练运用PSCAD/MATLAB仿真软件;(3)采用PSCAD/MATLAB软件,做出系统三相接线图。
1.2 课题要求(1)通过课程设计是学生掌握电力系统三相短路计算的基本原理和方法;(2)掌握并能熟练运用PSCAD/MATLAB仿真软件;(3)建立系统三相接线图的仿真过程;(5)编写短路计算流程图;(4)得出仿真结果。
注意:①查阅相关资料。
②依据相关资料,自己做出的仿真结果是否与相关资料的结果相符。
③学会分析仿真结果,并得出结论。
1.3 课题内容具体参数如下:f3.f5各自发生短路和同事发生短路时的(三相短路和不对称短路),短路时的短路电压和短路电流,以及分析对发电机的影响。
表1表2 发电机开路时间参数表3发电机数据表4STC型励磁机参数表5 汽轮机模型表6 调速器参数表7 线路参数2短路故障分析2.1短路故障介绍电力系统故障表现各异,形式上又可分为短路故障、断线故障(非全相运行),按分析方法分为不对称故障、对称故障,对称故障一般指三相短路故障,不对称故障则包括不对称短路(单相短路接地、两相短路、两相短路接地)和非全相运行(单相断路、两相断路) 2种。
电力系统发生短路时,伴随短路所发生的基本现象是:电流剧烈增加,线端处发生三相短路时,电流的最大瞬时值可能高达额定电流的10-15倍,从绝对值讲可达上万安培,甚至十几万安培。
在电流急剧增加的同时,系统中的电压大幅度下降,例如系统发生三相短路时,短路点的电压将降到零,短路点附近各点的电压也将明显降低。
2.2短路电流计算步骤(1)绘制计算系统图在计算用图中应包括与短路电流计算有关的全部电力元件(如系统、发电机、变压器、输电线路等),以及它们之间的连接关系。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
金华双龙洞旅游路线中最短路问题
摘要:
金华双龙洞景点分布较多,通过对其旅游路线的设置,转化为图论内容中的最短路情景进行讨论,建立模型,并通过搜索资料,利用几种方法解决路线最小的问题。
关键字:
数学建模最短路问题 lingo Dijkstra法 flod算法
一、研究背景:
在旅游过程中,我们常常感觉到自己一天下来走了很多路,回到宾
馆脚痛的不行。
但其实我们可以利用运筹学的知识,通过建立数学
模型,转化为图论的内容。
从而较为合理的制定出选择的路线(即
最短路问题)。
因而这次的小论文,我主要探究一下几个问题:
1.从景点进口到出口的最短路程。
(最短路问题)
2.从景点到出口的最长路线。
3.建立的模型是否满足能回到起点(古典图论问题)
二、研究内容:
根据从互联网中搜索的资料,金华双龙洞的主要景点:景区进口双
龙洞,冰壶洞,朝真洞,桃源洞,黄大仙祖宫五个,其余为小景点
(若要加入,同样可以按照以下问题的研究方法进行讨论)现在忽
略。
问题总假设:分别设置双龙洞,冰壶洞,朝真洞,桃源洞,黄大仙
祖宫五个景点为A,B,C,D,E五点,根据现实及假设,可以得到如图
所示的路线图:
再利用用Dijkstra算法求解无负权网络的最短路。
同时也可以利用此法算出最长路程。
问题一的解决:以A为景点出口,E为出口。
故A点标号为P(a)=0 给其余所有的T标号T(i)=+∞
考虑与A相邻的两个顶点BC,两个顶点为T标号,故修改这两个点的标号为:T(b)=min[T(b),P(a)+l12]=min[+∞,0+3]=3
T(c)=min[T(c),P(a)+l13]=min[+∞,0+2]=2
比较所有T标号,T(c)最小,所以令P(c)=2
再考察(C,B)(C,D)(C,E)的端点:同理可得
T(b)=6 T(d)=6.8 T(e)=10.2(显然已经到终点但还需要看看其余路线长短)
故又令P(b)=6.综合分析只有一条线路即A→C→B→D→E 此时总路程为2+4+3+8.4=16.4>10.2
所以,最短路程为A→C→E。
即当游客不想再看双龙洞时或者因为脚伤等因素需以最小路程离开时,可以路线A→C→E离开景区。
特殊情况的处理:游客一定要去B景点则在一开始就应该先选择
B,而非C。
才能使路线最短。
因此,对于特殊问题,我们应当具体
问题,具体分析。
总结Dijkstra法:
实施步骤大体分为三步:标号→比较T标号→修改标号
设图的顶点数为n,则最多经过n-1步得到起点到终点的最短路。
问题二的解决:同样以A为景点出口,E为出口。
但由于是最长的
路线.可以利用似Dijkstra算法进行计算。
故A点标号为P(a)=0 给其余所有的T标号T(i)=-∞。
考虑与A相邻的两个顶点BC,两个顶点为T标号,故修改这两个点
的标号为:T(b)=max[T(b),P(a)+l12]=max [-∞,0+3]=3
T(c)=max[T(c),P(a)+l13]=max[-∞,0+2]=2
比较所有T标号,T(b)最大,所以令P(b)=3
再考察(B,C)(B,D)的端点:同理可得
T(c)=7 > T(d)=6 故令P(c)=7 再继续考察(C,D)(C,E)显然经过D,再经过E路程最长。
所以最长路程为A→B→C→D→E。
即一些游客喜欢自然风光,喜欢
走走看看,可以采用这条最长路程进行游玩。
同样也是观看所有景
点的路线之一。
对于最短路程的解法,我们还可以通过Floyd算法,1962年
(矩阵算法)进行运算:
得到邻接矩阵:
由于自己对编程语言不太了解,参考资料后,给出一段关键部分:
for k:=1 to n do
for i:=1 to n do for j:=1 to n do
if a[i,k]+a[j,k]>a[i,j] then a[i,j]:=a[i,k]+a[k,j]; end;
以此可利用编程语言进行求解,运行程序得到弗洛伊德矩阵。
从而找到最短路的路线。
【其方法为:从起点开始:找出弗洛伊德矩阵中以该点为行坐标的最小的列坐标的指向的目标点
再找出指向点行坐标最小的列坐标的再次指向点(注意:每次找指向点过程中应先去掉已到过的点和自己本身。
)如此循环直到找到终点为止就找到了最短路】
现在,我们还可利用lingo 对最短路问题进行求解,其程序如下:
model : sets : c/1..5/:u; l(c,c):d,x; endsets data :
d=0 3 2 100000 10000 3 0 4 3 100000 2 4 0 4.8 8.2 100000 3 4.8 0 8.4 100000 100000 8.2 8.4 0; enddata n=@size (c); min =@sum (l:d*x); @for (c(k)|k#gt#1:
@sum (c(i)|j#ne#k:x(i,k))>=1;
@for (c(j)|j#gt#1#and#j#ne#k:u(j)>=+u(k)+x(k,j)-(n-2)*(1-x(k,j))+
(n-3)*x(j,k)));
@sum
(c(j)|j#gt#1:x(1,j))>=1; @for (l:@bin (x));
@for(c(k)|k#ge#1:@bnd(1,u(k),9999);u(k)<=n-1-(n-2)*x(1,k));
end
通过利用lingo的计算,同样我们可以解出原最短路线的解。
问题三的探究:建立的模型是否满足一次性不重复地经过所有路线回到起点(古典图论问题)
我们需要以下几个规律:
❶如果一个图一次性可以走完各个点,它必须有偶数个奇点。
❷如果还要回到起点,并且不重复地走完所有的路,则所有顶点必须都是偶点。
因此,我们可以看见:
景点中:
存在着奇点B,D。
故还是不可能一次性不重复地走过所有路线回到原起点。
但奇点的个数是偶数,故所有景点可以一次性游完,而不需要再考虑反复地问题。
总结:对于一个图(简单图)来说满足上面规律2,即可一次性不重复地走完全部路线;但如果只要走完一次性所有点,则只要满足
规律1。
三、总论:
1.对于在双龙洞中的最短路问题,解得路线为:双龙洞→朝真
洞→黄大仙祖宫。
2.本问题的求解使用了图论中的最短路的方法求解。
主要采用
的解法有3种:Dijkstra算法 Floyd算法 Lingo解法。
从中可以看见,这次的论文,我主要讨论的是关于图与网络分
析部分中最短路问题的解法。
同时,还对上课内容中引题部分欧拉
七桥问题进行了总结。
3.对于这次问题的研究,意义在于:
①对于最短路问题有了进一步的了解和认识,初步掌握了对最
短路问题的求解过程。
可以采用3种算法进行求解。
对此,对于我
们生活中很多问题有一定的指导意义。
正如旅游的规划,邮递员送
信,从一个地方到另一个地方最快的方案,设备更新等问题都利用
这次研究的结果,进行分析与优化。
因此,
②学会了用lingo解决最短路问题的编程,扩展了自己的能力。
③是对运筹学知识内容的进一步理解,通过自己找问题,建立
模型,解决问题,总结的过程,让自己对运筹学充满了兴趣。
4.不足之处:
①对于这次的论文,不足之处在于所构建的模型数目不多,只
有5个点,为得是讨论简单。
但做下来才知道,其实更多的点,谈
论过程还是一样的。
因此,如果最短路问题比较复杂,还是可以通
过上述几种方法进行解决。
比如,有8个点,利用lingo解决的话,只需要将 c/1..5/:u;
改为c/1..8/:u;
再将其余的内容进行修改。
因此还是具有一定的通用性。
②由于资料不是很全面,把实际地图抽象为网络图时不够精确,没有考虑其他方面(比如地势高低)等的影响。
所有在距离上存在
一定偏差。
因此,以后在解决此类问题中,我们应当做好资料搜集
工作,尽量使模型与实际接近。
参考内容:
[1] 甘应爱等.运筹学(第三版).清华大学出版社.2005
[2]Lingo+运筹学实训指导书【例7.6】。