关键路径算法

关键路径算法算法:

一、先顺着找,求每个顶点的最早发生时间ve(j)=Max{ve(i) + dut(<i,j>)}

1、v1到它的后继结点分别为:

v1->v2 = 6

v1->v3 = 4

v1->v4 = 5

则有表:

{v1:0,v2:6,v3:4,v4:5}

2、然后看v5

v2->v5=v1->v2->v5=7

v3->v5=v1->v3->v5=5

取大路径则有表:

{v1:0,v2:6,v3:4,v4:5,v5:7}

3、然后看v6

v4->v6=v1->v4->v6=7

则有表:

{v1:0,v2:6,v3:4,v4:5,v5:7,v6:7}

4、然后看v7

v5->v7=7+9=16

{v1:0,v2:6,v3:4,v4:5,v5:7,v6:7,v7:16}

5、然后看v8

v5->v8=14

v6->v8=11

则有表:

{v1:0,v2:6,v3:4,v4:5,v5:7,v6:7,v7:16,v8:14}

6、然后看v9

v7->v9=18

v8->v9=18

则有表:

{v1:0,v2:6,v3:4,v4:5,v5:7,v6:7,v7:16,v8:14,v9:18}

二、倒着找,找顶点的最晚发生时间vl(i)=Min{vl(j) - dut(<i,j>)}

1、v9=18

则有表{v9:18}

2、看v7 v8

v7=v9->v7=16

v8=v9->v8=14

则有表{v9:18,v8:14,v7:16}

3、看v5

v5=v7->v5=7

v5=v8->v5=7

则有表{v9:18,v8:14,v7:16,v5:7}

4、看v6

v6=v9->v8->v6=10

则有表{v9:18,v8:14,v7:16,v5:7,v6:10}

5、看v4

v4=v6->v4

则有表{v9:18,v8:14,v7:16,v5:7,v6:10,v4:8}

6、看v3

v3=v5->v3=6

则有表{v9:18,v8:14,v7:16,v5:7,v6:10,v4:8,v3:6}

7、看v2

v2=v5->v2=6

则有表{v9:18,v8:14,v7:16,v5:7,v6:10,v4:8,v3:6,v2:6}

8、看v1

v1=v2->v1=0

v1=v3->v1=2

v1=v4->v1=3

则有表{v9:18,v8:14,v7:16,v5:7,v6:10,v4:8,v3:6,v2:6,v1:0}

三、求一和二相等的元素就是关键路径中的定点集合

表一(ve):{v1:0,v2:6,v3:4,v4:5,v5:7,v6:7,v7:16,v8:14,v9:18}

表二(vl):{v9:18,v8:14,v7:16,v5:7,v6:10,v4:8,v3:6,v2:6,v1:0}

={v1,v2,v5,v7,v8,v9}

也就是说v1->v2->v5->v7->v9和v1->v2->v5->v8->v9都是关键路径

四、求关键活动

关键路径上的边都是关键活动,但是这里还是要列个表说明下,求关键活动的理论求法,即通过活动的最早和最晚发生时间,最早和最晚发生时间相等的就是关键活动。

e(i)表示弧<j,k>

e(i) = ve(j)

l(i) = vl(k) - dut(<j,k>)

           e(i)      l(i)

a1      0         6-6=0

a2      0         6-4=2

a3      0         8-5=3

a4      6         7-1=6

a5      4         7-1=6

a6      5         10-2=8

a7      7         16-9=7

a8      7         14-7=7

a9      7         14-4=10

a10    16       18-2=16

a11    14        18-4=14

可以找到e(i)等于l(i)的关键活动,分别为 a11  a10  a8  a7   a4 a1

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值