数据结构 —— 关键路径详解

一、定义引入:

1、AOV:

有向图中,用顶点表示事件,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV(Activity On Vertex)网络;

AOV网络可以反应任务完成的先后顺序(拓扑排序)。

2、AOE:

在实际应用中,活动除了先后关系外,还需考虑时间上的约束

在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,边上的权值表示活动的持续时间,称这样的有向图叫做边表示活动的网,简称AOE网。 

如图:

数据结构 —— 关键路径详解_第1张图片

3、

AOE网中只有一个入读为零的顶点称为始点(或源点),只有一个出度为零的顶点称为终点(或汇点)。

4、性质:

⑴ 只有在某顶点所代表的事件发生后,从该顶点出发的各活动才能开始;

⑵ 只有在进入某顶点的各活动都结束,该顶点所代表的事件才能发生。

5、

完成一个工程所需要的最短时间是从源点到汇点的最长路径长度

关键路径:具有最长长度的路径,这里的路径长度是路径上的各权值之和 

     注意:关键路径不一定只有一条。

关键活动:关键路径上的活动称为关键活动。(需要满足 ee [i]=el [i] )

!! 关键路径的长度是整个工程所需要的最短工期,要缩短整个工期,必须要加快关键活动的进度

 


二、求关键活动所需要的参量

 

⑴  事件的最早发生时间 ve[k] - 从前往后,前驱结点到当前结点所需时间,取最大值。

  ve[k]是指从始点开始到顶点vk的最大路径长度。这个长度决定了 所有从顶点vk发出的活动能够开工的最早时间。

  数据结构 —— 关键路径详解_第2张图片  

 

⑵ 事件的最迟发生时间 vl[k] - 从后往前,后继结点的最迟发生时间-边权值,取最小值。

 

  vl[k]是指在不推迟整个工期的前提下, 事件vk允许的最晚发生时间。

  数据结构 —— 关键路径详解_第3张图片  

 

⑶ 活动的最早开始时间 ee [i]

  若活动ai是由弧<vk vj> 表示,则活动 ai最早开始时间应等于事件vk的最早发生时间

       因此,有:e[i]=ve[k]

⑷ 活动的最晚开始时间 el [i]

  活动ai的 最晚开始时间是指,在不推迟整个工期的前提下, ai 必须开始的最晚时间。若ai由弧<vkvj>表示,则ai的最晚开始时间要保证事件 vj 的最迟发生时间不拖后。

      因此,有:el [i]=vl [j]- len<vkvj>

(5).最早开始时间:等于当前边起始结点的最早发生时间。

(6).最晚开始时间:等于当前边指向结点的最迟发生时间-当前边的权值。(时间最迟发生时间)

(7).最早完工时间:等于当前边指向结点的最早发生时间。 (活动最早开始时间)

(8).最晚完工时间:等于当前边指向结点的最迟发生时间。    (活动最晚开始时间)

 

示例:

  数据结构 —— 关键路径详解_第4张图片

数据结构 —— 关键路径详解_第5张图片

所以:

数据结构 —— 关键路径详解_第6张图片

你可能感兴趣的:(ACM,----,数据结构,ACM,----,知识点)