AOE網 關鍵路徑

2022-04-05 04:19:39 字數 2322 閱讀 5297

aov網中: 無環有向圖中, 頂點表示活動 邊表示先後順序。

aoe網中:帶權有向圖中, 頂點表示事件,有向邊表示活動,邊上的權值表示活動的持續時間。

我們成為aoe網(activity on edge   network)

aoe網中沒有入邊的頂點表示源點或始點,沒有出邊的叫終點或匯點。

aoe網要建立在活動之間制約關係沒有矛盾的基礎之上。

關鍵路徑:我們把路徑上各個活動持續時間之和稱為路徑長度,從源點到終點最大的長度為關鍵路徑,在關鍵路徑上的活動叫關鍵活動。

那麼,顯然對上圖aoe網而言,所謂關鍵路徑:

開始-->發動機完成-->部件集中到位-->組裝完成。路徑長度為5.5。我們只有在改變了關鍵路徑的時間才有效。

aoe網表示工程流程圖,具有工程特性,由於具有

並行特性

因此引入關鍵路徑

1 只有在該頂點的事件發生後,從該頂點出發的活動才能進行。

2.只有進入到該頂點的所有活動完成後 該頂點事件才能執行。

對aoe網有待研究的問題是:

(1)完成整個工程至少需要多少時間?

(2)那些活動是影響工程進度的關鍵?

關鍵路徑

整個工程完成的時間為:從有向圖的源點到匯點的最長路徑。

關鍵活動:該弧上的權值增加 將使有向圖上的最長路徑的長度增加。關鍵活動的最早開始時間 =關鍵活動的最遲開始時間  意思是中間沒有空閒時間幹別的事了。

(1)事件的最早發生時間etv(earliest time of vertex): 即頂點vk的最早發生時間。

(2)事件的最晚發生時間ltv(latest time of vertex): 即頂點vk的最晚發生時間。

也就是每個頂點對應的事件最晚需要開始的時間,超出此時間將會延誤整個工期。

(3)活動的最早開工時間ete(earliest time of edge): 即弧ak的最早發生時間。

(4)活動的最晚開工時間lte(latest time of edge): 即弧ak的最晚發生時間,也就是不推遲工期的最晚開工時間。關鍵還是求etv跟ltv陣列。

然後根據最早開工時間ete[k]和最晚開工時間lte[k]相等判斷ak是否是關鍵路徑。

與拓撲序列鄰接表結構不同的地方在於,弧鍊錶增加了weight域,用來儲存弧的權值。

求事件的最早發生時間etv的過程,就是從頭至尾找拓撲序列的過程。

因此,在求關鍵路徑之前,先要呼叫一次拓撲序列演算法的**來計算etv和拓撲序列表。

陣列etv儲存事件最早發生時間

陣列ltv儲存事件最遲發生時間

全域性棧用來儲存拓撲序列

//依據aov網 求topo圖 來求 事件的最早發生時間etv陣列

bool toposort(gadjlist g)

} int top2=0;//新加入的

int *etv=new int[g.numv];//事件最早發生時間

for(int i=0;i

while(top != 0)

if(etv[gettop]+e->weight > etv[k])//新加入的

}} delete stack;

if(cout下面為關鍵路徑演算法**

void criticalpath(gadjlist g)

while(top2!=0)//top2是在toposort函式中求的的 所有點數=g.numv

}}//經過while迴圈求出每頂點最晚發生時間

for(int j=0;jnext)

{ int k= e->adjvex;

int ete = etv[j];//活動最早時間

int lte = ltv[k]-e->weight;//活動最晚時間

比如etv[1]=3而ltv[1]=7表示(如果單位按天計的話):

哪怕v1這個事件在第7天才開始也是可以保證整個工程按期完成。

你也可以提前v1時間開始,但是最早也只能在第3天開始。

該程式點時間複雜度o(v+e), 有時存在多條關鍵路徑點有向無環圖,這時如果想提高效率必須同時提高幾條關鍵路徑

AOE網 關鍵路徑

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

aoe網關鍵路徑

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

AOE網 關鍵路徑和關鍵活動

全域性棧 seqstacksq2 typedef struct edgenode edgenode typedef struct vertexnode vertexnode,adjlist maxvex typedef struct graphadjlist,graphadjlist 構建節點 ed...