欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Dijkstra算法详细讲解.docx

    • 资源ID:3155799       资源大小:37.99KB        全文页数:4页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Dijkstra算法详细讲解.docx

    Dijkstra算法详细讲解最短路径之Dijkstra算法详细讲解 最短路径算法 在日常生活中,我们如果需要常常往返A地区和B地区之间,我们最希望知道的可能是从A地区到B地区间的众多路径中,那一条路径的路途最短。最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图中两结点之间的最短路径。 算法具体的形式包括: 确定起点的最短路径问题:即已知起始结点,求最短路径的问题。 确定终点的最短路径问题:与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。 确定起点终点的最短路径问题:即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题:求图中所有的最短路径。 用于解决最短路径问题的算法被称做“最短路径算法”, 有时被简称作“路径算法”。 最常用的路径算法有:Dijkstra算法、A*算法、Bellman-Ford算法、Floyd-Warshall算法、Johnson算法。 本文主要研究Dijkstra算法的单源算法。 Dijkstra算法 2.1 Dijkstra算法 Dijkstra算法是典型最短路算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。 Dijkstra算法是很有代表性的最短路算法,在很多专业课程中都作为基本内容有详细的介绍,如数据结构,图论,运筹学等等。 2.2 Dijkstra算法思想 Dijkstra算法思想为:设G=(V,E)是一个带权有向图,把图中顶点集合V分成两组,第一组为已求出最短路径的顶点集合,第二组为其余未确定最短路径的顶点集合,按最短路径长度的递增次序依次把第二组的顶点加入S中。在加入的过程中,总保持从源点v到S中各顶点的最短路径长度不大于从源点v到U中任何顶点的最短路径长度。此外,每个顶点对应一个距离,S中的顶点的距离就是从v到此顶点的最短路径长度,U中的顶点的距离,是从v到此顶点只包括S中的顶点为中间顶点的当前最短路径长度。 2.3 Dijkstra算法具体步骤 初始时,S只包含源点,即S,v的距离为0。U包含除v外的其他顶点,U中顶点u距离为边上的权或 )。 从U中选取一个距离v最小的顶点k,把k,加入S中。 以k为新考虑的中间点,修改U中各顶点的距离;若从源点v到顶点u的距离比原来距离短,则修改顶点u的距离值,修改后的距离值的顶点k的距离加上边上的权。 重复步骤和直到所有顶点都包含在S中。 2.4 Dijkstra算法举例说明 如下图,设A为源点,求A到其他各顶点的最短路径。线上所标注为相邻线段之间的距离,即权值。 图一:Dijkstra无向图 算法执行步骤如下表: 错误! 步骤 1 S集合中 选入A,此时S=<A> 此时最短路径AA=0 以A为中间点,从A开始找 U集合中 U=<B、C、D、E、F> AB=6,AC=3, A其它U中的顶点=, 发现AC=3权值为最短 2 选入C,此时S=<A、C> 此时最短路径AA=0,AC=3以C为- 4 - U=<B、D、E、F> 中间点, 从AC=3这条最短路径开始找 ACB=5(比上面第一步的AB=6要短) 此时到D权值更改为ACB=5, ACD=6, ACE=7, AC其它U中的顶点=,发现ACB=5权值为最短 3 选入B,此时S=<A、C、B> 此时最短路径AA=0,AC=3,ACB=5 以B为中间点 从ACB=5这条最短路径开始找 U=<D、E、F> ACBD=10(比上面第二步的ACD=6要长) 此时到D权值更改为ACD=6, ACB其它U中的顶点=,发现ACD=6权值为最短 U=<E、F> ACDE=8(比上面第二步的ACE=7要长)此时到E权值更改为ACE=7,ACDF=9 发现ACE=7权值为最短 4 选入D,此时S=<A、C、B、D> 此时最短路径AA=0,AC=3,ACB=5,ACD=6 以D为中间点, 从ACD=6这条最短路径开始找 5 选入E,此时S=<A、C、B、D、E> U=<F> 此时最短路径AA=0,AC=3,ACEF=12(比上面第四步的ACB=5,ACD=6,ACE=7,ACDF=9要长)此时到F权值更改为ACDF=9 以E为中间点, 从ACE=7这条最短路径开始找 6 选入F,此时S=<A、C、B、D、E、F> 此时最短路径AA=0,AC=3, ACB=5, ACD=6, ACE=7,ACDF=9 发现ACDF=9权值为最短 U集合已空,查找完毕。 - 5 -

    注意事项

    本文(Dijkstra算法详细讲解.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开