第03基本数据结构与运算-5图幻灯片.ppt

第03基本数据结构与运算-5图幻灯片.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
图的最短路径 3 .最短路径 图中两个顶点之间有 条路径 最短路径: 是路径中边(弧)的权值总和最小的路径 计算机网络中常使用最短路径算法计算最佳路径 交通网络中使用最短路径算法计算最短旅途 多 Dijkstra Algorithm Floyd Algorithm A1 A2 A4 A3 A5 2 6 5 1 2 1 5 1)初始化时,设A1到其它不直连顶点距离为∞ 寻找A1到所有节点的最短路径 A2 A3 A4 A5 顶点 距离 路径 2)选择距离最短的路径 3)观察通过新选择的路径是否能更短地到达其它顶点 4)选择出的最短路径将不参加下一轮比较 5)反复2 - 4步,直到不剩有顶点 2 6 5 ∞ A2 A3 A4 A1 A2 A3--3 更新 A1 A2 A3 3 A1 A2 A4-- ∞ A1 A2 A5-- 4 A1 A2 A3 A4--4 更新 A1 A2 A3 A4 4 A1 A2 A3 A5--8 A1 A2 A5 4 A1 A2 A3 A4 A5--∞ 更新 Dijkstra Algorithm 拓 扑 排 序 按一定顺序进行的活动,可以使用顶点表示活动、顶点之间的有向边表示活动间的先后关系的有向图来表示,这种有向图称为顶点表示活动网络(Activity On Vertex network,简称AOV网)。 AOV网中的有向边表示了活动之间的制约关系。 4. 拓 扑 排 序 将AOV网中的所有顶点排列成一个线性序列vi1, vi2, …, vin,并且这个序列同时满足关系:若在AOV网中从顶点vi到顶点vj存在一条路径,则在线性序列中vi必在vj之前,我们就称这个线性序列为拓扑序列。把对AOV网构造拓扑序列的操作称为拓扑排序。 在实际的意义上,AOV网中存在的有向环就意味着某些活动是以自己为先决条件,这显然是荒谬的。例如对于程序的数据流图而言,AOV网中存在环就意味着程序存在一个死循环。 任何一个无环的AOV网中的所有顶点都可排列在一个拓扑序列里,拓扑排序的基本操作如下: (1) 从网中选择一个入度为0的顶点并且输出它。 (2) 从网中删除此顶点及所有由它发出的边。 (3) 重复上述两步,直到网中再没有入度为0的顶点为止。 以上的操作会产生两种结果: 一种是网中的全部顶点都被输出,整个拓扑排序完成; 另一种是网中顶点未被全部输出,剩余的顶点的入度均不为0,则说明网中存在有向环。 用以上操得到了一种拓扑序列: C1, C2 , C3, C4, C5, C7, C9, C10, C12, C11, C6, C8。 拓扑序列可以是 种 多 AOV网拓扑排序过程 在邻接表存储结构中实现拓扑排序算法的步骤为: (1) 扫描顶点表,将入度为0的顶点入栈。 (2) 当栈非空时执行以下操作: ?{ 将栈顶顶点vi的序号弹出,并输出之; 检查vi的出边表,将每条出边表邻接点域所对应的顶点的入度域值减1,若该顶点入度为0,则将其入栈; } (3) 若输出的顶点数小于n,则输出“有回路”,否则拓扑排序正常结束。 关 键 路 径 5. 关键路径 AOE网络(Activity On Edge network): 有向边:表示一个子工程(活动) 边上的权值:表示一个活动持续的时间 顶点:表示事件,它表示了一种状态,即它的入边所表示的活动均已完成,它的出边所表示的活动可以开始。 这种带权的有向网络称为 AOE网络(Activity On Edge network),即边表示活动网络。 一个AOE网络的示例 关键路径: 从源点到汇点的具有最大路径长度的路径。 关键活动: 关键路径上的各个活动。 明确了哪些活动是关键活动就可以设法提高关键活动的功效,以便缩短整个工期。 其中E1是网络中以vj为终点的入边集合,dur(i, j)是有向边 vi, vj上的权值。 vl(j)的计算可从汇点开始,向源点逆推计算: (13.2) 其中E2是网络中以vj为起点的出边集合。 (1) (2) ve(j)的计算可从源点开始利用以下的递推公式求得 ve(1)=0 ve(2)=max{ve(1)+dur(1, 2)}=max{0+3}=3 ve(3)=max{ve(1)+dur(1, 3)}=max{0+2}=2 ve(4)=maw{ve(2)+dur(2, 4), ve(3)+dur(3, 4)}=m

您可能关注的文档

文档评论(0)

精品课件 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档