网站大量收购闲置独家精品文档,联系QQ:2885784924

最短路问题DijkstraFloyd算法宣讲培训.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最短路问题DijkstraFloyd算法宣讲培训.ppt

最短路问题;一、什么是最短路问题;从v1到v8: P1=(v1,v2,v5,v8) 费用 6+1+6=13 P2=(v1,v3,v4, v6, v7, v8) 费用 3+2+10+2+4=21 P3= ……;最短路问题严格的定义;最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。 算法具体的形式包括: 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题。 确定终点的最短路径问题 - 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。 确定起点终点的最短路径问题 - 即已知起点和终点,求两结点之间的最短路径。 全局最短路径问题 - 求图中所有的最短路径。;二、Dijkstra(迪杰特斯拉)算法;思想:将D=(V,A,W)中vs到所有其它顶点的最短 路按其路长从小到大排列为:; 记;6;6;1,5;1,5;5;5;5;5;5;Dijkstra算法步骤:;;K=0 ∵ min{u2,u3,u4,u5,u6,u7,u8,u9} =min{6,3,1,?,?,?,?,?} =1= u4 ;K=0 +1=1 ∵ min{u2,u3,u5,u6,u7,u8,u9} =min{6,3,?, 11, ?,?,?} =3= u3 ; k=2 +1=3 ∵ min{u5,u6,u7,u8,u9} =min{6,11, ?,?,?} =6= u5 ; K=3 +1=4 ∵ min{u6,u7,u8,u9} =min{10,9,12,?} =9= u7 ; K=5 +1=6 ∵ min{u8,u9}=min{12,?} =12= u8 ;问题:①本例中,v1到v9的最短路?;void init (){ int i, j; for (i = 1; i = n; i++) //i==j的时候也可以初始化为0,只是有时候不合适 for (j = 1; j = n; j++) mapp[i][j] = inf; } void dijk (int u){ int i, j, mins, v; for (i = 1; i = n; i++){ dist[i] = mapp[u][i]; mark[i] = false; } mark[u] = true; dist[u] = 0; ;while (1) { mins = inf; for (j = 1; j = n; j++) if (!mark[j] dist[j] mins) mins = dist[j], v = j; if (mins == inf) break; mark[v] = true; for (j = 1; j = n; j++) if (!mark[j] dist[v] + mapp[v][j] dist[j]) dist[j] = dist[v] + mapp[v][j]; } };三、Floyd算法; 再在D1中加入v2及D中与vi,vj,v1, v2相关联的弧,得D2,D2中vi到vj的最短路长记为 ,则有; 有时候需要初始化 for ( int k = 0; k 节点个数; ++k ){ for ( int i = 0; i 节点个数; ++i ){ for ( int j = 0; j 节点个数; ++j ){ if ( Dis[i][k] + Dis[k][j] Dis[i][j] ){ Dis[i][j] = Dis[i][k] + Dis[k][j]; }}}} 时间复杂度为O(n^3);;第3步:当k=n时,; 例 求如

您可能关注的文档

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档