關鍵路徑的相關知識

2021-08-09 10:55:12 字數 2049 閱讀 2145

一 基本概念

關鍵路徑是對資料結構中圖的又一大應用。

1、aoe網的概念:在乙個表示工程的帶權有向圖中,用頂點表示事件,用有向邊表示活動,邊上的權值表示活動的持續時間,稱這樣的有向圖叫做邊表示活動的網,簡稱aoe網。aoe網中沒有入邊的頂點稱為始點(或源點),沒有出邊的頂點稱為終點(或匯點)。

2、關鍵路徑的概念:從始點到終點的路徑長度最大的路徑即為關鍵路徑。關鍵路徑上的活動為關鍵活動。

3、所用到的幾個參量定義:

(1)事件vk的最早發生時間,用ve(k)表示

指從頂點v到vk的最長路徑長度,事件的最早發生時間決定了所有從vk開始的活動能夠開工的最早時間。ve(k)=max

(2)事件vk的最晚發生時間,用vl(k)表示

指在不推遲工期的情況下,保證它指向的事件vi在ve(i)時刻發生時,該事件最遲發生的時間。vl(j)=min

(3)活動ak的最早開始時間,用e(i)表示,e(i)=ve(k)

指該活動的起點所表示的最早的開始時間。

(4)活動ak的最遲開始時間,用l(i)表示,l(i)=vl(j)-weight(vk,vj)

指該活動的終點所表示的事件最遲發生時間與該活動所需時間之差。

二 舉例

例如:

v1v2

v3v4

v5v6

ve(k),事件最早開始時間

vl(k),事件最晚開始時間

上表中v2最晚開始時間有多個,取最小值即可。

a1a2

a3a4

a5a6

a7a8

e(i),活動最早開始時間

a1a2

a3a4

a5a6

a7a8

l(i),活動最遲開始時間

e(i)=l(i),即為關鍵活動。所以關鍵活動是:a2、a5、a7

下面用c語言來實現:(**來自:

#include 

<

stdio.h

>

#include 

<

malloc.h

>

#define

m 20

#define

max 100

typedef 

struct

node

jd;typedef 

struct

tnode

td;int

loc_vertex(td g,

intvex,

intn)  

//定位輸入結點的儲存座標

intcrt_linklist(td g)   

//建立鄰接鍊錶

for(k=1

;k<=

e;k++

)   

//輸入邊的資訊

return

(n);

}void

cal_in(td g,

intn)   

//計算每個結點的入度}}

intdut(td g,

intvt,

intvh)   

//返回每個結點之間的邊的權值

return

(max);

}int

toporder(td g,

intn,

intve,

inttop2,

int*

t2)    

//作用在於求ve[k],和為後面的求vl[k]

while

(top

>0)

}if(m<

n)  

return(0

);else

return(1

);}void

critical_path(td g,

intn)

}///

*  求出活動的的e[k],l[k]*

///for(j=

1;j<=

n;j++)}

}}intmain()

C 路徑設定相關知識

system.diagnostics.process.getcurrentprocess mainmodule.filename獲取模組的完整路徑。system.environment.currentdirectory 獲取和設定當前目錄 該程序從中啟動的目錄 的完全限定目錄。system.io.d...

尤拉路徑相關知識

首先說說概念 設g是無向連通圖,則稱經過g的每條邊一次且僅一次的路徑為尤拉通路.如果尤拉通路是迴路,那麼該迴路為尤拉迴路.具有尤拉迴路的無向圖g稱為尤拉圖.如果g是有向圖,並且g的基圖聯通.那麼由上面的定義中所有的名次加上乙個有向即可 相關定理 1 無向圖g存在尤拉通路的充要條件是 g為連通圖,並且...

Codeup關鍵路徑 關鍵路徑

時間限制 1 sec 記憶體限制 128 mb 提交 261 解決 90 提交 狀態 討論版 命題人 外部匯入 描述 圖的連線邊上的資料表示其權值,帶權值的圖稱作網。上圖可描述為頂點集為 a,b,c,d,e 邊集及其權值為 始點,終點 權值 a b 3 a c 2 b d 5 c d 7 c e 4...