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...