雙代號網路求解演算法

2021-06-12 20:52:27 字數 1617 閱讀 2204

引用:

(1)時間引數計算數學模型:

下面取一網路片斷(圖9-24)作為計算簡圖。

圖9-24計算簡圖

節點編號:

令整個計畫的開始時間為第0天,則:

工作最早開始時間等於其緊前工作最早完成時間的最大值。

令整個計畫的總工期為一常數,則:

工作最遲完成時間等於其緊後工作最遲開始時間的最小值。

總時差:tfij=

自由時差:

在網路計畫中,總時差最小的工作為關鍵工作。特別地,當網路計畫的計畫工期等於計算工期時,總時差為零的工作就是關鍵工作。由於工作的自由時差是總時差的構成部分,所以,當工作的總時差為零時,其自由時差必然為零。即:

關鍵工作:

如果網路計畫中工作數量比較多,一般用專案管理軟體進行計算。如果數量不多也可用手工進行計算。

(2)計算步驟

時間引數的計算方法很多,可人工計算,也可通過計算機計算。手工計算一般採用圖上計算法或表上計算法。不管採用哪種方法,其計算步驟大致相同,具體步驟為:

1)計算工作的最早時間。工作的最早時間是從左向右逐項工作進行計算。先定計畫的開始時間,網路圖中的起始節點一般取相對時間為第0天,則第一項工作的最早開始時間為第0天,將它與第一項工作的持續時間相加,即為該工作的最早完成時間。逐項進行計算,一直算到最後一項工作,其最早完成時間即為該計畫的計算工期。

2)確定網路計畫的計畫工期。如果專案的總工期沒有特殊的規定,一般取專案的計畫工期為計算工期。

3)計算工作的最遲時間。工作的最遲時間是從右向左逐項進行計算。先定計畫工期,最後一項工作的完成時間即為所定的計畫工期時間,將它與其持續時間相減,即為最後一項工作的最遲開始時間。逆方向逐項進行計算,一直算到第一項工作。

4)計算工作的總時差。每一工作的最遲時間與最早時間之差,即為該工作的總時差。

5)計算工作的自由時差。某一工作的自由時差為其緊後工作的最早開始時間最小

值減去本工作的最早完成時間。

6)確定網路計畫中的關鍵線路。總時差為零的工作為關鍵工作,將這些關鍵工作首尾相連在一起即為關鍵線路,一般用粗箭線或雙箭線表示。

其計算結果如圖9-25所示,將各引數按規定標至網路圖上。

(3)圖上計算法。直接在網路圖上進行時間引數計算的方法叫圖上計算法。例9-5就是依據前面介紹的步驟用圖上計算法來計算各工作的時間引數,計算結果如圖9-26所示。

[例9-5]圖上計算法,如圖9-26所示。

圖9-26網路圖上計算時間引數

(4)表上計算法。表上計算法就是直接在表上計算時間引數的方法。

網路最大流求解 增廣路演算法

增廣路演算法 根據增廣路地理,為了得到最大流,可以從任何乙個可行流開始,沿著增廣路對網路流進行增廣,直到網路中不存在增廣路為止,這樣的演算法稱為增廣路演算法。增廣路演算法流程如下。1 取乙個可行流f作為初始流 如果沒有給定可行流,則取零流作為初始流 2 尋找關於f的增廣路p,如果找到,則沿著這條增廣...

A 演算法求解迷宮

cpp view plaincopy include include include using namespace std 方向向量 int direc 4 2 封閉,開放列表標記 enum flag 最小堆節點類 堆優先順序為 f g h g為當前的路徑長 h為估計當前位置到目標位置開銷探測 當...

Sudoku DLX演算法求解

h ifndef dlx sudoku h define dlx sudoku h include using namespace std define rr 729 81 9 define cc 324 81 4 struct node dlx 演算法求數獨的解 class cdlxsudoku ...