AOE網路的關鍵路徑問題

2022-08-03 11:45:20 字數 944 閱讀 6037

關於aoe網路的基本概念可以參考《資料結構》或者search一下就能找到,這裡不做贅述。

尋找aoe網路的關鍵路徑目的是:發現該活動網路中能夠縮短工程時長的活動,縮短這些活動的時長,就可以縮短整個工程的時長。因此,尋找關鍵路徑就是尋找關鍵活動。

接下來開始尋找乙個工程中的關鍵路徑(關鍵活動)。

尋找關鍵路徑,每本教材都會提及四個特徵屬性:ve,vl,e,l,此處可能還補充乙個屬性:活動ai的時間餘量,也就是l[i]-e[i],當某個活動的時間餘量=0時,該活動就是關鍵活動。所以,尋找關鍵路徑(關鍵活動)也就是求解aoe網路中所有活動、事件的上述特徵屬性,然後發現時間餘量為零的活動,這樣的活動就是關鍵活動。

至此,我們分析出,求解四個特徵屬性就可以找到關鍵路徑。

ve[i]:事件vi的最早可能發生時間。

按照就是以起始事件為源點,類似於逆迪傑斯特拉演算法求解單源點的最長路徑。

vl[i]:事件vi的最遲允許發生時間。

結束事件的最遲允許發生時間=最早可能發生時間,以此為基礎,按照逆拓撲序列求解前驅事件的vl,每次減去關聯兩個事件的具有最短時長的活動。

e[i]:活動ai的最早可能開始時間。

若活動ai由弧<.vk,vj>表示,則活動ai的最早開始時間應該等於事件vk的最早發生時間ve[k]。因而,有:e[i]=ve[k];(即:邊(活動)的最早開始時間等於,它的發出頂點的最早發生時間)。

l[i]:活動ai的最遲允許開始時間。

若活動ai由弧<.vk,vj>表示,則ai的最晚開始時間要保證事件vj的最遲發生時間不拖後。 因而有:l[i]=vl[j]-dur<.vk,vj>(為邊(活動)的到達頂點的最晚發生時間減去邊的權值)。

至此,所有計算完成,如果活動ai的e[i]=l[i],則ai是關鍵活動。

注意,如果某項工程中,多個關鍵活動構成了兩條或更多關鍵路徑,此時並不是縮短任意關鍵活動的時間都能縮短整個工程時間,而是要縮短所有關鍵路徑的公共關鍵活動的時間。

AOE網路和關鍵路徑

include define inf 99999999 using namespace std aoe 在現代化管理中,人們常用有向圖來描述和分析一項工程的計畫和實施過程,乙個工程常被分為多個 小的子工程,這些子工程被稱為活動 activity 在帶權有向圖中若以頂點表示事件,有向邊表示 活動,邊上...

AOE網 關鍵路徑

aov網中 無環有向圖中,頂點表示活動 邊表示先後順序。aoe網中 帶權有向圖中,頂點表示事件,有向邊表示活動,邊上的權值表示活動的持續時間。我們成為aoe網 activity on edge network aoe網中沒有入邊的頂點表示源點或始點,沒有出邊的叫終點或匯點。aoe網要建立在活動之間制...

aoe網關鍵路徑

總時間限制 10000ms 單個測試點時間限制 1000ms 記憶體限制 65536kb 描述求出所給的aoe 網的關鍵路徑。輸入若干行整數,第一行有2個數,分別為頂點數v和弧數a,接下來有a行,每一行有3個數,分別是該條弧所關聯的兩個頂點編號和弧的權值 輸出若干個空格隔開的頂點構成的序列 用小寫字...