迪克斯特拉(Dijkstra)算法及其改进

来源 :中华少年·教学版 | 被引量 : 0次 | 上传用户:liuyu890501
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  1引言
  20世纪中后期,随着计算机的出现和发展,图论的理论和应用研究得到广泛重视,图论作为一个数学分支的地位真正得到了确立。它与运筹学、离散数学、拓扑等
  紧密结合,互辅互助,共同前进。同时,图论的应用已经深入到众多领域,比如GIS网络分析就是图论在地理信息领域的重要应用[10],此外,在城市规划、电子导航、电子通讯、企业管理、工农业生产以及军事等方面也有着较为广泛的应用。
  最短路径问题是图论中的一个典范问题[12]。主要研究成果有Dijkstra、Floyd等优秀算法[9,12],Dijkstra还被认为是图论中的好算法[12]。但是值得注意的是,在理论上最优的算法不一定在实践中最优,仍然存在着某些局限性。比如网络特征可能时刻会发生变化,要求最短路径算法必须能够实时地自动更新。这类问题主要集中在交通网络的实时导航、通勤、调度和计算机互联网的数据传递路由等方面[7,8]。自然,人们目前的研究工作主要集中于算法实现的优化改进与应用方面,使得一个好的算法能够提高价值,解决实际生活更多、更复杂的问题。本文在对前人所做的改进算法综合基础上做了改进,使得一个算法能够解决多种局限性,在问题解决方面范围要更进一步。
  2 新算法设计
  2.1新算法描述及实现
  2.1.1符号说明
  若干符号分别定义为:
  (1)G=(V,E)为简单赋权图,其中V为G的顶点集,E为G的边集。
  (2)︱V︱=n为图G的顶点数。
  (3)(u,v)表示边uv的权,一条路径的长度即为该路上各边的权和。
  (4)N(u)表示无向图中含在S补集中的,与u相邻的顶点;N+(u)表示有向图中含在S补集中u的出邻域(与u相邻且边以u为起点的顶点集合)。
  (5)r为迭代次数;K(v)r表示在第r轮迭代中顶点v的标号;K(v)表示顶点v的最终标号,该标号就是起点v1至v最短路径的长;ur表示在第r轮迭代中获得最终标号的顶点。
  (6)S为已经获得最终标号的顶点集;T为标号集。
  (7)Ui为得到两个最终标号Ki1与Ki2的第i个顶点,其中Ki1表示起点到ui的最短路长度,Ki2表示终点到ui的最短路长度;Hi=Ki1+Ki2 。
  以下不妨称新算法为“扁担法”。之所以取名“扁担法”,实际上与扁担很类似,扁担是两头同时将重物挑起,而且前后重物的顺序交换一下,不影响人的承担能力。同样,所改进的“扁担法”在执行的过程中,也是从两个顶点同时以同样的做法进行。“扁担法”的主要原理是“变向”递归调用“改进标号法”。分别以所求最短路的两端顶点为起点实施 “改进标号法”,注意在实施的过程中要考虑是否为有向图。无向图时直接按李赉年的《求最短路径的“改进标号法”》中的算法进行。但如果是有向图,则在以终点为起点实施“改进标号法”时将有向边的方向朝相反方向考虑,即考虑的是顶点的入邻域,而不是出邻域。这样两端同时进行的话,必然会遇到有两个最终标号的顶点,这两个标号分别是到起点与终点的最短路长,相加的和即为两顶点间的一条较短路。随着过程的进行,不断遇到这样的顶点,直到全部顶点有这样两个标号,得到n个和,比较则可得到最小的和,即为所求。在前面所述的Dijkstra算法和“改进标号法”也适用于有向图的理论基础之上,又以递归调用为工具,无论是无向图还是有向图,算法完全正确。
  2.1.2新算法描述
  (1)分别以u与v为起点,两端同时使用“改进标号法”,过程参见李赉年的《求最短路径的“改进标号法”》。
  (2)在某一轮迭代中进行到第一个特殊的顶点u1,这个顶点在以u为起点的过程中已经得到一个标号K11,但是在以v为起点的过程中又得到一个标号K12,即u到u1的最短路长度为K11,而v到u1的最短路长度为K12,那么在这个顶点旁记下H1=K11+K12,也就是说顶点u到顶点v的一条相对比较短的路的长度为H1。
  (3)继续进行迭代,直到遇到第二个特殊顶点u2,重复(2),得到H2。
  (4)如上依次进行。若r=n,则“改进标号法”结束。
  (5)取H=min{H1,H2,H3,……,Hk,……,Hn}(k∈[1,n]),则H即为顶点u到顶点v的最短路的长度。这条最短路也可以由“改进标号法”的算法Ⅱ得到。
  (6)如果要算出另外的最短路,则只需从{H1,H2,H3,……,Hk,……, Hn}(k∈[1,n])这个集合中找出与H等值的Hi;或者想找前N条最短路,则对上面集合重新按大小顺序排列即可得到。
  2.1.3新算法实例
  解计算的迭代过程见表一。表中顶点vj所在的列中,与第r行对应的xi表示在第r轮迭代中vj的标号是x,即K(vj)r=x,x的下标i表示在第i轮迭代中x从T中被删去,并且是vj的最终标号。符号“/”前面的数表示的是以点1为起点进行“改进标号法”所得的结果,后面的则是以点6为起点进行“改进标号法”所得的结果。
  我们发现将计算的过程用以上这样的表格处理简单明了。最主要的是:由上表可以得到点1到点6的最短路的长度即为min{Hi}=8,并且最短路不经过点2,这些是可以从表上直接得到的。再应用改进标号法的算法2,可以得到两条最短路,分别为:1->4->3->6,1->4->5->6。当然,要排列两顶点之间的路长时,除了排列Hi外,更长的也可以找出来,只要将表格中“/”前后的数字分别相加,就可以得到另一些数据,也是两顶点之间的某条路的路长,排列之即可。
  3新算法评价
  与Dijkstra算法相比较,从以下几点实现的改进对本文的算法进行评价:
  (1)首先是“改进标号法”的优势:
  ①Dijkstra算法在每一次迭代中对顶点v都要用min{L(v),L(ui)+w(uiv)}代替L(v),需要进行一次加法运算和一次比较,而“改进标号法”的算法I在每一次迭代中计算K(v)r只需进行一次加法,因而整个算法中减少了12n(n-1)次比较.
  ②本文算法的加法次数一般应少于Dijkstra算法的加法次数.
  ③由“改进标号法”中的算法Ⅱ可较方便的求出简单赋权图G中两顶点间的最短路径.
  (2)在集合{H1,H2,H3,……,Hk,……,Hn}(k∈[1,n])中,当Hi=Hj=……=H(i,j∈[1,n])时,解决了一个算法找多条最短路的问题。
  (3)在上面集合中对各个元素Hi的比较,得到了不同大小的路径,也就找到了最短路,次短路,再次短路,……。
  (4)第(2)点和第(3)点解决了路径的多重选择问题,若实际中有多项限制,则可以从中选择较好的路径,不一定会是最短的那条路径,使得新算法增加其适用性。
  (5)当要找必须经过某顶点的最短路时,只需在表格中找到此顶点所在那列开始进行推导即可。
  (6)本算法对于是否有向图无关紧要,两者都适合。
  综上所述,本文的“扁担法”优于Dijkstra算法,成功解决了在算法评价中的前三点及最后一点的局限问题,因而是对原算法的一种改进。
  4结束语
  本算法继Dijkstra算法之后,在前人研究的两种算法基础之上,将其综合成一种新的算法,并添加自己的新的成分,成功解决了多个问题,克服了原有算法的不足之处,从而更具有适用性。所以在以后的学习生活中要注意学习方法的应用,以便更好、更快地解决更多的问题。
