Skip to content

泉州一中信息学Blog

信息学奥赛技术分享博客

  • 登录
  • 小学oj
  • 中学oj
  • 测试页面1
  • Toggle search form

Winter Vacation Training Day 4 (01.30)

Posted on 2024年1月30日2024年1月30日 By c2022zyh Winter Vacation Training Day 4 (01.30)有1条评论

Area 4.1 : Critical Path Algorithm

Example :

Figure 10.1 : Critical Path Algorithm

Figure 10.1 : Critical Path Algorithm

Critical Path Algorithm is an algorithm solving Critical Path based on Topological Sort.

The Topological Sequence T (here is [A, B, C, D, E, F, G, H, I]) is the core of the algorithm.

To solve the problem, we need solve etv(Earliest Time of Vertex), ltv(Latest ~).

Step 1, find the first node in T(here is A), etv[A]=0

etv[]

0 U U U U U U U U

ltv[]

U U U U U U U U U

(U : value unknown.)

Table 10.1-a : Critical Path Algorithm(a)

Next, find after nodes (here is B and C). etv[B]=etv[A]+(A, B), etv[C]=etv[A]+(A, C).

etv[]

0 2.94 3.41 U U U U U U

Table 10.1-b : Critical Path Algorithm(b)

Do as that again.

etv[]

0 2.94 3.41 5.71 5.54 5.95 U U U

Table 10.1-c : Critical Path Algorithm(c)

Next one is G. But there are 2 edges : (D, G) and (E, G). Which one is answer?

