關鍵路徑演算法之php實現

2021-08-26 20:35:55 字數 1770 閱讀 5985

拓撲排序主要是為解決乙個工程能否順序進行的問題,但有時我們還需要解決工程完成需要的最短時間問題。

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

路徑上的活動叫關鍵活動。

關鍵路徑演算法基於拓撲排序演算法,這裡直接上**,以後有機會再詳解。

class edgenode

}class vertexnode

}class graph

}$edgenode0 = new edgenode(2, 4, new edgenode(1, 3));

$edgenode1 = new edgenode(4, 6, new edgenode(3, 5));

$edgenode2 = new edgenode(5, 7, new edgenode(3, 8));

$edgenode3 = new edgenode(4, 3);

$edgenode4 = new edgenode(7, 4, new edgenode(6, 9));

$edgenode5 = new edgenode(7, 6);

$edgenode6 = new edgenode(9, 2);

$edgenode7 = new edgenode(8, 5);

$edgenode8 = new edgenode(9, 3);

$edgenode9 = null;

$adjlist = array(

new vertexnode(0, 'v0',  $edgenode0),

new vertexnode(1, 'v1',  $edgenode1),

new vertexnode(1, 'v2',  $edgenode2),

new vertexnode(2, 'v3',  $edgenode3),

new vertexnode(2, 'v4',  $edgenode4),

new vertexnode(1, 'v5',  $edgenode5),

new vertexnode(1, 'v6',  $edgenode6),

new vertexnode(2, 'v7',  $edgenode7),

new vertexnode(1, 'v8',  $edgenode8),

new vertexnode(2, 'v9',  $edgenode9),

);$graph = new graph($adjlist, 10);

//----------------------- 第一種  ------------------------------------

$etv = array_fill(0, 10, 0);

$stacktop = $stacktop2 = -1;

$count = 0;

$stack = $stack2 = array();

foreach ($graph->adjlist as $adjkey => $adjitem)

}while ($stacktop != -1)

if (($etv[$gettop] + $e->weight) > $etv[$k]) }}

//關鍵路徑

$ltv = array_fill(0, $graph->num, $etv[$graph->num - 1]);

while ($stacktop2 != 0) }}

for ($j = 0; $j < $graph->num; $j++) }}

if ($count < $graph->num) else

經典演算法之關鍵路徑

設乙個工程有11項活動,9個事件,事件v1 表示整個工程開始,事件v9 表示整個工程結束。每個事件的開始必須是它之前的活動已完成。例如 事件v2,v3,v4的開始必須是活動a1,a2,a3完成了。這時我們會關注兩個問題 1 完成整個專案需要多少時間?2 哪些活動是影響工程進度的關鍵?關鍵路徑 aoe...

關鍵路徑 CriticalPath演算法

關鍵路徑 即決定一項工程的完成時間的路徑。如下圖所示,是一輛汽車的生產流程,其中外殼 發動機 輪子等的生產過程都是可以並行進行的,但是傳送機生產需要的時間最長,而只有所有零部件生產完成才才能進行下一步,因此圖中用紅色加粗的那一條路徑即為該工程的關鍵路徑 即決定工程的實際完成時間的路徑 critica...

關鍵路徑 CriticalPath演算法

關鍵路徑 即決定一項工程的完成時間的路徑。如下圖所示,是一輛汽車的生產流程,其中外殼 發動機 輪子等的生產過程都是可以並行進行的,但是傳送機生產需要的時間最長,而只有所有零部件生產完成才才能進行下一步,因此圖中用紅色加粗的那一條路徑即為該工程的關鍵路徑 即決定工程的實際完成時間的路徑 critica...