- -
算法(第四版) 4.4.5.3(P432)
这部分理解了好一会才弄清负权重的意义,特此记录。
书中写道,如果任务v必须在任务w启动后的d个时间单位内开始,则可以添加一条从v指向w的负权重为d的边,为了更直观理解,自己画了一个简单情况的图,如下:
如图,边上方数字表示任务耗时,即边权重,下方带圈数字表示任务序号,若任务<3>必须在任务<5>开始后的1个时间单位内开始,则可以添加一条3指向5的权重为-1的边,则求关键路径时,就是求图中S到E的最长路径。
显然,在没有负权重边时,关键路径的任务为
<1>-><2>-><3>;
当加入最后期限限制,即引入负权重边-1时,关键路径上的任务为
<1>-><2>-><5>;
如图,为了保证任务<3>在任务2后开始,并且任务<3>在任务<5>开始的一个时间单位内开始,这个关键路径不能再短了。
总结:v->w 若权重为正,则表示W在V开始后开始,比如每个任务的从开始到结束权重就为正。
v->w若权重为负,则表示V在W开始后多少时间范围内开始,即最后期限限制