Presentation is loading. Please wait.

Presentation is loading. Please wait.

Graph. 01 234 567 89 V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,

Similar presentations


Presentation on theme: "Graph. 01 234 567 89 V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,"— Presentation transcript:

1 Graph

2 01 234 567 89 V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5, 8), (6, 9), (7, 9), }

3 Adjacency matrix 以右圖為例 : Adjacency matrices 表示 輸出結果 : (0) (1) (2) (3) (0) 0 0 0 1 (1) 0 0 1 1 (2) 0 1 0 1 (3) 1 1 1 0 0 3 12 0001 0011 0101 1110 0 1 2 3 01230123

4 Adjacency matrix – 範例 0111 1011 1101 1110 0 1 2 3 The adjacency matrix of G 1 G1G1 0 3 12 01230123 010 101 000 0 1 2 The adjacency matrix of G 3 012012 0 1 2 G3G3

5 Adjacency list 以右圖為例 : Adjacency List 表示 輸出結果 : 0 3 12 3 23 13 012 0 1 2 3 (0) -> 3 (1) -> 2 -> 3 (2) -> 1 -> 3 (3) -> 0 -> 1 -> 2

6 Adjacency list – 範例 Adjacent list of G 1 312 230 130 012 adj_listdata link G1G1 0 3 12 0 1 2 G3G3 0 1 2 3 Adjacent list of G 3 1 20 Adj_listdata link 0 1 20

7 Depth First Search 類似樹的先序尋訪。 必須紀錄之前的路徑。 Stack Recursive 0 12 3456 7 0 -> 1 -> 3 -> 7 -> 4 -> 5 -> 2 -> 6 0 1 3 7 4 5 2 6

8 Biconnected Graph 8 Articulation point 如果將 v 以及所有附著於 v 的邊刪除, 會產生兩個以上的 連通元件 (connected graph), 我們就稱 v 為 Articulation point( 連接點 ) 。 biconnected graph 二連通圖是一個沒有連接點的連通圖形

9 Biconnected Graph – 範例 9 0 1 23 4 5 8 7 6 9 3 1 5 7

10 A Connected Graph and Its Biconnected Components 10 0 1 23 4 5 8 7 6 9 (a) A connected graph (b) Biconnected components 1 23 4 5 7 6 0 1 35 8 77 9

11 Biconnected Graph – 範例 以右圖為例 : Biconnected Graph 表示 程式預期輸出結果 : 0 3 12 Biconnected Graph(List) 1 : 2 : 0 3 1 3 2

12 Biconnected Graph – 演算法 depth first numbers (dfn) 在頂點在深度優先搜尋時, 頂點被拜訪的順序。 low(u) 是利用 u 的後代以及至多一個後退邊 (back edge) 可達到的頂點之最小深度優先序號 low(u) = min {dfn(u), min {low(w) | w is a child of u}, min { dfn(w) | (u, w) is a back edge} } back edge :在 DFS 時不被經過的邊。 u 是一個連接點若且唯若 u 是一個根節點且至少有兩個子節點 或 u 不是根節點但有一個子節點 w 使得 low(w)  >=dfn(u))

13 Biconnected Graph – 演算法 13 0 1 23 4 5 8 7 6 9 Stack dfn:0 00 0, 1 1 dfn:1 1 2 1, 2 2 4 2, 4 dfn:2 dfn:3 4 3 4, 3 dfn:4 low:0 low:1 low:2 low:3 low:4 3, 1 low:1 3 5 3, 5 dfn:5 low:5 5 6 5, 6 dfn:6 low:6 6 7 6, 7 dfn:7 low:7 7, 5 low:5 7 8 7, 8 dfn:8 low:8 8 7 dfn:9 9 7, 9 7 low:9 7 99 6 5 low:5 3 4 low:1 2 1 0 6

14 A Connected Graph and Its Biconnected Components 14 0 1 23 4 5 8 7 6 9 (a) A connected graph (b) Biconnected components 1 23 4 5 7 6 0 1 35 8 77 9

15 練習 右圖為本次練習的題目 請自教學網站下載 graph.txt 。 共有十個 vertex ,以 0-9 表示。 每一行代表一條 edge vertex 之間以 tab(\t) 隔開 01 234 567 89

16 練習 -1 1. 將該圖形資料轉換成 Adjacency matrices 的格式,並 輸出矩陣格式。 2. 針對練習一中完成的矩陣格式,做 Depth First Search 的動作,並將結果輸出。 3. 針對練習一中完成的矩陣格式,找出該圖形中的所 有 Biconnected Components graph ,並將結果輸出。

17 練習 -2 1. 將該圖形資料轉換成 Adjacency list 的格式,並輸出 矩陣格式。 2. 針對練習一中完成的串列格式,做 Depth First Search 的動作,並將結果輸出。 3. 針對練習一中完成的串列格式,找出該圖形中的所 有 Biconnected Components graph ,並將結果輸出。

18 練習 DFS: 0 2 3 6 5 8 9 7 4 1 Biconnected Components graph


Download ppt "Graph. 01 234 567 89 V(G 1 )={0, 1, 2, 3, 4, 5, 6, 7, 8, 9} E(G 1 )={(0, 2), (0, 3), (1, 4), (2, 3), (2, 5), (2, 6), (3, 6), (3, 7), (4, 7), (5, 6), (5,"

Similar presentations


Ads by Google