想象一下你要盖一座房子,有很多事情要做,比如打地基、砌墙、装窗户等等。这些事情有些可以同时进行,有些则必须一件事情做完才能开始下一件事情。AOE网就是用来表示这些事情以及它们之间关系的图。
- AOE网是一个带权值的有向图,这和需要拓扑排序的图是一样的,应该说是有向图无环。
- “有向” 指的是事情进行的顺序,比如必须先打地基才能砌墙,箭头表示方向。
- “带权值” 指的是每件事情所需要的时间或者成本,权值就写在箭头上。
- “图” 由顶点和边组成。在AOE网里:
- 顶点代表事件,比如“地基完成”、“墙砌好”等等。一个事件发生,意味着它之前的所有活动都完成了。
- 边代表活动,就是盖房子要做的事情,比如“打地基”、“砌墙”。边上的权值就是这个活动需要的时间。
例子:
假设盖房子只有三个活动:A(打地基,3天),B(砌墙,4天),C(装屋顶,2天)。必须先完成A才能开始B,完成B才能开始C。
这个AOE网就是:
起点 ⇒ (A, 3) ⇒ 中间事件 ⇒ (B, 4) ⇒ 中间事件 ⇒ (C, 2) ⇒ 终点
- AOE网中的活动: 你说的没错,AOE网中每条边代表一个活动,完成整个工程的确需要完成所有活动,而不是仅仅完成某一条路径上的活动。这些活动是完成工程的必要组成部分。 它们之间有依赖关系,有些活动必须在另一些活动完成后才能开始。 这就像盖房子,地基要先打好,才能往上盖墙,墙盖好了才能装窗户,这些活动都得做。
- 关键路径和木桶效应: 正因为所有活动都要做,所以才需要研究关键路径。关键路径是从工程起点到终点的最长路径,它的长度决定了完成整个工程的最短时间。 这就像你说的木桶效应,工程的完成时间是由耗时最长的活动序列(也就是关键路径)决定的。其他活动即使完成得再快,也不能缩短整个工程的完成时间。 关键路径上的活动是“最短板”,决定了整个工程的工期。
- AOV网和AOE网的区别: 为了避免混淆,我们再辨析一下 AOV 网(Activity On Vertex Network)和 AOE 网的区别:
- 为什么研究关键路径?
- 确定最短工期: 关键路径的长度就是完成工程的最短时间。