Floyd-Warshall算法描述
1)適用范圍:
a)APSP(All Pairs Shortest Paths)
b)稠密圖效果最佳
c)邊權(quán)可正可負(fù)
2)算法描述:
a)初始化:dis[u,v]=w[u,v]
b)For k:=1 to n
For i:=1 to n
For j:=1 to n
If dis[i,j]>dis[i,k]+dis[k,j] Then
Dis[I,j]:=dis[I,k]+dis[k,j]
c)算法結(jié)束:dis即為所有點(diǎn)對(duì)的最短路徑矩陣
3)算法小結(jié):此算法簡單有效,由于三重循環(huán)結(jié)構(gòu)緊湊,對(duì)于稠密圖,效率要高于執(zhí)行|V|次Dijkstra算法。時(shí)間復(fù)雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個(gè)判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時(shí)間:
2013-12-01
上傳用戶:dyctj
兩臺(tái)處理機(jī)A 和B處理n個(gè)作業(yè)。設(shè)第i個(gè)作業(yè)交給機(jī)器
A 處理時(shí)需要時(shí)間ai,若由機(jī)器B 來處理,則需要時(shí)間bi。由于各作
業(yè)的特點(diǎn)和機(jī)器的性能關(guān)系,很可能對(duì)于某些i,有ai >=bi,而對(duì)于
某些j,j!=i,有aj<bj。既不能將一個(gè)作業(yè)分開由兩臺(tái)機(jī)器處理,也沒
有一臺(tái)機(jī)器能同時(shí)處理2 個(gè)作業(yè)。設(shè)計(jì)一個(gè)動(dòng)態(tài)規(guī)劃算法,使得這兩
臺(tái)機(jī)器處理完成這n 個(gè)作業(yè)的時(shí)間最短(從任何一臺(tái)機(jī)器開工到最后
一臺(tái)機(jī)器停工的總時(shí)間)。研究一個(gè)實(shí)例:(a1,a2,a3,a4,a5,a6)=
(2,5,7,10,5,2);(b1,b2,b3,b4,b5,b6)=(3,8,4,11,3,4)
標(biāo)簽:
處理機(jī)
機(jī)器
上傳時(shí)間:
2014-01-14
上傳用戶:獨(dú)孤求源