[图] 关键路径 | 关键活动 | 小白都能看懂的情景

关键路径

情景

【情景】:你、张三、王五、李四下午约在【叫一只鸡】炸鸡店打牌,相约下午14点开始出发
【情况】是这样子的:
1. 【你】有摩托车,去车站需要15分钟,从车站到店里需要10分钟
2. 【张三】在乡下,来县城到车站需要30分钟
3. 【王五】步行,去店里需要10分钟
4. 【李四】骑单车,去店里需要15分钟
【约定】你们做了一个安排:【张三】上来后,【你】去接【张三】来店里

我们用【有向图】表示这次【活动】:
这里写图片描述

活动发起时间14:00

  张三到县城 你到车站等张三 张三、你到店里 王五到店里 李四到店里 开始打牌
ve最早发生时间 张三乘车到县城需要
30min
你去车站需要
15min
你在车站等到张三后,立刻去店里
从活动发起时间14:00需要
40min(30+10)
王五步行到店里需要
10min
李四骑单车去店里需要
15min
活动发起14:00到最早开始打牌需要
40min,即14:40
等人到齐,就张三最慢,所以等张三来了,其他人准时到,就可以开始
vl最迟发生时间 张三从家里去县城最迟的出发时间
30-30=0,即14:00
你最迟出发去车站的时间
30-15=15min,即14:15
张三和你最迟从车站过来的时间为
40-10=30min,即14:30
王五最晚出发的时间是
40-10=30min,即14:30
李四最晚出发时间是
40-15=25min,即14:25
从ve的分析,我们可以知道,打牌的最早时间是14:40
即40min

【补充】 vl表示,为了保证14:40能够开始打牌,各个人最迟的出发时间。求vl时,应该从右边往左边求
【关键活动】“张三到县城”,如果张三到县城的时间耽搁了,那开始打牌的时间就得推迟了
【关键路径】“张三到县城”->”你到车站等到张三”->”张三、你到达店里”->”开始打牌”

问题

用【有向网】表示一个【施工
流图】
1. 【弧上的权值】:表示完成该项目【子工程】所需时间
2. 整个工程【完成的时间】:从【有向图】的【源点】到【汇点】的最长路径

【问】 哪些子工程项是“关键工程”
【解释】 关键工程:这个工作如果推迟完成,它会导致整个工程完成推迟
【定性来谈】该弧上的权值增加,将使有向图上的【最长路径的长度】增加,这个【弧】称之为【关键活动】或【关键工程】

如何求关键活动

ve(j)

【含义】 事件(顶点)最早发生的时间
【解释】这个事件(这个工作,这个工程)最早什么时候能开始
【定性来谈】ve(j)=从源点到顶点j的最长路径长度

汇点(终点)的【最早发生时间】:即为整个工程能够【最早完成的时间】
【解释】中途不拖拉,一个工作完成,下一个工作立刻动手。整个工程保质保量的干下来(效率最高),最早能够完成的时间。我们记为plan_time,后面要用到

vl(k)

【含义】事件(顶点)的最迟发生时间vl(k)
【解释】上面谈到plan_time,与这个有关。假设,我们要在plan_time的时间内把整个工作做完,每个小工作最迟开始的时间称之为【最迟发生时间】。也就是说,【小工程】最迟什么时候开始,它不会影响总工程的按时的完成
【定性来谈】vl(k)=从顶点k到汇点(终点)的最短路径长度

算法

假设第i条弧为

ve(源点) = 0;
ve(k) = Max{ ve(j) + dut(<j,k>) }

vl(汇点) = ve(汇点)
vl(j) = Min{ vl(k)-dut(<j,k>) }

算法实现要点

显然,求ve的顺序应该是按【拓扑有序的次序】
   而,求vl的顺序应该是按【拓扑逆序】的次序
因为,拓扑逆序序列即为【拓扑有序序列的逆序列】
因此,应该在拓扑排序的过程中,另设一个“栈”记下拓扑有序序列

例子

这里写图片描述

    1 2 3 4 5 6 7 8 9
事件最早发生时间 ve 0 6 4 5 7 7 15 14 18
事件最迟发生时间 vl 0 6 6 8 7 10 16 14 18

【说明】vl为最迟发生时间,保证18天完成,每项工作最迟第几天开始。求得时要从后面往前求

    1-2 1-3 1-4 2-5 3-5 4-6 5-7 5-8 6-8 7-9 8-9
最早开始加工时间 ee 0 0 0 6 4 5 7 7 7 15 14
保证14天内完成
最迟开始加工时间
el 0 2 3 6 6 8 8 7 10 16 14

【说明】el这道工序最迟开始的时间

【关键活动】1->2、2->5、5->8、8->9
【说明】最早开始时间 与 最迟开始时间 相同的弧
【解释】活动不能够推迟的,两个时间相同

【关键路径】1->2->5->8->9
【解释】该路径就是图中的最长路径,如果最长路径上因为一些事情耽搁了,权重边长了,那么工期就会被延长

猜你喜欢

转载自blog.csdn.net/summer_dew/article/details/81607512