题目如图所示,解法如下:
方法:
先求最早开始时间:A是开始节点,所以A的最早开始时间是0,并且最早开始时间等于最晚开始时间。等得到图中红色的部分。
其他节点的最早开始时间为以该节点作为弧头的所有有向弧的值+弧尾的值 的最大值,看例子就明白了:
然后求其B的最早开始时间,由B作为弧头的有向弧只有<A,B>且值为2,A的最早开始时间为0,所以B的最早开始时间为0+2=2,得到绿色的结果。
求C的最早开始时间,以C为弧头的弧只有<B,C>且值为3,B的最早开始时间为2,所以C的最早开始时间为2+3=5,得到黄色结果。
同理D、G、E的最早开始时间如图所示。
求F的最早开始时间:以F为弧头的弧有<E,F> <B,F> <G,F> 所对应的值分别为 13 6 13,取MAX{13,6,13}得F的最早开始时间为13,得到紫色结果.
后面的都一样...
然后由于J是结束节点,所以最早开始时间与最晚开始时间一样,得到图中的 这个色结果。
接着求最晚开始时间:从后往前推。
先求I的最晚开始时间。应为以I为弧尾的只有弧<I,J>所以,I的最晚开始时间为J的最晚开始时间减去<I,J>的值 18-2=16
同理F H的最晚开始时间也可以得到。
求E的最晚开始时间: 以E为弧尾的弧有 <E,H> <E,F> H的最晚开始时间减去<E,H>的值为12 F的最晚开始时间减去<E,F>的值为13-3=10 ,取MIN{12,10}得到E的最晚开始时间为10
....
后面都一样了....
完成项目的最少时间就是结束节点的最早或最晚开始时间 18
两条关键路径都画在图中了
BC在关键路径上,所以一天也不能晚;
BF可以耽搁的时间为 F的最晚-B的最早-<B,F>的值,也就是 13-4-2=7
口诀:最早开始从前往后用加法看弧头最大,最晚开始从后往前用减法看弧尾最小