目录

AOE网的概念:

关键路径:(critical  path)

求关键路径和关键活动:

事件的最早开始时间(event early):

事件的最迟开始时间(event late):

活动的最早开始时间:

活动a最迟的开始事件

求关键活动:


可以用【有向无环图】描述工程预计进度

AOE网的概念:

活动:有向边表示

前驱活动:存在两条首尾相连的边,ai=<v,w>和aj=<w,z>,则称ai是aj的前驱活动

后继活动:存在两条首尾相连的边,ai=<v,w>和aj=<w,z>,则称aj是ai的后继活动

完成e所需要的时间:边e的权c(e):

开始事件:入度为0的顶点

结束事件:出度为0 的顶点

这样的有向图表示活动的网(acitivity on edge network),也叫AOE网

在AOE网中

○源点:入度为0的点,一般只有一个

汇点:出度为0的点,一般只有一个

下面只讨论单源点和单汇点的情况

关键路径:(critical  path)

在AOE网中,从源点到汇点的所有路径中具有最大路径长度的路径

     解释:完成整个工程的最短时间就是关键路径的长度(木桶效应)

关键活动(key activity): 关键路径上的活动

关键活动不存在富余时间

【数据结构和算法笔记】AOE网和关键路径_有向无环图

 在上图中有9个事件,11项活动,其中a表示源点,k表示汇点

求关键路径和关键活动:

【数据结构和算法笔记】AOE网和关键路径_数据结构_02

 只有当活动4 的所有前驱活动全部完成后事件w才可能发生且活动4才可以开始

当活动1,活动2,活动3,都完成时,事件w就发生了,活动4就可以开始了,所以事件w叫活动aj的触发事件

由此定义

事件的最早开始时间(event early):

假设事件x是源点,事件y是汇点,定义任一事件v的最早开始事件ee(v)等于x到v所有路径长度的最大值,即

  ee(v)=MAX  {c(p)}  ,c(p)表示路径长度

于是,完成整个工程所需的最少时间等于汇点y的最早开始时间ee(y)(关键路径的长度)

一个工程中,通常会存在某条路径耗时比其他路径久的多,所以耗时短的事件可以不必太早发生,也就是存在着缓冲时间(富余时间)。

由此定义

事件的最迟开始时间(event late):

v的最迟开始时间等于关键路径的长度-v到汇点y的最长路径之差

le(v)=ee(y)-MAX{c(p)}

【数据结构和算法笔记】AOE网和关键路径_关键路径_03

【数据结构和算法笔记】AOE网和关键路径_数据结构_04

 

 理解:

当v为汇点时,v的最迟开始时间就是v的最早开始时间(当结束事件v最早开始时,这个时间也是最迟开始)

当v不是汇点时,v的最迟开始时间要满足:v的最迟时间+v到汇点的最长路径不能超过v的最迟开始时间,否则会误期(留够后面活动所需的必要时间)

当v后接很多活动时,要留足后面所以的必要时间

活动的最早开始时间:

【数据结构和算法笔记】AOE网和关键路径_有向无环图_05

活动a的最早开始时间e(a)指活动起点x事件的最早开始事件

e(a)=ee(x)

活动a最迟的开始事件

l(a)指活动终点y事件的最迟开始时间与该活动所需时间之差

l(a)=le(y)-c

 

求关键活动:

对于关键活动来说,不存在富余时间,即对于活动a,如果l(a)-e(a)=0,则称a为关键活动

先进行拓扑排序,求按照拓扑序求出所有事件的最早开始时间,按照拓扑序的逆序求出所有时间的最迟开始时间,最后求每个活动的最早开始时间和最迟开始时间

【数据结构和算法笔记】AOE网和关键路径_数据结构_06

 

【数据结构和算法笔记】AOE网和关键路径_数据结构_07