拓撲排序與關鍵路徑

2021-10-06 23:11:45 字數 1318 閱讀 9182

什麼是拓撲排序:

設g=(v, e)是乙個具有n個頂點的有向圖,v中頂點序列v1,v2, … vn,稱為乙個拓撲序列,當且僅當該頂點序列滿足下列條件:

若是圖中的邊(或從頂點i到j有一條路徑) :

則在拓撲序列中頂點i必須排在頂點j之前。

在乙個有向圖中找-乙個拓撲序列的過程稱為拓撲排序。

拓撲排序步驟

(1)從有向圖中選擇乙個沒有前驅(即入度為0)的頂點並且輸出它。

(2)從圖中刪去該頂點,並且刪去從該頂點發出的全部有向邊。

(3)重複上述兩步,直到剩餘的圖中不再存在沒有前驅的頂點為止。

演算法演示:

我們來回顧下它的執行過程:

首先,找到乙個沒有入度的頂點c1,輸出,去除c1的有向邊;在剩下的圖中找到沒有入度的頂點c3,去除c3的有向邊。依次操作下去,直到所有頂點均被輸出,最後得到乙個序列:c1,c3,c2,c7,c4,c6,c5

什麼是aoe網

◎用乙個帶權有向圖 (dag)描述工程的預計進度。

◎頂點表示事件,有向邊表示活動,邊e的權c(e)表示完成活動e所需的時間(比如天數)。

◎圖中入度為0的頂點表示工程的開始事件(如開工儀式),出度為0的頂點表示工程結束事件。

關鍵路徑

從aoe網中源點到匯點的最長路徑,具有最大長度的路徑叫關鍵路徑。

關鍵路徑是由關鍵活動構成的,關鍵路徑可能不唯一。

從關鍵路徑可以看出:

1.縮短某一活動,整個活動不一定會縮短。

2.縮短某一關鍵活動時,整個活動也不一定會縮短。只有縮短所有關鍵路徑共享的關鍵活動的時間,才可能整個工期縮短。

拓撲排序與關鍵路徑

拓撲排序 只適用於aov網 有向無環圖 運用 事務先後 非唯一 拓撲排序思路 選擇乙個入度為 0 的點 並輸出 從aov網中刪除此頂點以及此頂點為起點的所有關聯邊 重複上述兩步,直到不存在入度為0的頂點為止 如果書粗糙頂點數小於aov網中的頂點數,則輸出 有迴路資訊 否則輸出的頂點序列就是一種拓撲排...

拓撲排序,關鍵路徑

拓撲排序 對於乙個流程圖,可以用頂點表示活動,弧表示活動間的優先關係,這樣所表示的有向圖稱為頂點表示活動的網,即aov網。在網中,如果頂點i到頂點j有一條有向路徑,或者 i,j 是一條弧,則i是j的前驅,j是i的後繼。aov網中不應該出現環。拓撲排序的思想很簡單,1 在有向圖中選乙個沒有前驅的頂點輸...

拓撲排序 關鍵路徑

功能function description hdoj 2094 開發環境environment dev c 4.9.9.1 技術特點technique 版本version 作者author 可笑痴狂 日期date 20120812 備註notes 策略問題 一 本來想先用字典樹給名字編號,然後用建...