下面,我们通过一道例题来详细解析网络图计算的方法和步骤。
**例题:**一个项目包含以下六个活动,每个活动的时间估计如下:
* A活动:3天
* B活动:4天
* C活动:5天
* D活动:2天
* E活动:3天
* F活动:4天
活动的先后顺序如下:A是B和C的前置任务,B和C完成后才能开始D,E是F的前置任务,最后D和F完成后项目结束。请绘制网络图,并计算项目的关键路径和总工期。
**解析:**
首先,我们根据活动的先后顺序绘制网络图。在网络图中,我们使用节点表示活动的开始和结束,使用箭头线表示活动本身,箭头的方向表示活动的进行方向。
绘制完成后,我们得到如下的网络图:
* 开始节点 → A → B → D
* ↓
* C
* ↑
* E → F → 结束节点
接下来,我们计算每个活动的最早开始时间(ES)和最晚开始时间(LS),以及每个活动的总浮动时间(TF)。
1. **最早开始时间(ES)和最晚开始时间(LS)的计算:**
* ES(A) = 0(项目开始时间)
* ES(B) = ES(A) + 工期(A) = 0 + 3 = 3
* ES(C) = ES(A) + 工期(A) = 0 + 3 = 3
* 由于B和C完成后才能开始D,所以ES(D) = max(ES(B) + 工期(B), ES(C) + 工期(C)) = max(3 + 4, 3 + 5) = max(7, 8) = 8
* ES(E) = 0(因为E活动没有前置任务)
* ES(F) = ES(E) + 工期(E) = 0 + 3 = 3
* 由于D和F完成后项目结束,所以项目的总工期 = max(ES(D) + 工期(D), ES(F) + 工期(F)) = max(8 + 2, 3 + 4) = max(10, 7) = 10
* LS(D)和LS(F)都等于项目的总工期减去它们各自的工期,即LS(D) = LS(F) = 10 - 2 = 8
* LS(B)和LS(C)分别等于LS(D)减去它们各自的工期,即LS(B) = 8 - 4 = 4,LS(C) = 8 - 5 = 3
* LS(A)等于min(LS(B) - 工期(A), LS(C) - 工期(A)) = min(4 - 3, 3 - 3) = min(1, 0) = 0(这里有一个问题,因为A活动不能晚于项目开始时间开始,所以LS(A)应该等于ES(A),即0)
2. **总浮动时间(TF)的计算:**
* TF(A) = LS(A) - ES(A) = 0 - 0 = 0
* TF(B) = LS(B) - ES(B) = 4 - 3 = 1
* TF(C) = LS(C) - ES(C) = 3 - 3 = 0
* TF(D) = LS(D) - ES(D) = 8 - 8 = 0
* TF(E) = LS(E) - ES(E) = 由于E没有后续任务,所以其浮动时间为项目的总工期减去E的工期,即10 - 3 = 7
* TF(F) = LS(F) - ES(F) = 8 - 3 = 5
最后,我们确定项目的**关键路径**。关键路径是从开始到结束没有浮动时间的路径,即所有活动的TF都为0的路径。在本例中,关键路径是A→C→D,总工期为10天。