引言
单代号网络图(Activity-on-Node,AON)是项目管理中常用的一种工具,用于表示项目活动及其相互关系。在项目管理考试或实际工作中,正确理解和运用单代号网络图进行计算是至关重要的。本文将详细介绍单代号网络图的计算技巧,帮助读者轻松掌握项目管理核心。
单代号网络图的基本概念
1. 活动和节点
在单代号网络图中,每个活动用一个节点表示,节点之间的箭头表示活动之间的逻辑关系。
2. 关键路径法(Critical Path Method,CPM)
关键路径法是一种用于确定项目最短完成时间的方法。在单代号网络图中,关键路径上的活动被称为关键活动。
3. 工期和时差
工期是指完成活动所需的时间。时差是指在不影响项目总工期的情况下,活动可以推迟或提前的时间。
单代号网络图的计算技巧
1. 计算最早开始时间(Earliest Start Time,EST)
最早开始时间是指从项目开始到某个活动开始所能用的时间。
计算方法:
- 对于起始节点,EST = 0。
- 对于其他节点,EST = 前一个节点的EST + 该节点到当前节点的箭头表示的持续时间。
def calculate_est(network):
est = {node: 0 for node in network['start_nodes']}
for node in network['nodes']:
for successor in network['successors'][node]:
est[successor] = max(est[successor], est[node] + network['durations'][node])
return est
2. 计算最迟开始时间(Latest Start Time,LST)
最迟开始时间是指在不影响项目总工期的情况下,某个活动可以开始的最晚时间。
计算方法:
- 对于终止节点,LST = 总工期 - 该节点到终止节点的箭头表示的持续时间。
- 对于其他节点,LST = 后一个节点的LST - 该节点到后一个节点的箭头表示的持续时间。
def calculate_lst(network, est, total_duration):
lst = {node: total_duration - network['durations'][node] for node in network['end_nodes']}
for node in reversed(network['nodes']):
for predecessor in network['predecessors'][node]:
lst[node] = min(lst[node], lst[predecessor] - network['durations'][node])
return lst
3. 计算总时差(Total Float,TF)
总时差是指在不影响项目总工期的情况下,某个活动可以推迟的时间。
计算方法:
TF = LST - EST
def calculate_tf(network, est, lst):
tf = {node: lst[node] - est[node] for node in network['nodes']}
return tf
4. 计算自由时差(Free Float,FF)
自由时差是指在不影响后续活动开始时间的情况下,某个活动可以推迟的时间。
计算方法:
FF = 后一个节点的EST - 当前节点的EST - 当前节点到后一个节点的箭头表示的持续时间
def calculate_ff(network, est):
ff = {node: 0 for node in network['nodes']}
for node in network['nodes']:
for successor in network['successors'][node]:
ff[node] = max(ff[node], est[successor] - est[node] - network['durations'][node])
return ff
总结
通过以上计算技巧,我们可以轻松掌握单代号网络图的核心计算方法。在实际应用中,熟练运用这些技巧可以帮助我们更好地进行项目管理,确保项目按时、按质完成。
