news 2026/8/25 3:53:46

Gantt 图和 PERT 图是软件工程中用于项目进度管理的两种重要图形化工具,各有侧重,适用于不同场景

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Gantt 图和 PERT 图是软件工程中用于项目进度管理的两种重要图形化工具,各有侧重,适用于不同场景

Gantt 图和 PERT 图是软件工程中用于项目进度管理的两种重要图形化工具,各有侧重,适用于不同场景。

Gantt 图(甘特图)是一种以时间为横轴、任务为纵轴的水平条形图。每个条形代表一个任务,其长度对应任务的持续时间,位置反映任务的开始与结束时间。通过颜色区分(如绿色表示已完成,灰色表示未完成),可直观展示各任务的进展情况以及任务之间的并行关系。例如,在图 5-12 中,任务 1 从 1 月持续到 6 月,任务 2 从 2 月到 10 月,任务 3 从 7 月到 11 月,可以看出任务 2 与任务 1 和任务 3 均存在重叠,并行执行。但 Gantt 图的主要局限在于无法明确表达任务之间的依赖关系(如任务 3 是否必须等待任务 1 完成才能开始),因此难以识别关键路径。

PERT 图(计划评审技术图)则是一种有向图,其中箭头表示任务(边上标注预计耗时),节点表示“事件”——即某个任务的完成或下一个任务的开始。每个事件有两个时间属性:最早时刻(该事件可发生的最早时间)和最迟时刻(该事件必须发生的时间,否则会影响总工期)。通过计算路径上所有任务的总耗时,可以找出项目的“关键路径”,即决定项目最短完成时间的最长路径。关键路径上的任何延迟都会直接导致整个项目延期。这使得 PERT 图在复杂项目中尤为重要,能够帮助管理者优化资源分配、识别重点监控任务。

相较而言,Gantt 图更注重可视化表达,适合向团队成员或非技术人员展示进度;而 PERT 图强调逻辑关系与时间分析,更适合项目经理进行工期预测与风险控制。

# 示例:简化版 Gantt 图任务表示(仅数据结构示意)tasks_gantt=[{"name":"任务1","start":1,"end":6,"status":"completed"},{"name":"任务2","start":2,"end":10,"status":"in_progress"},{"name":"任务3","start":7,"end":11,"status":"not_started"}]# 示例:简化版 PERT 路径计算(假设任务序列)defcalculate_pert_path(paths):returnmax(sum(times)fortimesinpaths)paths=[[3,4],# 任务A->任务B:共7个月[2,3,4],# 任务C->任务D->任务E:共9个月(关键路径)[5,3]# 任务F->任务G:共8个月]print("项目最短工期(关键路径):",calculate_pert_path(paths),"个月")

计算 PERT 图中每个事件的最早时刻和最迟时刻是识别关键路径、进行项目工期分析的核心步骤。具体分为两个阶段:前向遍历计算最早时刻后向遍历计算最迟时刻


1.最早时刻(Earliest Time, ET)

表示从项目开始到该事件可能发生的最早时间

  • 计算方式:从前向后(从起点到终点)逐个节点计算。
  • 公式:
    ET(j)=max⁡{ET(i)+tij} ET(j) = \max\{ET(i) + t_{ij}\}ET(j)=max{ET(i)+tij}
    即:事件 j 的最早时刻 = 所有指向 j 的任务中,“前驱事件最早时刻 + 对应任务耗时” 的最大值。
  • 起点设置:起始事件的 $ ET = 0 $

2.最迟时刻(Latest Time, LT)

表示该事件必须发生的时间,否则会影响整个项目的完成时间。

  • 计算方式:从后向前(从终点到起点)反向推导。
  • 公式:
    LT(i)=min⁡{LT(j)−tij} LT(i) = \min\{LT(j) - t_{ij}\}LT(i)=min{LT(j)tij}
    即:事件 i 的最迟时刻 = 所有由 i 发出的任务中,“后继事件最迟时刻 - 当前任务耗时”的最小值。
  • 终点设置:终点事件的 $ LT = ET $(即等于其最早时刻,保证项目按时完成)

3.示例说明

假设有以下任务关系:

任务前序事件后续事件耗时
A3
B4
C5
D2

构造 PERT 图节点为 ①→②→③→④,其中 ② 分支出 B 和 C,最终汇合于 ④。

