AOE網 關鍵路徑

2021-07-29 14:49:23 字數 2328 閱讀 1052

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網關鍵路徑

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

AOE網 關鍵路徑

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

AOE網 關鍵路徑和關鍵活動

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