AOE问题总结

这篇博客详细总结了AOE(Activity On Edge)问题,介绍了AOE网络的概念、关键路径的定义以及如何确定关键路径。通过计算事件的最早和最迟发生时间来找出关键活动,强调了在实际问题中理解事件依赖的重要性。博主提供了手动解题的思路,并建议在小型问题中使用穷举法,而在大型问题中考虑计算事件的最早和最晚发生时间。
摘要由CSDN通过智能技术生成

###AOE问题总结###
@(算法学习)

翻了一下笔记,发现对AOE问题当时的理解比现在的理解要深刻许多。看来许久不用,慢慢对概念的印象就会渐渐模糊。而对于那些精心思考过,有不同编码的信息,无论多久,想起来都非常形象深刻。所以,生活中还是需要刻意编码,编故事,联想,比喻,内化等。当知识真的为自己融会贯通时,就像问你求解一元二次方程,因式分解等问题时,那样不假思索,得心应手。你从不会怀疑自己不记得a,b,c这样的简单概念,因为它们早已深入骨子里了。

首先是AOE的概念:Activity On Edge.也就是说我们用边代表活动。顶点表示事件。边上的权值表示活动的持续时间。因此这样的有向图也被称作活动网

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZqnvRjCq-1571673660047)(https://img-blog.csdn.net/20161115151333153)]

一些简单的说明:

  • 源点,即起始点:没有入边。
  • 汇点,即终点:没有出边

两个性质,或者说原则:

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

这就是真实生活的一种映射。每一个事件的发生之前,需要很多很多准备活动,就是图中圆圈前面要进入的边。也即箭头指向的边。每一个边一定两头是事件,只要左边的事件发生,这个活动就可以发生了。

####关键路径####
AOE网中某些活动可以同时进行。那么完成工程就意味着完成所有的活动。考虑到并行性,从起点到终点的最大路径长度就是完成整个工程的时间。事件的发生用时不考虑,往往一瞬间就发生了,而活动持续时间需要计算。

  • 具有最大路径长度的路径称为关键路径。
  • 关键路径上的活动称为关键活动。

因此,关键路径的长度是整个工程所需要的最短工期。

此外,特别注意,关键路径并不一定只有一条,所以只改变一条,有时候不能改变全局,需要计算所有的关键路径才能进行完整的工程优化。

在算法设计中,需要用到四个量进行。如果手动解题,不必按照算法来,因为给定的有向图不可能非常复杂,否则用四个量进行计算计算量也非常大。我推荐用穷举搜索法。路径一般都不会太多。上面的图实际上就只有四条路径!穷举也就1分钟搞定的事情。
如果用计算机的算法解,将会非常复杂,下面将会说明。

四个参考量:

  • 事件的最早发生时间ve[k], v是vertex,表示顶点,e是early,表示早。ve[k]的计算从左往右按照箭头的指示进行。其中初态ve[1] = 0,即起点最早发生时间是0时刻。

这里写图片描述

既然是考察事件,那么,进入vk的所有活动 < v j , v k > <vj,vk> <vj,vk>都结束时,vk才可以发生。

递推公式是:
{ v e [ 1 ] = 0 v e [ k ] = m a x ( v e [ j ] + l e n < v j , v k > ) \begin{cases} ve[1] = 0\\ ve[k] = max(ve[j]+len<vj,vk>) \end{cases} { ve[1]=0ve[k]=max(ve[j]+

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值