关键路径计算、总时差、自由时差

本文介绍了项目管理中关键路径法的基本概念,包括关键路径、总时差与自由时差的区别及其计算方法,以及如何利用这些概念进行项目进度管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 关键路径


2. 总时差与自由时差的区别 
总时差是指在不延误项目完成日期或违反进度因素的前提下,某活动可以推迟的时间。 
总时差=LS-ES=LF-EF 

自由时差是指在不影响紧后活动最早开始的情况下,当前活动可以推迟的时间。 
自由时差=(后一活动)ES-(需计算活动的)EF 

所以总时差影响总工期,自由时差影响紧后活动。 

    (1)总时差(TF):当一项活动的最早开始时间和最迟开始时间不相同时,它们之间的差值是该工作的总时差。计算公式是:TF=LS-ES。

    (2)自由时差(FF):在不影响紧后活动完成时间的条件下,一项活动可能被延迟的时间是该项活动的自由时差,它由该项活动的最早完成时间EF和它的紧后活动的最早开始时间决定的。计算公式是:FF=min{后一活动ES}-EF。

    (3)关键路径。项目的关键路径是指能够决定项目最早完成时间的一系列活动。它是网络图中的最长路径,具有最少的时差。在实际求关键路径时,一般的方法是看哪些活动的总时差为0,总时差为0的活动称为关键活动,关键活动组成的路径称为关键路径。

    尽管关键路径是最长的路径,但它代表了完成项目所需的最短时间。因此,关键路径上各活动持续时间(历时)的和就是项目的计算工期。


3. 如何计算ES,EF,LS,LF 

    (1)最早开始时间(ES):一项活动的最早开始时间取决于它的所有紧前活动的完成时间。通过计算到该活动路径上所有活动的完成时间的和,可得到指定活动的ES。如果有多条路径指向此活动,则计算需要时间最长的那条路径,即ES=max{紧前活动的EF}。

    (2)最早结束时间(EF):一项活动的最早完成时间取决于该工作的最早开始时间和它的持续时间(D),即EF=ES+D。

    (3)最晚结束时间(LF):在不影响项目完成时间的条件下,一项活动可能完成的最迟时间。计算公式是:LF=min{紧后活动的LS}。

    (4)最晚开始时间(LS):在不影响项目完成时间的条件下,一项活动可能开始的最晚时间。计算公式是:LS=LF-D。

   备注:最后活动的最晚结束时间=关键路径总和

 


前推法来计算最早时间 
某一活动的最早开始时间(ES)=max{紧前活动的EF},指向它的所有紧前活动的最早结束时间的最大值
某一活动的最早结束时间(EF)=ES+T(作业时间) 
逆推法来计算最迟时间 
某一活动的最迟结束时间(LF)=min{紧后活动的LS} ,指向它的所有紧后活动的最迟开始时间的最小值
某一活动的最迟开始时间(LS)=LF-T(作业时间) 

4.计算关键路径的步骤 
1. 用有方向的线段标出各结点的紧前活动和紧后活动的关系,使之成为一个有方向的网络图(PDM) 
2. 用正推和逆推法计算出各个活动的ES,LS, EF, LF,并计算出各个活动的自由时差。找出所有总时差为零或为负的活动,就是关键活动 
3. 关键路径上的活动持续时间决定了项目的工期,总和就是项目工期。


原文地址:https://www.cnblogs.com/zany-hui/articles/4067726.html


### 关键路径法中的自由时差概念 在网络图中,自由时差是指一项活动可以在不影响后续活动最早开始时间的前提下所拥有的最大延误时间。这意味着如果某项活动的自由时差大于零,则该活动可以被推迟而不会影响紧随其后的任何其他活动按时启动。 对于关键路径上的活动而言,由于这些活动之间紧密相连且无多余缓冲时间,因此关键路径上所有工作的时差自由时差都等于0[^4]。这是因为任何一个关键路径上的任务延迟都会直接导致整个项目的延期。 ### 自由时差的应用于进度管理 在实际项目规划过程中,计算并分析各个任务间的自由时差有助于识别哪些非关键路径的任务具有一定的灵活性,从而允许项目经理合理安排资源分配以及应对潜在的风险因素。例如: - 当某些非关键路径的工作拥有较大的正向自由时差时,意味着这部分工作即使有所延后也不会对整体工程造成负面影响; - 可以为那些具备较高风险或不确定性较高的任务预留额外的时间余量; - 利用非关键路径上的可用自由时差来优化资源配置,提高效率的同时降低成本。 ```python def calculate_free_float(activity, successor_earliest_start_times): """ 计算单个活动的自由时差 参数: activity (dict): 单个活动的信息字典,包含'early_finish'(EF) 和 'late_finish'(LF) successor_earliest_start_times (list of float/int): 后续活动最早的开始时间列表 返回: free_float (float/int): 活动的自由时差 """ earliest_successor_start = min(successor_earliest_start_times) free_float = earliest_successor_start - activity['early_finish'] return max(free_float, 0) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值