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é):此算法簡(jiǎn)單有效,由于三重循環(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是否有通路的矩陣。更簡(jiǎn)單的,我們可以把dis設(shè)成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來(lái)代替算法描述中的藍(lán)色部分,可以更直觀地得到I,j的連通情況。
標(biāo)簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時(shí)間:
2013-12-01
上傳用戶:dyctj
基于verilog HDL的自動(dòng)售貨機(jī)控制電路設(shè)計(jì):
可以對(duì)5種不同種類的貨物進(jìn)行自動(dòng)售貨,價(jià)格分別為A=1.00,B=1.50,C=1.80,D=3.10,E=5.00 。售貨機(jī)可以接受1元,5角,1角三種硬幣(即有三種輸入信號(hào)IY,IWJ,IYJ),并且在一個(gè)3位7段LED(二位代表元,一位代表角)顯示以投入的總錢(qián)數(shù),最大9.90元,如果大于該數(shù)值,新投入的硬幣會(huì)退出,選擇貨物的輸入信號(hào)Ia,Ib,Ic,Id,Ie和一個(gè)放棄信號(hào)In,輸出指示信號(hào)為 Sa, Sb ,Sc ,Sd, Se 分別表示售出相應(yīng)的貨物,同時(shí)輸出的信號(hào)yuan, jiao代表找零,相應(yīng)每個(gè)脈沖代表找零相應(yīng)的硬幣,上述輸入和輸出信號(hào)均是一個(gè)固定寬度的脈沖信號(hào)。
標(biāo)簽:
verilog
1.00
1.50
1.80
上傳時(shí)間:
2016-07-12
上傳用戶:lanwei