步骤一:计算最早时刻(前向)
  • $ ET(①) = 0 $
  • $ ET(②) = ET(①) + 3 = 3 $
  • $ ET(③) = ET(②) + 4 = 7 $
  • $ ET(④) = \max(ET(②)+5, ET(③)+2) = \max(8, 9) = 9 $

→ 项目最早完成时间为9

步骤二:计算最迟时刻(后向)
  • $ LT(④) = ET(④) = 9 $
  • $ LT(③) = LT(④) - 2 = 7 $
  • $ LT(②) = \min(LT(③)-4, LT(④)-5) = \min(3, 4) = 3 $
  • $ LT(①) = LT(②) - 3 = 0 $
结果表:
事件最早时刻最迟时刻
00
33
77
99

→ 若某事件满足 $ ET = LT $,则它在关键路径上。本例中所有节点都相等 → 关键路径为 ①→②→③→④,总工期 9。

# Python 示例:简化版最早/最迟时刻计算(基于邻接表)fromcollectionsimportdefaultdictdefcompute_earliest_times(graph,start):et={start:0}visited=set()defdfs(u):ifuinvisited:returnvisited.add(u)forv,tingraph.get(u,[]):ifvnotinetoret[v]<et[u]+t:et[v]=et[u]+t dfs(v)dfs(start)returnetdefcompute_latest_times(graph_rev,et,end):lt={end:et[end]}queue=[end]whilequeue:u=queue.pop(0)forv,tingraph_rev.get(u,[]):ifvnotinltorlt[v]>lt[u]-t:lt[v]=lt[u]-tifvnotinqueue:queue.append(v)returnlt

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 15:46:56

YOLOv8+BiFPN 多尺度目标检测优化全流程指南

文章目录 【研发实战】YOLOv8+BiFPN双向特征金字塔:多尺度检测性能跃升全流程教程 引读:BiFPN为何是你的项目利器? 一、BiFPN核心原理:为什么它能提升多尺度检测? 二、环境准备:快速搭建YOLOv8+BiFPN开发环境 1. 基础依赖安装 三、模块植入:3步将BiFPN嵌入YOLOv8 步骤1:…

作者头像 李华
网站建设 2026/8/21 21:58:25

专业照明厂家的核心能力与行业价值解析

当下照明行业里&#xff0c;专业制造商起着极为关键的作用&#xff0c;它们给各类空间供应基础光环境&#xff0c;还靠着持续的技术创新以及严谨的工艺管控&#xff0c;促使整个产业朝着高效、健康、智能的方向迈进&#xff0c;专业照明产品和普通消费品不一样&#xff0c;它涉…

作者头像 李华
网站建设 2026/8/19 20:24:04

VoiceRun获得550万美元种子轮融资,助力企业语音智能体技术升级

语音AI初创公司VoiceRun日前宣布完成550万美元种子轮融资&#xff0c;该公司专注于帮助企业开发可控的语音智能体。此轮融资由Flybridge Capital Partners领投&#xff0c;RRE Ventures和Link Ventures跟投。VoiceRun表示&#xff0c;这笔资金将主要用于推动市场拓展&#xff0…

作者头像 李华
网站建设 2026/8/21 21:00:32

AI与Python双驱动计量经济学多源数据处理、机器学习预测及复杂因果识别全流程;涵盖数据爬取清洗、因果推断、机器学习、文本分析与可解释AI等

随着数字经济浪潮席卷全球&#xff0c;经济学与管理学的研究范式正面临一场深刻的“数据革命”。传统计量经济学模型虽在因果推断上根基扎实&#xff0c;但面对海量、高维、非结构化的文本、图像数据时&#xff0c;常显得力不从心&#xff1b;而以机器学习、深度学习为代表的前…

作者头像 李华
网站建设 2026/8/22 19:54:35

Sumsub 年度欺诈报告重磅发布!AI 智能体诈骗 2026 年或全面爆发

未来的验证系统不仅需要确认你是谁&#xff0c;还需要确认操作背后是真实用户还是AI智能体。 Sumsub最新发布的《2025-2026年身份欺诈报告》中表明&#xff1a;全球身份欺诈率整体看似趋于稳定&#xff0c;但高质量攻击在过去一年间激增了180%。 该报告分析了数百万次验证检查和…

作者头像 李华