7.5.2关键路径

AOE-网(Activity On Edge)是一种用于工程计划的有向无环图,表示活动之间的依赖关系和持续时间。关键路径是网络中最长的路径,决定项目的最短完成时间。通过计算活动的最早开始时间e(i)和最迟开始时间l(i),可以找出关键活动,即时间余量为0的活动。寻找关键路径有助于识别影响工程进度的关键环节,以便优化这些活动以缩短工期。

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

  • AOV - 网
    顶点 表示 活动,activity on vertex
    表示 活动间的优先关系
    此类有向图叫作 AOV - 网

  • AOE - 网
    顶点 表示 事件,activity on edge
    表示 活动
    此类带权、有向的无环图(权表示活动的持续时间)。

  • AOE - 网 一般用来估算一个工程的完成时间

  • AOE -网 示例
    下图是一个有 11 项活动 的 AOE - 网。其中有 9 个事件 v1 , v2 , … , v9
    每个事件 表示 在它之前的活动已经完成,在它之后的活动可以开始
    如 v1 表示整个工程开始,
    v9 表示整个工程结束,
    v5 表示 a4 和 a5 已经完成,a7 和 a8 可以开始。
    与每个活动相联系的数 是 执行该活动所需的时间(弧的权值)。
    在这里插入图片描述

  • 源点汇点
    源点:由于整个工程只有一个 开始点 和 一个 完成点,故正常情况(无环)下,网中只有一个入度为 0 的点,此点为 源点;
    汇点:只有一个 出度 为 0 的点,此点叫作汇点。

  • AOE - 网 研究的主要问题
    1、 完成整个工程至少需要多少 时间
    2、哪些活动是影响 工程进度关键

  • 关键路径
    AOE - 网 中有些活动是可以并行进行,所以 完成工程的最短时间 是从开始点到完成点的最长的路径长度(指路径上个活动持续时间之和,不是弧的数目)。
    路径长度最长的路径 叫作 关键路径

  • 事件 vi最早发生时间
    假设开始点是 v1 ,从 v1 到 vi最长路径长度 叫作 事件 vi 的最早发生时间。

  • 活动 的 最早开始时间 e(i)
    某个 顶点 vi (表示某个事件)的 最早开始时间 决定了所有以 vi 为尾的弧 所表示的活动的最早开始时间 。此用 e(i) 来表示。

  • 活动的最迟开始时间 l(i)
    不推迟整个工程完成 的前提下,活动 ai 最迟必须开始进行的时间。

  • 活动的时间余量
    某个活动的 最迟开始时间 l(i)最早开始时间 e(i) 的差值。

  • 关键活动
    最早活动时间最迟活动时间 相同,即该活动的 时间余量 为 0 ,l(i) == e(i) 的活动。

  • 关键路径
    路径上的活动 都是 关键活动
    提前完成 非关键活动不能加快工程的进度。

  • 分析关键路径的目的 是辨别哪些是关键活动,以争取提高关键活动的工效,缩短整个工期。
    如下图中的网,从 v1 到 v9最长路径 是 ( v1 , v2 , v5 , v8 , v9 ),路径长度 是 18,即 v9 的最早发生时间是 18
    活动 a6 的最早开始时间是 5,最迟开始时间是 8,这表明 a6 推迟 3 天开始或者延迟3天完成,都不会影响整个工程的完成。
    在这里插入图片描述

如何寻找关键活动

  • 寻找 e(i) = l(i) 的活动,那么就要 AOE - 网中活动的 e(i) 和 l(i);
    首先求得事件的 最早发生时间 ve(i)最迟发生时间 vl(j)
    活动 ai 由弧 <j, k> 表示,其 持续时间 记为 dut( <j ,k> )
    则有如下关系:
    e( i ) = ve( j )
    l( i ) = vl( k ) - dut( <j, k> )
    求 ve( j ) 和 vl( j ) 分两步进行
    在这里插入图片描述
    上面两步递推公式的计算必须分别在 拓补有序逆拓补有序 的前提下进行。
    也就是说,ve( j-1 ) 必须在 vj所有前驱的最早发生时间 求得之后才能确定;
    vl( j-1 ) 则必须在 vj所有后继的最迟发生时间 求得之后才能确定

求关键路径的算法(文字描述)

  • 1、输入 e 条弧 <j, k>,建立 AOE - 网 存储结构。
  • 2、从源点 v0 出发,令 ve[0] = 0;
    拓补有序 求其余 各顶点的最早发生时间 ve[i](1 ~ n-1)
    如果 得到的拓补有序序列中顶点个数 小于 网中顶点数 v,则说明网中存在环,不能求关键路径,算法终止;否则执行步骤(3)。
  • 3、从汇点 vn 出发,令 vl[n-1] = ve[n-1],按逆拓补有序求其余各顶点的最迟发生时间 vl[i](2 ~ n-2)。
  • 4、根据各顶点的 ve 和 vl 值,求每条弧 s 的 最早开始时间 e(s)最迟开始时间 l(s)。若某条弧满足条件 e(s) = l(s) ,则为关键活动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值