其他文献
摘要:鲜活的语言是作文成功的基石,学生应积极主动的吸收文学作品中、生活中的那些生命力强、富有灵气的词语,并学以致用,力求创新,写出成功的作文。  关键词:作文语言 鲜活 关注生活 注重积累 力求创新    《语文课程标准》要求,作文要文从字顺。作文表达上要做到“文从字顺”,学生就应该有丰厚的语言底蕴,表达以鲜活的语句,方能行文如流水,文彩飞扬。有时候,一篇作文可能因为一个灵气飞动的段落,或者一个鲜
期刊
课业类型:绘画课  教材分析:塔是文化的象征,是一种别致、美观的建筑,以千姿百态、雄伟挺拔的形象屹立在世界各地,点缀着山河,为各地名胜增添风采神韵,闪烁着建筑艺术地褶褶光辉。  塔最早起源于佛塔,来自印度,而中国古塔自东汉以来,随着佛教、伊斯兰教相继传入而建造。当时,塔是宗教的象征,大多是为宝藏经书、保存高僧或纪念佛祖而建,如少林寺的塔林等。如今,塔早已不仅仅是一种具有宗教意义的传统建筑,很多塔都
期刊
新课程改革已经在我省全面展开,笔者认为新课程目标下,最基本的还是应该重视对教材资源的充分挖掘和利用。这也是实现注意从学生已有的经验出发,让他们在熟悉的情景中感受物理思想的重要性,了解物理与日常生活的密切关系,逐步学会分析和解决与物理有关的一些简单的实际问题。"的教学理念和实现高中新课程教育目标的基础与关键。我以高中新课标教材《物理选修-3-4》为例,分别对新教材例题的研究;新教材概念的深入挖掘;新
期刊
摘要:政治学科中的计算题本质上不是考查考生的计算能力,而是考查考生对经济学中变量关系的理解。  关键词: 商品价值量计算, 理论知识, 计算方法    近几年关于“商品”知识的高考试题,主要是以选择题的方式进行考核,其中又以计算题为特色,涉及商品价值量、劳动时间、劳动生产率、价格等一系列的计算,在做题的过程中要总结方法。首先,要弄清楚相关经济学的理论知识。其次,审题要提取关键信息,排除干扰信息。第
期刊
【摘要】在处理解析几何的高考选择填空题时,要重视对圆锥曲线定义的深刻理解和记忆,力求做到灵活运用,往往会开阔思路,起到事半功倍的效果。因为圆锥曲线定义不仅是推导圆锥曲线标准方程及几何性质的基础,而且也是解题的重要工具。  【关键词】圆锥曲线 定义 应用
期刊
在新课程改革中涌现出很多有效的教学新方法,其中,学案导学是近两年来比较受广大师生欢迎的一种教学方式。学案是一种能贯穿课堂,帮助引导学生自主学习的工具。学案教学使教师教得轻松,学生学的快乐,学生以学案为线索,积极主动地参与到课堂活动中来,减轻了学生的学习负担,提高了课堂教学的效率。在教学中,我们依据学情,从学生实际出发,设计能体现学生学习过程的案例,通过使用学案,给学生自己动手,动脑解决问题创设了平
期刊
摘要:当前,“实施素质教育,培养学生创新能力”已成为我国教育教学改革的主旋律。那么,数学教学如何培养学生的创新思维和创新能力,塑造创造性人格,解决问题的关键是以课堂教学模式为切入点,进行教育内容的革新、教育观念的更新和教学方法的改革。  关键词:数学 课堂 模式    国家教育部颁布的《全日制普通高级中学课程计划(试验修订稿)》中提出的研究性学习,正是为了改革课堂教学中不适应新形势弊端,让学生模拟
期刊
哎!期末考试成绩发下来了,真是very terrible,我迈着沉重的步子,慢慢的往家走,真希望能这样走上一万年,可是今天的路,好像特别短,不一会儿就回家了。  回到家,妈妈问我:“考了多少分?”我可不好意思说,只好把家庭报告书呈上,妈妈一看,脸色立刻由晴转阴,“怎么考的这么差,数学、物理都不及格,看你爸回来怎么收拾你!”妈妈生气的说。我低头不语,过了一会儿,爸爸回来了,爸爸居然没问,哎!我还是乖
期刊
摘要:降维法是将一个三维图变成几个二维图,即应选两个合适的平面去观察,当遇到一个空间受力问题时,将物体受到的力分解到两个不同平面上再求解。由于三维问题不好想像,选取适当的角度,可用降维法求解。  关键词:巧用 降维法 解题 探讨    降维的优点是把不易观察的空间物理量的关系在二维图中表示出来,使我们很容易找到各物理量之间的关系,从而正确解决问题。  例1:如图1所示,倾角θ=30°的粗糙斜面上放
期刊
[内容摘要]:高中学生在学习三角函数的“诱导公式”部分时不能很快地掌握,更不能说达到灵活运用该知识进行化简。针对这一现象,我在教学中通过反复总结归纳出一个学生容易掌握和运用的规律,虽从数学逻辑上看不一定很严密,但绝对是行之有效的方法。     高中学生在学习《诱导公式》这一部分时,不知道由于对α+k.2π、α+π、α-π、±α这几种角的终边应落在哪个象限,所有对这些角的三角函授值的符号不能准确的判
期刊