数据结构 - 关键路径

目录

    • 一、AOV网介绍
    • 二、关键路径
        • 事件(点)的最早开始时间
        • 事件(点)的最迟开始时间
        • 活动(边)的最早开始时间
        • 活动(边)的最迟开始时间
        • 关键路径
    • 三、计算关键路径的例子

一、AOV网介绍

在带权有向图中,以顶点表示事件,以有向边表示活动,以边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为用边表示活动的网络,简称AOE网。

AOE网具有两个性质:

  1. 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始。
  2. 只有在进入某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发生。

在AOE网中仅有一个入度为0的顶点,称为开始顶点(源点),它表示整个工程的开始。
AOE网中也仅存在一个出度为0的顶点,称为结束顶点(汇点), 它表示整个工程的结束。


二、关键路径

如图:

  • 边表示活动,点表示事件,边上的权重表示开销
  • V2的出边表示:V2事件结束后,a3 a4两个活动同时开始
  • V4的入边表示:a3 a5两个活动结束后才能开始事件4
    数据结构 - 关键路径_第1张图片

事件(点)的最早开始时间

事件的最早开始时间:事件最早什么时候可以开始,利用入边从源点向汇点开始递推,该顶点入边上的所有活动都结束时才能开始(取最大值
各顶点的最早开始时间如下表:

V1 V2 V3 V4 V5 V6
0 3 2 6 6 8

事件(点)的最迟开始时间

事件的最迟开始时间:利用出边从汇点向原点递推,取最小值
V6的最迟开始时间就是最早开始时间8,对于V5,只有一条出边,8-1 = 7 是V5的最迟开始时间
各顶点的最迟开始时间如下表:

V1 V2 V3 V4 V5 V6
0 4 2 6 7 8

活动(边)的最早开始时间

  • 活动的最早开始时间:弧尾(不带箭头的那边)端点的最早开始时间
a1 a2 a3 a4 a5 a6 a7 a8
0 0 3 3 2 2 6 6

活动(边)的最迟开始时间

  • 活动的最迟开始时间:弧头(带箭头的那边)端点的最迟开始时间减这个活动的开销
a1 a2 a3 a4 a5 a6 a7 a8
1 0 4 4 2 5 6 7

关键路径

活动的差额:活动的最迟开始时间减活动的最早开始时间
活动的差额 = 弧头端点的最迟开始时间 - 这个活动的开销 - 弧尾端点的最早开始时间
活动的差额为0表示最迟开始时间等于最早开始时间,差额为0的活动组成关键路径

a1 a2 a3 a4 a5 a6 a7 a8
活动最早开始时间 0 0 3 3 2 2 6 6
活动最迟开始时间 1 0 4 4 2 5 6 7
活动差额 1 0 1 1 0 3 0 1

如图:红线标注的{a2,a5,a7}为关键路径
数据结构 - 关键路径_第2张图片

  • 关键路径上的活动为关键活动,缩短关键活动的时间可以加快整个工程,但缩短到一定大小时关键路径会发生改变
  • 当网中关键路径不唯一时,只有加快的关键活动或关键活动组合包括在所有的关键路径上才能缩短工期。

三、计算关键路径的例子

数据结构 - 关键路径_第3张图片

数据结构 - 关键路径_第4张图片

你可能感兴趣的:(数据结构,数据结构)