Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8
Số trang: 42
Loại file: pdf
Dung lượng: 472.64 KB
Lượt xem: 5
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8 có nội dung trình bày về giải thuật tìm kiếm trong đồ thị, biểu diễn các đồ thị, biểu diễn một đồ thị vô hướng, biểu diễn một đồ thị có hướng, tìm kiếm theo chiều rộng,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8Giaûi thuaät tìm kieám trong ñoà thò 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 goàm |V| danh saùch, 1 danh saùch cho moãi ñænh trong V. ° u V, Adj[u] chöùa taát caû caùc ñænh v (hoaëc caùc con troû ñeán chuùng) sao cho (u, v) E. – Nhaän xeùt ° Bieåu dieãn danh saùch keà caàn (V + E) memory. (Ñeå ñôn giaûn, kyù hieäu V vaø E thay vì |V| vaø |E|.)7.11.2004 Ch. 8: Elementary Graph Algorithms 2 Bieåu dieãn caùc ñoà thò (tieáp) – Bieåu dieãn ma traän keà (adjacency matrix) ° Ñaùnh soá ñænh 1, 2,..., |V| ° A = (aij ), ma traän |V| |V| aij = 1 neáu (i, j) E 0 trong caùc tröôøng hôïp coøn laïi. – Nhaän xeùt ° Bieåu dieãn ma traän keà caàn (V ) memory. 2 ° Ñoà thò thöa (sparse), |E | Bieåu dieãn moät ñoà thò voâ höôùngMoät ñoà thò voâ höôùng Bieåu dieãn Bieåu dieãn baèng moät danh saùch keà baèng moät ma traän keà7.11.2004 Ch. 8: Elementary Graph Algorithms 4 Bieåu dieãn moät ñoà thò coù höôùng Bieåu dieãn baèng Bieåu dieãn baèng moätMoät ñoà thò coù höôùng moät danh saùch keà ma traän keà7.11.2004 Ch. 8: Elementary Graph Algorithms 5 Tìm kieám theo chieàu roäng Tìm kieám theo chieàu roäng (breadth-first-search, BFS)ª Moät ñoà thò G = (V, E) – moät ñænh nguoàn s – bieåu dieãn baèng danh saùch keઠMoãi ñænh u V – color[u]: WHITE, GREY, BLACK – p[u]: con troû chæ ñeán ñænh cha meï (predecessor hay parent) cuûa u neáu coù. – d[u]: khoaûng caùch töø s ñeán u maø giaûi thuaät tính ñöôïc.ª 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 Algorithms 6 Tìm kieám theo chieàu roäng (tieáp) BFS(G, s) 1 for each vertex u V[G] {s} 2 do color[u] WHITE 3 d[u] 4 p[u] NIL 5 color[s] GRAY 6 d[s] 0 7 p[s] NIL7.11.2004 Ch. 8: Elementary Graph Algorithms 7 Tìm kieám theo chieàu roäng (tieáp) 8 Q {s} 9 while Q 10 do u head[Q] 11 for each v Adj[u] 12 do if color[v] = WHITE 13 then color[v] GRAY 14 d[v] d[u] + 1 15 p[v] u 16 ENQUEUE(Q, v) 17 DEQUEUE(Q) 18 color[u] BLACK7.11.2004 Ch. 8: Elementary Graph Algorithms 8 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï r s t u 0 (a) Q s 0 v w x y r s t u 1 0 (b) Q w r 1 1 1 v w x y r s t u 1 0 2 (c) Q r t x 1 2 1 2 2 v w x y7.11.2004 Ch. 8: Elementary Graph Algorithms 9 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï (tieáp) r s t u 1 0 2 (d) Q t x v 2 1 2 2 2 2 v w x y r s t u 1 0 2 3 (e) Q x v u 2 1 2 2 2 3 v w x y r s t u 1 0 2 3 (fø) Q v u y 2 1 2 3 2 3 3 v w x y7.11.2004 Ch. 8: Elementary Graph Algorithms 10 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï (tieáp) r s t u 1 0 2 3 (g) Q u y 2 1 2 3 3 3 v w x y r s t u 1 0 2 3 (h) Q y 2 1 2 3 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 8Giaûi thuaät tìm kieám trong ñoà thò 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 goàm |V| danh saùch, 1 danh saùch cho moãi ñænh trong V. ° u V, Adj[u] chöùa taát caû caùc ñænh v (hoaëc caùc con troû ñeán chuùng) sao cho (u, v) E. – Nhaän xeùt ° Bieåu dieãn danh saùch keà caàn (V + E) memory. (Ñeå ñôn giaûn, kyù hieäu V vaø E thay vì |V| vaø |E|.)7.11.2004 Ch. 8: Elementary Graph Algorithms 2 Bieåu dieãn caùc ñoà thò (tieáp) – Bieåu dieãn ma traän keà (adjacency matrix) ° Ñaùnh soá ñænh 1, 2,..., |V| ° A = (aij ), ma traän |V| |V| aij = 1 neáu (i, j) E 0 trong caùc tröôøng hôïp coøn laïi. – Nhaän xeùt ° Bieåu dieãn ma traän keà caàn (V ) memory. 2 ° Ñoà thò thöa (sparse), |E | Bieåu dieãn moät ñoà thò voâ höôùngMoät ñoà thò voâ höôùng Bieåu dieãn Bieåu dieãn baèng moät danh saùch keà baèng moät ma traän keà7.11.2004 Ch. 8: Elementary Graph Algorithms 4 Bieåu dieãn moät ñoà thò coù höôùng Bieåu dieãn baèng Bieåu dieãn baèng moätMoät ñoà thò coù höôùng moät danh saùch keà ma traän keà7.11.2004 Ch. 8: Elementary Graph Algorithms 5 Tìm kieám theo chieàu roäng Tìm kieám theo chieàu roäng (breadth-first-search, BFS)ª Moät ñoà thò G = (V, E) – moät ñænh nguoàn s – bieåu dieãn baèng danh saùch keઠMoãi ñænh u V – color[u]: WHITE, GREY, BLACK – p[u]: con troû chæ ñeán ñænh cha meï (predecessor hay parent) cuûa u neáu coù. – d[u]: khoaûng caùch töø s ñeán u maø giaûi thuaät tính ñöôïc.ª 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 Algorithms 6 Tìm kieám theo chieàu roäng (tieáp) BFS(G, s) 1 for each vertex u V[G] {s} 2 do color[u] WHITE 3 d[u] 4 p[u] NIL 5 color[s] GRAY 6 d[s] 0 7 p[s] NIL7.11.2004 Ch. 8: Elementary Graph Algorithms 7 Tìm kieám theo chieàu roäng (tieáp) 8 Q {s} 9 while Q 10 do u head[Q] 11 for each v Adj[u] 12 do if color[v] = WHITE 13 then color[v] GRAY 14 d[v] d[u] + 1 15 p[v] u 16 ENQUEUE(Q, v) 17 DEQUEUE(Q) 18 color[u] BLACK7.11.2004 Ch. 8: Elementary Graph Algorithms 8 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï r s t u 0 (a) Q s 0 v w x y r s t u 1 0 (b) Q w r 1 1 1 v w x y r s t u 1 0 2 (c) Q r t x 1 2 1 2 2 v w x y7.11.2004 Ch. 8: Elementary Graph Algorithms 9 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï (tieáp) r s t u 1 0 2 (d) Q t x v 2 1 2 2 2 2 v w x y r s t u 1 0 2 3 (e) Q x v u 2 1 2 2 2 3 v w x y r s t u 1 0 2 3 (fø) Q v u y 2 1 2 3 2 3 3 v w x y7.11.2004 Ch. 8: Elementary Graph Algorithms 10 Thao taùc cuûa BFS leân moät ñoà thò voâ höôùng -- Ví duï (tieáp) r s t u 1 0 2 3 (g) Q u y 2 1 2 3 3 3 v w x y r s t u 1 0 2 3 (h) Q y 2 1 2 3 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Cấu trúc dữ liệu và giải thuật Cấu trúc dữ liệu và giải thuật Giải thuật tìm kiếm trong đồ thị Biểu diễn danh sách kề Biểu diễn ma trận kề Cây tìm kiếm theo chiều rộngGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 303 0 0 -
3 trang 156 3 0
-
Giáo trình cấu trúc dữ liệu và giải thuât part 2
16 trang 155 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Trần Hạnh Nhi
123 trang 154 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 140 0 0 -
10 trang 136 0 0
-
57 trang 118 1 0
-
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 1 - Trần Hạnh Nhi
98 trang 111 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 4: Một số giải thuật sắp xếp và tìm kiếm
29 trang 107 0 0 -
49 trang 67 0 0