Graph Giaûi thuaät tìm kieám trong ñoà thò Ch 8 Elementary Graph Algorithms Bieåu dieãn caùc ñoà thò Hai caùch bieåu dieãn moät ñoà thò G = (V, E) Bieåu dieãn danh saùch keà (adjacency list) maûng Adj[.]
Giải thuật tìm kiếm đồ thị Biểu diễn đồ thị ª Hai cách biểu diễn đồ thị G = (V, E): – Biểu diễn danh sách kề (adjacency list) ° mảng Adj gồm V danh sách, danh sách cho đỉnh V u V, Adj[u] chứa tất đỉnh v (hoặc trỏ đến chúng) cho (u, v) E – Nhận xét ° Biểu diễn danh sách kề cần (V + E) memory (Để đơn giản, ký hiệu V E thay V E.) 7.11.2004 Ch 8: Elementary Graph Algorith ms Biểu diễn đồ thị (tiếp) – Biểu diễn ma trận kề (adjacency matrix) ° Đánh số đỉnh 1, 2, , V ° Aa ma trậnV V ij aij = (i, j) E trường hợp lại – Nhận xét ° Biểu diễn ma trận kề cần (V 2) memory ° Đồ thị thưa (sparse), E V: nên dùng danh sách kề ° đồ thị đặc (dense), E V: nên dùng ma trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Bieåu diễn đồ thị vô hướng Biểu diễn Một đồ thị vô hướng Biểu diễn danh sách kề ma trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Biểu diễn đồ thị có hướng Biểu diễn bằngBiểu diễn Một đồ thị có hướng danh sách kề ma trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Tìm kiếm theo chiều rộng ª ª ª Tìm kiếm theo chiều rộng (breadth-first-search, BFS) Một đồ thị G = (V, E) – đỉnh nguồn s – biểu diễn danh sách kề Mỗi đỉnh u V – color[u]: WHITE, GREY, BLACK – [u]: trỏ đến đỉnh cha mẹ (predecessor hay parent) u có – d[u]: khoảng cách từ s đến u mà giải thuật tính first-in first-out queue Q – head[Q] – thao taùc ENQUEUE(Q, v) – thao taùc DEQUEUE(Q) 7.11.2004 Ch 8: Elementary Graph Algorith ms Tìm kiếm theo chiều rộng (tiếp) BFS(G, s) for each vertex u V[G] {s} color[u] WHITE d[u] [u] NIL color[s] GRAY d[s] [s] NIL 7.11.2004 Ch 8: Elementary Graph Algorith ms Tìm kiếm theo chiều rộng (tiếp) Q {s} while Q 10 u head[Q] 11 for each v Adj[u] 12 if color[v] = WHITE 13 then color[v] GRAY 14 d[v] d[u] + 15 [v] u 16 ENQUEUE(Q, v) 17 DEQUEUE(Q) 18 color[u] BLACK 7.11.2004 Ch 8: Elementary Graph Algorith ms Thao tác BFS lên đồ thị vô hướng Ví dụ r s t u v w x y r s t u (a) (b) v w x y r s t u v w x y (c) 7.11.2004 Ch 8: Elementary Graph Algorith ms Q s Q w r 1 Q r t x 2 Thao tác BFS lên đồ thị vô hướng Ví dụ (tiếp) r s t u (d) v w x y r s t u (e) v w x y r s t u t x v 2 Q x v u 2 Q (fø) v 7.11.2004 Q w x y Ch 8: Elementary Graph Algorith ms v u y 3 10 ... memory ° Đồ thị thưa (sparse), E V: nên dùng danh sách kề ° đồ thị đặc (dense), E V: nên dùng ma trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Biểu diễn đồ thị vô... hướng Biểu diễn Một đồ thị vô hướng Biểu diễn danh sách kề ma trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Biểu diễn đồ thị có hướng Biểu diễn bằngBiểu diễn Một đồ thị có hướng danh sách... trận kề 7.11.2004 Ch 8: Elementary Graph Algorith ms Tìm kiếm theo chiều rộng ª ª ª Tìm kiếm theo chiều rộng (breadth-first-search, BFS) Một đồ thị G = (V, E) – đỉnh nguồn s – biểu diễn danh sách