关键词:(是总结,后面一一介绍)
无圈图:有向图中没有回路的图形;
slack time=last completion time - earliset completion time;
关键活动(critical activity):the activity that have zero slack time
关键路径(critical path):从开始节点到结束节点的全部由关键节点组成的节点路线
活动图:
下图就是典型的无圈图,下图的形式称为活动图,我们把每个节点称为一个状态(如A),有向边表示为从一个状态通往另一个状态,每个节点的数字称为权重(即每个状态需要消耗的时间)
![](https://img-blog.csdnimg.cn/img_convert/5c33e364e977a27f0cd3e6e5a89d925b.png)
事件图:
把活动图改一下,就成了事件图:边有两个信息,如 A/3 表示A活动需要消耗3个时间,同时从1状态到2状态;
![](https://img-blog.csdnimg.cn/img_convert/3f8c34fdc90bee746dd338b48ea275c2.png)
earliest/latest completion time
earliest completion time:最早完成时间(求从开始到结束的最长路径,可以通过修改Dijkstra 算法求得);这个我刚开始有点难以理解,后来就想明白了,因为从开始到结束的所有节点都要完成,那么在没有任何延时的情况下,最早的完成使时间肯定是等于耗时最久的路线的时间。比如两个人A,B从广州到深圳,他们做不同的交通工具到深圳,A高铁,B大巴,但只有他们两个都到达深圳才能完成任务,那么最快的汇合时间(最早的完成时间)就是B达到深圳的时间(最长的);
latest completion time:最晚完成时间:顾名思义,就是这件事最晚的完成时间是多少;求最晚完成时间是从 结束到开始 反向求得的。首先要求得最早完成时间,然后从结束向开始点求最短路径。
![](https://img-blog.csdnimg.cn/img_convert/01bf388414d60c9e42f51389f7f15c39.png)
slack time
下图中节点的上方表示最早完成时间,下方是最晚完成时间,边的参数 如 A/3/0 表示 活动A需要消耗3个时间和slack time 是0(表示A活动不能有偷懒的时间了,不能有偷懒的活动称为关键活动)
从开始到结束的由关键活动组成的路径称为关键路径(也是最长路径)。
![](https://img-blog.csdnimg.cn/img_convert/4747603df482aa1951d49e19c6310412.png)