- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单源最短路径单源最短路径Dijkstra算法-大连理工大学
图 大连理工大学 刘 馨 月 图的基本概念 图的存储 图的遍历 最小生成树 最短路径 关键路径 主要内容 最短路径 兰州 太原 北京 济南 徐州 郑州 西安 旅客希望停靠站越少越好,则应选择 济南——北京——太原——兰州 旅客考虑的是旅程越短越好, 1120 920 720 210 540 340 640 190 济南——徐州——郑州——西安——兰州 最短路径 单源最短路径(Dijstra算法) 任意点对之间的最短路径(Floyd算法) 最短路径 单源最短路径 给定一个带权图G = V,E,其中每条边(vi,vj)上的权W[vi,vj]是一个非负实数。另外,给定V中的一个顶点s充当源点。 现在要计算从源点s到所有其他各顶点的最短路径,这个问题通常称为单源最短路径(single-source shortest paths)问题。 单源最短路径 单源最短路径 Dijkstra算法:是由E.W.Dijkstra提出的一种按路径长度递增的次序产生到各顶点最短路径的贪心算法。 E.W.Dijkstra [Dijkstra中的j不发音, d??kstra]: 1930年5月11日出身于the Netherlands Rotterdam. 1972年获得图灵奖(对开发ALGOL做出了重要贡献) 提出不要使用goto语句 去世于2002年8月6日于Nuenen, the Netherlands. 单源最短路径 Dijkstra算法 如果v0到vj的最短路径为: v0 ?vx1 ? vx2 ? vxn ? vi ? vj 则 v0 ?vx1 ? vx2 ? vxn ? vi是v0到vi的最短路径。 按长度顺序产生最短路径时,下一条最短路径总是由一条已产生的最短路径加上一条边形成。 Dijkstra算法 Dijkstra算法基本思想 集合S表示最短距离已经确定的顶点集。 其余的顶点放在另一个集合V-S中。 数组D来记录当前所找到的从源点s到每个顶点的最短特殊路径长度。 从尚未确定最短路径长度的集合V-S中取出一个最短特殊路径长度最小的顶点u,将u加入集合S,同时修改数组D中由s可达的最短路径长度。 Dijkstra算法 Dijkstra算法示例 例, v5 v0 v1 v4 v3 60 100 5 v2 10 30 20 10 50 V0 V1 V2 V3 V4 V5 V2 v2 V4 v4 Dijkstra算法 Dijkstra算法基本步骤 D的初始状态为:如果从源点s到顶点v有弧则D[v]记为弧的权值;否则将D[v]置为无穷大。 每次从尚未确定最短路径长度的集合V-S中取出一个最短特殊路径长度最小的顶点u,将u加入集合S,同时修改数组D中由s可达的最短路径长度:若加进u做中间顶点,使得vi的最短特殊路径长度变短,则修改vi的距离值(即当D[u] + W[u, vi] D[vi]时,令D[vi] = D[u] + W[u, vi])。 然后重复上述操作,一旦S包含了所有V中的顶点,D中各顶点的距离值就记录了从源点s到该顶点的最短路径长度。 Dijkstra算法 例, v5 v0 v1 v4 v3 60 100 5 v2 10 30 20 10 50 带权邻接矩阵 ∞ ∞ 10 ∞ 30 100 0 1 2 3 4 5 ∞ ∞ 5 ∞ ∞ ∞ ∞ ∞ ∞ 50 ∞ ∞ ∞ ∞ ∞ ∞ ∞ 10 ∞ ∞ ∞ 20 ∞ 60 ∞ ∞ ∞ ∞ ∞ ∞ 0 1 2 3 4 5 {v2} ∞ 10 ∞ 30 100 v0v2 v2 10 ∞ 60 30 100 v0v4 v4 30 {v2 , v4} ∞ 50 90 v0v4v3 v3 50 {v2 , v4 , v3} ∞ 60 v0v4v3v5 v5 60 {v2 , v4 , v3 , v5} ∞ v1 ∞ v1 v2 v3 v4 v5 最短路径 新顶点 S 顶点 路径长度 每次修改都用的是最新加入集合 S 的顶点 Dijkstra算法实例 Dijkstra算法 Dijkstra算法实现 其中的Dist类可以如下定义: Class Dist{ int length; //与源s的距离 int pre; //前面的顶点 }; 而minVertex()函数可用最小堆(Minheap)等方式实现。 Dijkstra算法实现 Dijkstra算法实现 void Dijkstra(Graph G,int s, Dist* D) { D=n
您可能关注的文档
- 北京林业大学学生平时成绩登记表-北京林业大学教务处.PDF
- 北京海淀区2008年高三第二学期期末练习.DOC
- 北京西城区2013—2014学第一学期期末试卷高三政治.DOC
- 北区地区小型工程计划-区议会.PDF
- 北华大学春雨活动一览表.PDF
- 北海道山村振兴基本方针-北海道庁.PDF
- 北白令海透明胞外聚合颗粒物的含量与来源.PDF
- 区间估计假设检验请各位.PPT
- 医师与生死-中山医学大学医学系.PDF
- 医疗器械临床试验现场检查要点2016年-成都大学附属医院.PDF
- 2025~2026学年福建省厦门市实验中学高三上学期第一次月考物理试卷.doc
- AI赋能的小学数学教师能力提升路径探索.docx
- 24J331 地沟及盖板图集.docx
- AI辅助教学在学生价值观培养中的作用.docx
- 2025~2026学年福建省厦门市湖滨中学高三上学期第一次月考物理试卷.doc
- AI赋能课堂管理与学生参与度提升研究.docx
- 2025~2026学年福建省厦门市思明区外国语中学高一上学期10月月考物理试卷.doc
- 2025~2026学年福建省厦门市集美中学高二上学期10月月考物理试卷.doc
- AI赋能下的小学数学教学内容重构策略.docx
- 2025~2026学年福建省厦门第一中学高三上学期10月月考物理试卷.doc
最近下载
- 京东客服客服话术和自动回复语大全.pdf VIP
- 入党志愿书(A4打印版).pdf VIP
- 入党志愿书_打印__电子版__A3A4双面.pdf VIP
- 儿童社会性发展.ppt VIP
- 2025年事业单位工勤技能-重庆-重庆环境监测工一级(高级技师)历年参考题典型考点含答案解析.docx VIP
- 2024年秋季新人教版七年级上册英语全册教案.docx
- 国际税收讲义(人民大学_朱青).ppt VIP
- 2025年事业单位工勤技能-重庆-重庆环境监测工四级(中级工)历年参考题库含答案解析.docx VIP
- 2023年重庆市环境系统事业单位人员招聘考试模拟试题及答案解析.docx VIP
- 2023年重庆市环境系统事业单位人员招聘考试题库及答案解析.docx VIP
原创力文档


文档评论(0)