问答题 对有5个结点{A,B,C,D,E)的图的邻接矩阵
【正确答案】如图所示:
[*]
(2)深度优先遍历序列:ABCDE;广度优先遍历序列:ABCED
(3)
顶点
A
B
C
D
E
Ve(i)
0
100
30
50
10
V1(i)
0
100
60
90
40
所以,关键路径A——B(长100)。
解析:如果在带权的有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的开销,则此带权的有向图称为边活动网(Activity on edge network),简称AOE网。
顶点表示一个事件;顶点的入边表示该事件发生所需的活动;顶点的出边表示当该事件发生后,后续的活动都可以开展了。
AOE网中有些活动可以并行进行,所以完成整个工程的最短时间是从开始顶点到完成顶点的最长路径长度,路径长度为路径上各边的权值之和。把开始顶点到完成顶点的最长路径称为关键路径。
①几个相关的概念:
*e(i):活动ai的最早开始时间;
*1(i):活动ai的最迟开始时间;
*ve(j):事件的最早发生时间;
*v1(j):事件的最迟发生时间;
*源点:入度为零的顶点;
*汇点:出度为零的顶点。
②关键活动:
关键活动就是e(i)=l(i)的活动。
l(i)-e(i)表示完成活动ai的时间余量,是在不延误工期的前提下,活动ai可以延迟的时间。
③关键路径算法:
*输入e条弧,建立AOE网的存储结构。
*从源点v0出发,令ve(0)=0.求ve(i) 1<=i<=n-1。
*从汇点vn出发,令v1(n-1)=vc(n-1),
求v1(i) 2<=i<=n-2。
k根据各顶点的ve和v1值,求每条弧s的最早开始时问e(s)和最迟开始时间l(s)。
若某条弧e(s)=l(s),则为关键活动。
注意:求关键路径是在拓扑排序的前提下进行的,不能进行拓扑排序,自然也不能求关键路径。
④算法分析:
设AOE网有n个顶点、e条边,在求事件可能的最早发生时间及允许的最迟发生时间,以及活动的最早开始时间和最晚开始时间时,都要对图中所有顶点及每个顶点边表中所有的边结点进行检查,时间花费为O(n+e),因此,求关键路径算法的时间复杂度为O(n+e)。
【答案解析】