【數據結構-圖】關鍵路徑解法


關鍵路徑不涉及原理,純應試解法分享:

前言:

  關鍵路徑是有向帶權無環圖的一種尋求路徑的算法,采用四組數據,兩組點的,兩組邊的,表格化后一目了然。

  分別是:ve(k),vl(k),e(i) ,l(i)

  點:k表示點的標識

    ve:最早發生時間

    vl:最遲發生時間

  邊:i表示邊的標識

    e:最早開始時間

    l:最遲開始時間

  再引入一個d的概念,l-e,最終選取d為0的邊來串聯點,構成關鍵路徑。

給出圖如下,舉例說明

第一步:求ve

ve(k),從起點0出發,權值最長的走法,從前到后。ve(0)=0

ve(1)=3,就是a0

ve(2)=4,就是a1

ve(3)=ve(1)+a2=5,可以這么理解,也可以理解成從0到3,最長路徑是0-1-3,權值加起來是3+2=5

ve(4)=max{ve(1)+a3  , ve(2)+a4}  取較大的值,也可以理解成0-1-4和0-2-4,哪個權值大取哪個。

以此類推……

入度不為1的節點,通過前一節點加上指向該節點的權值取較大值更科學,直接算路徑長更直觀

 

第二步:求vl

 vl(k),從終點往回倒,減去前一邊的權值,取最小。vl(10)=28

vl(9)=vl(10)-a14=22

vl(8)=vl(9)-a13=21

vl(7)=min{vl(9)-a11  ,vl(8)-a12}=11

以此類推……

第三步:求e

最早開始時間,就是邊的出發節點的ve

 第四步:求l

用邊的終止節點的 vl 減去邊的權值

a0從0指向1,用vl(1)-a0

l(a0)=vl(1)-a0 = 3

a2從1指向3,用vl(3)-a2

l(a2)=vl(3)-a2=13

以此類推……

 通過 l-e 得出d

 d為0的邊,構成關鍵路徑

即,a1,a4,a8,a12,a13,a14構成關鍵路徑

參考書目:天勤數據結構高分筆記

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM