第8章 图2

设图G=是一个具有n个顶点的连通图。则从G的任一顶点(源点)出发,作一次深度优先搜索(广度优先搜索),搜索到的 n个顶点和搜索过程中从一个已访问过的顶点v i 搜索到一个未曾访问过的邻接点v j ,所经过的边(共n-1条)组成 的极小连通子图就是生成树。(源点是生成树的根 * * 5月28日第13周第2次课 * * * * * * 146-* 例如, 对学生选课工程图的拓扑有序序列为: C1 , C2 , C3 , C4 , C5 , C6 , C8 , C9 , C7 或 C1 , C8 , C9 , C2 , C5 , C3 , C4 , C7 , C6 C8 C3 C5 C4 C9 C6 C7 C1 C2 * 146-* 进行拓扑排序的方法 ① 输入AOV网络。令 n 为顶点个数。 ② 在AOV网络中选一个没有直接前驱的顶点, 并输出之; ③ 从图中删去该顶点, 同时删去所有它发出的有向边; ④ 重复以上 ②、③步, 直到 全部顶点均已输出,拓扑有序序列形成,拓扑排序完成;或 图中还有未输出的顶点, 但已跳出处理循环。说明图中还剩下一些顶点, 它们都有直接前驱。这时网络中必存在有向环。 拓扑排序:重复选择没有直接前驱的顶点。 * 146-* 8.7用边表示活动的网络(AOE网络) 如果在无有向环的带权有向图中, 用有向边表示一个工程中的活动 (Activity), 用边上权值表示活动持续时间 (Duration), 用顶点表示事件 (Event), 则这样的有向图叫做用边表示活动的网络, 简称 AOE ( Activity On Edges ) 网络。 AOE网络在某些工程估算方面非常有用。例如,可以使人们了解: 完成整个工程至少需要多少时间(假设网络中没有环)? * 146-* 为缩短完成工程所需的时间, 应当加快哪些活动? 源点与汇点: 从源点到各个顶点, 以至从源点到汇点的有向路径可能不止一条。 这些路径的长度也可能不同。 完成不同路径的活动所需的时间虽然不同, 但只有各条路径上所有活动都完成了, 整个工程才算完成。 例:给出下列AOV网络的拓扑有序序列,并将其转化为AOE网络。 * A1 A2 A3 A4 A5 A7 A6 A10 A8 A9 例:给出下列AOV网络的拓扑有序序列,并将其转化为AOE网络。 * A1 A2 A3 A4 A5 A7 A6 A10 A8 A9 1 2 3 5 4 6 7 * 146-* 关键路径: 完成整个工程所需的时间取决于从源点到汇点的最长路径长度, 即在这条路径上所有活动的持续时间之和。这条路径长度最长的路径就叫做关键路径(Critical Path)。 关键活动:要找出关键路径,必须找出关键活动, 即不按期完成就会影响整个工程完成的活动。 * 146-* 关键路径上的所有活动都是关键活动。因此, 只要找到了关键活动, 就可以找到关键路径。例如, 下图就是一个AOE网。 1 2 3 4 5 6 7 8 9 a1=6 a2=4 a3=5 a4=1 a5=1 a6=2 a7=9 a8=7 a9=4 a10=2 a11=4 * 146-* 几个与计算关键活动有关的量: 事件Vi 的最早可能开始时间Ve(i) 是从源点V0 到顶点Vi 的最长路径长度。 事件Vi 的最迟允许开始时间Vl[i] 是在保证汇点Vn-1 在Ve[n-1] 时刻完成的前提 下,事件Vi 的允许的最迟开始时间。 1 2 3 4 5 6 a1=3 a2=2 a3=2 a4=3 a5=4 a6=3 a7=2 a8=1 * 146-* 几个与计算关键活动有关的量: 活动ak 的最早可能开始时间 e[k] 设活动ak 在边Vi, Vj上, 则e[k]是从源点V0到顶点Vi 的最长路径长度。因此, e[k] = Ve[i]。 活动ak 的最迟允许开始时间 l[k] 1 2 3 4 5 6 a1=3 a2=2 a3=2 a4=3 a5=4 a6=3 a7=2 a8=1 l[k]是在不会引起时间延误的前提下, 该活动允许的最迟开始时间。 l[k] = Vl[j]-dur(i, j)。 其中, dur(i, j)是完成 ak 所需的时间。 * 146-* 5. 时间余量 l[k]-e[k] 表示活动ak的最早可能开始时间和最迟允许开始时间的时间余量。l[k] == e[k]表示活动 ak 是没有时间余量的关键活动。 为找出关键活动, 需要求各个活动的 e[k] 与 l[k],以判别是否 l[k] == e[k]。 1 2 3 4 5 6 a1=3 a2=2 a3

文档评论(0)

1亿VIP精品文档

相关文档