In fact, for a node v and edges (U, v), etv[v]=max({etv[U]+(U, v)} (I)

Proof of statement I

If we use the smaller time, it will be irregular.
For example, there are A, B, C and edges (A, C)=1, (B, C)=2, etv[A]=etv[B]=0
The etv of a node is the earliest time of the node.
If etv[A]=0, because (A, C)=1, it means that C should begin after time 1.
As above, etv[B]=0, because (B, C)=2, it means that C should begin after time 2.
So, C should begin after time max(1,2)=2.

So, etv[G]=max(5.71+2.94, 5.54+2.75)=8.65

Solving etv[H] is easier. etv[H]=8.33.

etv[]

0 2.94 3.41 5.71 5.54 5.95 8.65 8.33 U

Table 10.1-d : Critical Path Algorithm(d)

The last one is I. There are also 2 edges (G, I), (H, I). So etv[I]=max(8.65+2.87, 8.33+3.35)=11.68

etv[]

0 2.94 3.41 5.71 5.54 5.95 8.65 8.33 11.68

Table 10.1-e : Critical Path Algorithm(e)

But, what about ltv?

We need another sequence T’, inverse topological sequence. Solving it is also easy, doing a topological sort from I in the inverse graph is OK.

The sequence T’ (here is [I, H, G, F, E, D, C, B, A]) is also very important.

Step 1, let ltv[I]=etv[I]=11.68

ltv[]

U U U U U U U U 11.68

Table 10.1-f : Critical Path Algorithm(f)

Then, find after nodes (here is G, H). ltv[G]=ltv[I]-(G, I), ltv[H]=ltv[I]-(H, I) :

ltv[]

U U U U U U 8.81 8.33 11.68

Table 10.1-g : Critical Path Algorithm(g)

Do as that again :

ltv[]

U U U 5.87 6.06 5.95 8.81 8.33 11.68

Table 10.1-h : Critical Path Algorithm(h)

Next one is B. Again, there are two edges (B, D), (B, E). Which one is the answer now.

In fact, for a node u and edges (u, V), ltv[u]=min({ltv[V]-(u, V)}). (II)

Proof of statement II

It is the inverse of statement I.
If we use the bigger time, it will delay the period of the work.
For example, there are A,B,C and edges (A, B)=3, (A, C)=2, ltv[B]=ltv[C]=5.
As above, the ltv of a node is the latest time of a node.
If ltv[B]=5, because (A, B)=3, so A should begin before time 2.
As above, ltv[C]=5, because (A, C)=2, so A should begin before time 3.
So, A should begin before time 2.

So, ltv[B]=min(5.87-2.77, 6.06-2.6)=3.1.

Solving ltv[C] is also easier. ltv[C]=3.41.

ltv[]

U 3.1 3.41 5.87 6.06 5.95 8.81 8.33 11.68

Table 10.1-i : Critical Path Algorithm(i)

The last one is A. We know, ltv[A]=min(ltv[B]-(A,B), ltv[C]-(A,C))=0.

etv[]

0 2.94 3.41 5.71 5.54 5.95 8.65 8.33 11.68

ltv[]

0 3.1 3.41 5.87 6.06 5.95 8.81 8.33 11.68

Table 10.1-j : Critical Path Algorithm(j)

Now, we get all etv and ltv. We can comput ete(Earliest Time of Edge) and lte(Latest ~).

Here, ete[(u, v)]=etv[u], lte[(u, v)]=ltv[v]-(u, v).

edge ete[] lte[]
(A, B) 0 0.16
(B, D) 2.94 3.1
(D, G) 5.71 5.87
(G, I) 8.65 8.81
(B, E) 2.94 3.46
(E, G) 5.54 6.06
(A, C) 0 0
(C, F) 3.41 3.41
(F, H) 5.95 5.95
(H, I) 8.33 8.33

Table 10.1-k : Critical Path Algorithm(k)

Now, we comput lte-ete for each edge :

edge delta
(A, B) 0.16
(B, D) 0.16
(D, G) 0.16
(G, I) 0.16
(B, E) 0.52
(E, G) 0.52
(A, C) 0
(C, F) 0
(F, H) 0
(H, I) 0

Table 10.1-l : Critical Path Algorithm(l)

We notice that the value delta of some edges are 0.

Now we label them in the graph.

Figure 10.2 : Critical Path

Figure 10.2 : Critical Path

These edges build a path. This is the Critical Path.

And, this is all of Cirtical Path Algorithm.

Given Score :
    Difficulty : 2
x   Basic Score : 196
Score : 1291

Pages: 1 2 3 4 5 6
训练日志

文章导航

Previous Post: 拓扑排序和关键路径
Next Post: 寒假集训Day4 ———第一阶段

Comment (1) on “Winter Vacation Training Day 4 (01.30)”

  1. c2022zyh说道:
    2024年1月30日 下午9:21

    All Figures in the passage :
    http://59.60.22.18:2500/wordpress/wp-content/uploads/2024/01/C04_Figures.zip

    登录以回复

发表回复 取消回复

要发表评论,您必须先登录。

2025年 6月
一 二 三 四 五 六 日
 1
2345678
9101112131415
16171819202122
23242526272829
30  
« 2月    

2024常州 Class Classic OI Problems Contest cqr的长乐集训2023 CZYZ LOC New Game NOI NOIP Password Protected PM_PK Preview Problems Retrospect Selfmade Qusetion STL The end Training Uneasy Problem 蒟蒻 通报

  • 训练日志
  • 链表
  • 入门
  • 模拟
  • dfs序
  • 并查集
  • spfa
  • 最小割
  • 矩阵树定理
  • 仙人掌
  • BSGS
  • 凸包
  • 回文自动机
  • 递推与动归
  • 堆
  • 莫队算法
  • ST表
  • Treap
  • 树套树
  • 可持久化线段树
  • 初赛
  • 搜索
  • 贪心
  • 深度优先搜索
  • 欧拉图
  • dijkstra
  • 费用流
  • 哈夫曼树
  • kruskual
  • 置换
  • 旋转卡壳
  • KMP
  • 区间动归
  • STL
  • 链表
  • 可并堆
  • sply
  • 主席树
  • 可持久化字典树
  • 算法
  • 动态规划
  • 构造
  • 广度优先搜索
  • 最短路
  • floyd
  • 最大流
  • 虚树
  • prim
  • 筛法
  • 半平面交
  • 字典树
  • 背包动归
  • 基础数据结构
  • 分块
  • 线段树
  • 替罪羊树
  • K-DTree
  • 图论
  • 二分法
  • 迭代搜索
  • 拓扑排序
  • 有上下界网络流
  • 生成树
  • 快速幂
  • 后缀数组
  • 树形动归
  • 哈希表
  • 中级数据结构
  • 平衡树
  • 可持久化数据结构
  • 数据结构
  • 三分法
  • 启发式搜索
  • 图的连通
  • 点分治
  • 博弈论
  • AC自动机
  • 状压动归
  • 单调栈
  • 树状数组
  • 高级数据结构
  • OI资料
  • 数学
  • 高精度
  • 差分约束
  • 树上倍增
  • 素数测试
  • 后缀自动机
  • 数位动归
  • 单调队列
  • 新闻
  • 几何
  • 随机化
  • 二分图染色
  • 树链剖分
  • 欧拉函数
  • manacher
  • 斜率优化
  • 离线处理
  • 信息学奥赛学长风采
  • 字符串
  • 二分图匹配
  • prufer编码
  • 卡特兰数
  • 密码学
  • 决策单调
  • 赛后总结
  • 其他
  • 2-SAT
  • 最近公共祖先
  • 矩阵乘法
  • 记忆化搜索
  • 网络流
  • Link cut tree
  • 排列组合
  • 树
  • 高斯消元
  • 乘法逆元
  • 容斥原理
  • 调和级数
  • 概率与期望
  • 模线性方程组
  • 莫比乌斯反演
  • 快速傅里叶变换
  • 扩展欧几里德
  • 最大公约数与最小公倍数

近期文章

  • DP杂题
  • 2025年2月13日模拟赛
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 3
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 2
  • HLOJ-TEST ROUND 4-T1/T2(构造)- 1

近期评论

归档

  • 2025年2月
  • 2025年1月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年3月
  • 2024年2月
  • 2024年1月
  • 2023年12月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月

Copyright © 2025 泉州一中信息学Blog.

Powered by PressBook WordPress theme