数据结构–关键路径

AOE⽹

带权有向图\color{red}带权有向图带权有向图中,以顶点表示事件\color{red}顶点表示事件顶点表示事件,以有向边表示活动\color{red}有向边表示活动有向边表示活动,以边上的权值表示完成该活动的开销\color{red}边上的权值表示完成该活动的开销边上的权值表示完成该活动的开销(如完成活动所需的时间),称之为⽤边表示活动的⽹络,简称AOE⽹\color{red}AOE⽹AOE (Activity On Edge NetWork)

AOE⽹具有以下两个性质:
① 只有在某顶点所代表的事件发⽣后,从该顶点出发的各有向边所代表的活动才能开始;
② 只有在进⼊某顶点的各有向边所代表的活动都已结束时,该顶点所代表的事件才能发⽣。

另外,有些活动是可以并⾏进⾏的\color{green}另外,有些活动是可以并⾏进⾏的另外,有些活动是可以并

在AOE⽹中仅有⼀个\color{red}仅有⼀个仅有⼊度为0的顶点,称为开始顶点(源点)\color{red}开始顶点(源点)开始顶点(源点),它表示整个⼯程的开始;
仅有⼀个\color{red}仅有⼀个仅有出度为0的顶点,称为结束顶点(汇点)\color{red}结束顶点(汇点)结束顶点(汇点),它表示整个⼯程的结束。

从源点到汇点的有向路径可能有多条,所有路径中,具有最⼤路径⻓度的路径称为关键路径\color{red}关键路径关键路径,⽽把关键路径上的活动称为关键活动\color{red}关键活动关键活动

完成整个⼯程的最短时间就是关键路径的⻓度\color{purple}完成整个⼯程的最短时间就是关键路径的⻓度完成整个程的最短时间就是关键路径的,若关键活动不能按时完成,则整个⼯程的完成时间就会延⻓

有关的信息变量

事件vkv_kvk的最早发⽣时间ve(k)——决定了所有从vkv_kvk开始的活动能够开⼯的最早时间

活动aia_iai的最早开始时间e(i)——指该活动弧的起点所表⽰的事件的最早发⽣时间

事件vkv_kvk的最迟发⽣时间vl(k)——它是指在不推迟整个⼯程完成的前提下,该事件最迟必须发⽣的时间。

活动aia_iai的最迟开始时间l(i)——它是指该活动弧的终点所表示事件的最迟发⽣时间与该活动所需时间之差。

活动aia_iai的最早开始时间e(i)——指该活动弧的起点所表⽰的事件的最早发⽣时间

活动aia_iai的最迟开始时间l(i)——它是指该活动弧的终点所表示事件的最迟发⽣时间与该活动所需时间之差。

活动aia_iai的时间余量d(i)=l(i)-e(i),表⽰在不增加完成整个⼯程所需总时间的情况下,活动ai可以拖延的时间
若⼀个活动的时间余量为零,则说明该活动必须要如期完成,d(i)=0即l(i) = e(i)的活动aia_iai是关键活动
由关键活动组成的路径就是关键路径

求所有事件的最早发⽣时间

① 求所有事件的最早发⽣时间 ve( )
按拓扑排序序列,依次求各个顶点的 ve(k):
ve(源点) = 0
ve(k)=Max{ve(j)+Weight(vj,vk)},vj为vkve(k) = Max\{ve(j) + Weight(v_j, v_k)\}, v_j为v_kve(k)=Max{ve(j)+Weight(vj,vk)},vjvk 的任意前驱

求所有事件的最迟发⽣时间

② 求所有事件的最迟发⽣时间 vl( )
按逆拓扑排序序列,依次求各个顶点的 vl(k):
vl(汇点) = ve(汇点)
vl(k)=Min{vl(j)−Weight(vk,vj)},vj为vkvl(k) = Min\{vl(j) - Weight(vk, vj)\} , v_j为v_kvl(k)=Min{vl(j)Weight(vk,vj)},vjvk的任意后继

求所有活动的最早发⽣时间

③ 求所有活动的最早发⽣时间 e( )
若边<vk,vj>表⽰活动ai,则有e(i)=ve(k)<vk, vj>表⽰活动a_i,则有e(i) = ve(k)<vk,vj>活动ai,则有e(i)=ve(k)

求所有活动的最迟发⽣时间

④ 求所有活动的最迟发⽣时间 l( )
若边<vk, vj>表⽰活动ai,则有l(i) = vl(j) - Weight(vk, vj)

求所有活动的时间余量

⑤ 求所有活动的时间余量 d( )
d(i)=l(i)−e(i)d(i) = l(i) - e(i)d(i)=l(i)e(i)

关键活动、关键路径的特性

若关键活动耗时增加,则整个⼯程的⼯期将增⻓
缩短关键活动的时间,可以缩短整个⼯程的⼯期
当缩短到⼀定程度时,关键活动可能会变成⾮关键活动

注意:可能有多条关键路径,只提⾼⼀条关键路径上的关键活动速度并不能缩短整个⼯程的⼯期,只有加快那些包括在所有关键路径上的关键活动才能达到缩短⼯期的⽬的。\color{purple}注意:可能有多条关键路径,只提⾼⼀条关键路径上的关键活动速度并不能缩短整个⼯程的⼯期,只有加快那些包括在所有关键路径上的关键活动才能达到缩短⼯期的⽬的。注意:可能有多条关键路径,只提⾼⼀条关键路径上的关键活动速度并不能缩短整个程的期,只有加快那些包括在所有关键路径上的关键活动才能达到缩短期的的。

知识点回顾与重要考点

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