任务描述
本关任务:AOE网的存储结构为邻接表,要求编写函数实现AOE网的关键路径算法。
相关知识
关键路径基本概念
用带权有向图描述工程的预计进度,以顶点表示事件,有向边表示活动,边上的权值表示完成活动所需的时间(比如天数),或者说活动持续时间。
例如,某施工项目主要由a1
到a11
共11个任务构成,各个任务的含义及其开始的先后次序表示如表所示:
代号 | 工序名称 | 工时(天数) | 先前工序 |
---|---|---|---|
a1 | 清理现场 | 6 | 无 |
a2 | 准备材料 | 4 | 无 |
a3 | 地面施工 | 5 | 无 |
a4 | 预制墙及房顶桁架 | 1 | a1 |
a5 | 混凝土地面保养 | 1 | a2 |
a6 | 立墙架 | 2 | a3 |
a7 | 装天花板 | 9 | a4,a5 |
a8 | 油漆 | 7 | a4,a5 |
a9 | 引道混凝土施工 | 4 | a6 |
a10 | 保养清理现场 | 2 | a7 |
a11 | 交工验收 | 11 | a8,a9 |
这些任务之间的先后次序用上表表示不直观,可以用图1表示出来。
用顶点表示事件,用有向边表示活动,有向边的权值表示活动所需要的时间,用这种方法构造的有向无环图叫作边表示活动的网(Activity On Edge Network),简称AOE网。
AOE网可以回答下列问题:
- 完成整个工程至少需要多少时间?
- 为缩短完成工程所需的时间, 应当加快哪些活动?
图中入度为0
的顶点v1
表示工程的开始事件(如开工仪式),称为源点;出度为0
的顶点v9