褪去一切繁华,虚无的外表,不知你还有多少真。
关键路径
有向图中,用顶点表示事件,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV(Activity On Vertex)网络;AOV网络可以反应任务完成的先后顺序(拓扑排序)。
在AOV网的边上加上权值表示完成该活动所需的时间,则称这样的AOV网为AOE(Activity On Edge)网,如图:
如何求AOE网中各事件(节点)和各活动(边)的最早开始时间和最迟开始时间以及工程的关键路径?
整个活动的完成时间是AOE图中从始点到终点的最长路径的长度,这条路径称为关键路径。关键路径上的活动称作关键活动。
注意:关键路径不一定只有一条。
1.最早发生时间:从前往后,前驱结点到当前结点所需时间,取最大值。 结束节点(10)的最早发生时间和最迟发生时间相同。
2.最迟发生时间:从后往前,后继结点的最迟发生时间-边权值,取最小值。
事件 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
最早发生时间 | 0 | 5 | 6 | 12 | 15 | 16 | 17 | 19 | 22 | 24 |
最晚发生时间 | 0 | 9 | 6 | 12 | 16 | 20 | 17 | 20 | 22 | 24 |
3.关键路径:最早发生时间和最迟发生时间相同的结点即为关键路径上的节点。
这样我们就可以找到关键路径上的结点,通过关键结点也就可以找到关键活动。但是要记住,关键路径不为一(重要的事情说两遍)
不难看出,关键路径上的结点为
4.最早开始时间:等于当前边起始结点的最早发生时间。(Max)
5.最晚开始时间:等于当前边指向结点的最迟发生时间-当前边的权值。
6.最早完工时间:等于当前边指向结点的最早发生时间。
7.最晚完工时间:等于当前边指向结点的最迟发生时间。
活动 | a1 | a2 | a3 | a4 | a5 | a6 | a7 | a8 | a9 | a10 | a11 | a12 | a13 | a14 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
最早开始 | 0 | 0 | 5 | 6 | 6 | 12 | 12 | 12 | 15 | 15 | 17 | 19 | 16 | 22 |
最晚开始 | 4 | 0 | 9 | 6 | 13 | 16 | 13 | 12 | 16 | 16 | 17 | 20 | 20 | 22 |
最早完工 | 5 | 6 | 12 | 12 | 15 | 16 | 15 | 17 | 17 | 19 | 22 | 22 | 24 | 24 |
最晚完工 | 9 | 6 | 12 | 12 | 16 | 20 | 16 | 17 | 17 | 20 | 22 | 22 | 24 | 24 |
还有一种找关键路径的方法,就是先找到关键活动,最早最晚开始时间相减为0的活动为关键活动。也就找到了关键事件。
代码
后续补上