圖算法

圖算法

圖算法指利用特製的線條算圖求得答案的一種簡便算法。無向圖、有向圖和網路能運用很多常用的圖算法,這些算法包括:各種遍歷算法(這些遍歷類似於樹的遍歷),尋找最短路徑的算法,尋找網路中最低代價路徑的算法,回答一些簡單相關問題(例如,圖是否是連通的,圖中兩個頂點間的最短路徑是什麼,等等)的算法。圖算法可套用到多種場合,例如:最佳化管道、路由表、快遞服務、通信網站等。

定義

在計算中,常將運算方程或實驗結果繪製成由若干有標尺的線條所組成的圖,稱為“算圖”或“諾模圖”。計算時根據已知條件,從有關線段上一點開始,連結相關線段上的點,連線與表示所求量線段的交點即為答案。

無向圖、有向圖和網路能運用很多常用的圖算法。這些算法包括:各種遍歷算法(這些遍歷類似於樹的遍歷),尋找最短路徑的算法,尋找網路中最低代價路徑的算法,回答一些簡單相關問題(例如,圖是否是連通的,圖中兩個頂點間的最短路徑是什麼,等等)的算法。

常用的圖算法

圖的遍歷

圖的遍歷是指從圖中的任一頂點出發,對圖中的所有頂點訪問一次且只訪問一次。圖的遍歷操作是圖的一種基本操作,圖的許多操作都建立在遍歷操作的基礎之上。

由於圖中節點之間的關係是任意的,所以圖的遍歷要比樹的遍歷複雜,主要表現在以下四個方面:

(1)在圖結構中,沒有一個明顯的首結點,圖中任意一個頂點都可作為第一個被訪問的結點,所以要提供首結點。

(2) 在非連通圖中,從一個頂點出發,只能夠訪問它所在的連通分量上的所有頂點,因此,還需考慮如何選取下一個出發點,以訪問圖中其餘的連通分量。

(3)在圖結構中,可能有迴路存在,那么一個頂點被訪問之後,有可能沿迴路又回到該頂點,在訪問之前,需要判斷結點是否已經被訪問過。

(4)在圖結構中,一個頂點可以和其它多個頂點相連,當這樣的頂點訪問過後,存在如何選取下一個要訪問的頂點的問題。

因此,在遍歷圖時,為保證圖中各頂點在遍歷的過程中訪問且僅一次,需要為每個頂點設計一個訪問標記,設定一個數組,用於標示圖中每個頂點被訪問過,它的初始值全部為0,表示頂點均未被訪問過;某個頂點被訪問後,將相應訪問標誌數組中的值設為1,以表示該頂點已經被訪問過。

通常,圖的遍歷有兩種:
(1)深度優先遍歷搜尋;

(2)廣度優先遍歷搜尋。

最小生成樹

對於有n個頂點的無向連通圖,至少有n-1條邊,而生成樹恰好有n-1條邊,所以生成樹是圖的極小連通子圖。如果無向連通圖是一個網,那么它的所有生成樹中必有一棵邊的權值總和最小的生成樹,稱這顆生成樹為最小生成樹。

最小生成樹可以用普里姆算法或克魯斯卡爾算法求出。

最短路徑

1.從一個源點到其它各點的最短路徑,可使用迪傑斯特拉算法來求最短路徑。

2.每一對頂點之間的最短路徑,可使用弗洛伊德算法來求解。

套用

最佳化管道

用來解決傳輸水、油或其它液體等實際問題的方法。如果管道的分發點代表圖中頂點,連線這些分發點的管道作為圖的邊,並且其代價由圖中邊的代價決定,那么最小生成樹提供了一個最好的方法來布置一個可以連線所有分發點的管道模型。

路由表

在網際網路中,路由器利用路由表直接定址轉發數據。路由器存在的目的是將數據傳送到離目的更近的地方。在某些路由過程中,路由器會周期性的計算它到另一個路由器的最短路徑,這樣它們就知道接下來將數據傳送到哪個目的地址是最佳方案。

快遞服務

它是一種通常需要訪問很多地方以取包裹和發包裹的服務。如果解決了旅行商問題,就能過為車輛指明一條最有效的路徑,每個地址只能訪問一次,並最終回到其起始點。

通信網路

網路包含許多不同類型的設備,包括電話網、中繼站、衛星系統等,所有這些設備都必須放置於最優的位置。用帶權圖建模網路,並通過計算最小生成樹來找到最優的方案。

航路選擇

這是一個對航空公司和空中交通管制機構很重要的最佳化問題。通常飛機不能從一個地方直接飛到另一個地方。所以,他們在空中建立航線或高速航道,這些航道同時考慮了風速、機票的費用和空中交通管制的限制。那么,考慮了所有以上的這些因素後,兩地之間的最佳航線就是圖中權值最小的路徑。

閉合運輸系統

在這種系統中,運輸車或送貨車要多次訪問某個地點。這樣的系統多用於工廠中貨物傳遞或倉庫中的儲貨搬運。解決旅行商問題可以為此提供最佳的路徑解決方案。

有線電路板

電子製造業中的一個最佳化問題。通常,使電路板上一些組件的引腳相互之間連線起來是必要的。如果每個引腳代表圖中的一個頂點,其連線作為邊,且邊的權由連線的數量決定。那么最小生成樹能提供一種連線引腳的最優方法。

交通監控

觀察交通流量的變化,並以此變化來確定城市中兩點之間最佳路線的過程。為了避免過多的交通延誤,可以使用一個帶權圖來對交通流量建模,然後對尋找路口到路口間流量最小的路徑。

相關詞條

相關搜尋

熱門詞條

聯絡我們