图的应用:关键路径
思维导图:
关键路径的定义:
ps:
顶点表示事件,边表示活动,权值表示活动的开销
某一顶点出边表示的含义: 只有当这个事件(顶点)结束时,才能开始活动(出边)
以V1为例,只有当V1事件结束时,才能同时执行a1和a2俩个活动
某一顶点入边表示的含义: 只有当所有的活动(所有的入边)结束时才能开始事件
以V4为例,只有当a3和a5俩个活动结束后,才能开始V4事件
步骤:
事件最早发生时间:(权值最大、出边)
ps:
1、以V1为源点,V6为汇点
2、计算V1到V6的最早发生时间,就需要计算V1分别到达V3、V4、V5的最早发生事件,然后分别加上a6、a7、a8的权重然后取最大值。
3、以此类推,求V5的最早发生时间就需要求V2的最早发生时间;求V4的最早发生时间就需要求V2和V3的 最早发生时间然后取最大
4、而各个节点求最早发生时间的顺序是按照拓扑排序的顺序来求的。
事件最迟发生时间:(权值最小、入边)
ps:
求最早发生时间的逆序过程
1、以V1为源点,V6为汇点
2、计算V6到V1的最迟发生时间,就需要计算V3、V4、V5的最早发生事件,然后分别减去a6、a7、a8的权重然后取最小值。
3、以此类推,求V5的最迟发生时间就需要求V2的最迟发生时间;求V4的最迟发生时间就需要求V2和V3的 最迟发生时间然后取最小
4、而各个节点求最早发生时间的顺序是按照拓扑排序的顺序来求的。
活动ai的最早开始时间:
ps: 即该边(活动)弧尾对应事件的最早开始时间
以a8为例,a8的最早开始时间就是事件V5的最早开始时间,即e[8] = 6
活动ai的最迟开始时间:
ps: 即该边(活动)弧头对应事件 - ai的权值
以a7为例,a7的最迟开始时间就是V6的最早开始时间 - a7,即l[7] = 6
活动ai的差额:
d(i)为0即说明它为关键路径,所以这个有向图的关键路径为a2 -> a5 -> a7
要对整个工程进行优化,就需要对关键路径进行优化
例:
ps: 在强调一下
Ve(i): 事件的最早发生时间:从V1开始,拓扑排序,取最大
Vl(i): 事件的最迟发生时间:从V6开始,V4 = V6 - a7,取最小
e(i): 活动的最早发生时间:弧尾对应事件的最早开始时间
l(i): 活动的最迟发生时间:弧头对应事件最迟开始时间 - ai的权值,l(1) = V2 - a1 = 9
d(i): 活动的差额:活动的最迟发生时间 - 活动的最早发生时间