工程进度网络图
(2020.09.01)
属于工程管理范围, 有点像工程流图, 有一些计算上有点坑的地方, 总体来看还是比较简单的, 直接上定义和公式先 :
// 变量 ES - Early Start 最早开始时间 EF - Early Finish 最早完成时间 LS - Late Start 最晚开始时间 LF - Late Finish 最晚完成时间 TF - Total Float 总时差 [一项活动的 最早开始时间 和 最迟开始时间 不相同时, 它们之间的差值是该活动的总时差] FF - Free Float 自由时差 [在不影响紧后活动完成时间的条件下, 一项活动最大可被延迟的时间] // 计算对象 D = 工作量 或 活动时间 ES = Max{ 所有紧前活动EF } -- 最早开工时间是紧前任务的最晚完成时间 EF = ES + D LF = Min { 所有紧后活动LS } -- 最晚完成需要在所有紧后开始之前 LS = LF - D TF = LS - ES 或是 LF - EF FF = Min{ 所有紧后活动的ES } - EF -- 完工时间跟下个工作开始时间的差值, 可以摸鱼的时间 // 默认计算方法 三点估算法 : N = ( 最悲观 + 最乐观 + 4*最可能 ) / 6 -- 估计时间方法
计算对象并不一定是需要计算的, 比如 ES 可以是一个定义的时间点, 比如哪天开工是领导定的. 看公式如果都是通过计算得来的, 那么 ES 和 EF 就是一个死循环了, 很多时候都是给定一些条件的.
// 作图
PDM(Precedence Diagramming Method,前导图) 圈表示工作, 圈外表示工期 [比较直观的图]
ADM(Arrow Diagramming Method,箭线图法) 箭头表示 [比较蛋疼的图]
这些是简单的工期计算总图, 详细一些的计算图例可以做成格子装的, 在每个格子中计算出相关变量 :
可以简单说明一下, 每个工作都有预期的工期 D, 就是格子 中间上方 的数字, 其它变量如下图 :
可以通过实际变量填入和计算得来, 最后只需要套入计算就可以了, 只不过有那么几个坑 :
1. TF 的概念有点奇怪, TF 应该是最大可延期时间, 不能影响后项开发
2. FF 的概念有点奇怪, FF 的公式表明它是在最快结束这个工作后, 跟下一个工作的时间差(下一个工作的最早的开工时间点), 需要看下图 :
在这个图中, B 和 C 只需要合起来8天完工即可, 所以 B,C 的 TF 为 3-2 和 6-5.
而 B 的 FF = 5 - 5 , 而 C 的 FF = 10 - 9, 同样是可能划水的工作, 为什么会有这个差异呢?
我们看到 A,D 节点的 TF, FF 都是0, 因为他们是关键节点, 一定要按照工期来, 对比可以看到 TF 可以作为一个节点是否时间更严格的参考.
不过 FF 又是个什么意思? 因为 B,C 点的 FF 不同, 它们的差别在哪? 比如B在2号开工, 那么C就可以选择5号或6号开工, 可是如果B在3号开工, 那么C就只能选择6号开工了, 可以知道B是可以选择开工时间点的, 然而C只能在B选择2号开工后才能选择开工时间点, 从划水自由度来看, B点肯定高于C点......
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律