Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 9
lượt xem 2
download
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 9 có nội dung trình bày về cây khung nhỏ nhất, định nghĩa cạnh an toàn, giải thuật tổng quát, phép cắt, định nghĩa cạnh nhẹ, giải thuật của Kruskal, và cách thực thi giải thuật của Kruskal,... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 9
- Caây Khung Nhoû Nhaát
- Caây khung nhoû nhaát ª Cho – moät ñoà thò lieân thoâng, voâ höôùng G = (V, E ) – moät haøm troïng soá w:ER ª Tìm moät taäp con khoâng chöùa chu trình T E noái taát caû caùc ñænh sao cho toång caùc troïng soá w(T) = (u, v) T w(u, v) laø nhoû nhaát. – Taäp T laøø moät caây, vaø ñöôïc goïi laø moät caây khung nhoû nhaát. ª Baøi toaùn tìm caây khung nhoû nhaát: baøi toaùn tìm T. 13.11.2004 Ch. 9: Cay khung nho nhat 2
- Caây khung nhoû nhaát (tieáp) ª Giaûi baøi toaùn tìm caây khung nhoû nhaát – Giaûi thuaät cuûa Kruskal – Giaûi thuaät cuûa Prim. 13.11.2004 Ch. 9: Cay khung nho nhat 3
- Caây khung nhoû nhaát: ví duï 8 7 b c d 4 2 9 a 11 i 4 14 e 7 6 8 10 h g f 1 2 ° Taäp caùc caïnh xaùm laø moät caây khung nhoû nhaát ° Troïng soá toång coäng cuûa caây laø 37. ° Caây laø khoâng duy nhaát: neáu thay caïnh (b, c) baèng caïnh (a, h) seõ ñöôïc moät caây khung khaùc cuõng coù troïng soá laø 37. 13.11.2004 Ch. 9: Cay khung nho nhat 4
- Caïnh an toaøn ª Cho moät ñoà thò lieân thoâng, voâ höôùng G = (V, E ) vaø moät haøm troïng soá w : E R. Tìm moät caây khung nhoû nhaát cho G! ª Giaûi baøi toaùn baèng moät chieán löôïc greedy: nuoâi moät caây khung lôùn daàn baèng caùch theâm vaøo caây töøng caïnh moät. ª Ñònh nghóa caïnh an toaøn Neáu A laø moät taäp con cuûa moät caây khung nhoû nhaát naøo ñoù, neáu (u, v) laø moät caïnh cuûa G sao cho taäp A {(u, v)} vaãn coøn laø moät taäp con cuûa moät caây khung nhoû nhaát naøo ñoù, thì (u, v) laø moät caïnh an toaøn cho A. 13.11.2004 Ch. 9: Cay khung nho nhat 5
- Moät giaûi thuaät toång quaùt (generic) ª Moät giaûi thuaät toång quaùt (generic) ñeå tìm moät caây khung nhoû nhaát – Input: moät ñoà thò lieân thoâng, voâ höôùng G moät haøm troïng soá w treân caùc caïnh cuûa G – Output: Moät caây khung nhoû nhaát cho G. GENERIC-MST(G, w) 1 A 2 while A khoâng laø moät caây khung nhoû nhaát 3 do tìm caïnh (u, v) an toaøn cho A 4 A A {(u, v)} 5 return A 13.11.2004 Ch. 9: Cay khung nho nhat 6
- Pheùp caét Caùc khaùi nieäm quan troïng ª Moät pheùp caét (S, V S) cuûa G = (V, E ) laø moät phaân chia (partition) cuûa V. Ví duï: S = {a, b, d, e} trong ñoà thò sau. ª Moät caïnh (u, v) E xuyeân qua (cross) moät pheùp caét (S, V S) neáu moät ñænh cuûa noù naèm trong S vaø ñænh kia naèm trong V S. Ví duï: caïnh (b, c). 8 7 b c d 4 2 9 a 11 i 4 14 e S 7 6 10 8 VS h g f 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 7
- Caïnh nheï (light edge) Caùc khaùi nieäm quan troïng (tieáp) ª Moät pheùp caét baûo toaøn taäp caùc caïnh A (respects A) neáu khoâng coù caïnh naøo cuûa A xuyeân qua pheùp caét. ª Moät caïnh laø moät caïnh nheï vöôït qua pheùp caét neáu troïng soá cuûa noù laø nhoû nhaát trong moïi troïng soá cuûa caùc caïnh xuyeân qua pheùp caét. Ví duï: caïnh (c, d). 8 7 b c d 4 2 9 a 11 i 4 e S 7 6 14 8 10 VS h g f 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 8
- Nhaän ra moät caïnh an toaøn Ñònh lyù 24.1 Cho G = (V, E) laø moät ñoà thò lieân thoâng, voâ höôùng ° ° w laø moät haøm troïng soá treân E ° A laø moät taäp con cuûa moät caây khung nhoû nhaát cho G ° (S, V S) laø moät pheùp caét baát kyø cuûa G baûo toaøn A ° (u, v) laø moät caïnh nheï vöôït qua (S, V S) caïnh (u, v) laø an toaøn cho A. Chöùng minh 13.11.2004 Ch. 9: Cay khung nho nhat 9
- Nhaän ra moät caïnh an toaøn (tieáp) ° S: taäp caùc ñænh ñen, V S: taäp caùc ñænh traéng ° Caùc caïnh cuûa moät caây khung nhoû nhaát T ñöôïc veõ ra trong hình, coøn caùc caïnh cuûa G thì khoâng ° A: taäp caùc caïnh xaùm ° Caïnh (u, v) laø caïnh nheï xuyeân qua pheùp caét (S, V S). ° p laø ñöôøng ñi duy nhaát töø u ñeán v trong T. x u y p v 13.11.2004 Ch. 9: Cay khung nho nhat 10
- Nhaän ra moät caïnh an toaøn (tieáp) ° Ñònh nghóa caây khung T’ = T (x, y) (u, v) T’ laø caây khung nhoû nhaát vì w(T’) = w(T) w(x, y) + w(u, v) w(T), vì w(u, v) w(x, y) ° (u, v) laø an toaøn cho A vì A (u, v) T’ . x p u y v 13.11.2004 Ch. 9: Cay khung nho nhat 11
- Nhaän ra moät caïnh an toaøn (tieáp) Heä luaän 24.2 Cho ° G = (V, E ) laø moät ñoà thò lieân thoâng, voâ höôùng vôùi moät haøm troïng soá w treân E ° A laø moät taäp con cuûa E sao cho A naèm trong moät caây khung nhoû nhaát cho G ° C = (VC , EC ) laø moät thaønh phaàn lieân thoâng (caây) trong röøng GA = (V, A). Thì, neáu (u, v) laø moät caïnh nheï noái C vôùi moät thaønh phaàn khaùc trong GA (u, v) laø an toaøn cho A. Chöùng minh Pheùp caét (VC , V VC ) baûo toaøn A, do ñoù (u, v) laø moät caïnh nheï ñoái vôùi pheùp caét naøy. 13.11.2004 Ch. 9: Cay khung nho nhat 12
- Giaûi thuaät cuûa Kruskal ª Giaûi thuaät cuûa Kruskal – döïa treân giaûi thuaät GENERIC-MST, maø A ban ñaàu laø moät röøng maø moãi caây chæ chöùa moät ñænh cuûa G. MST-KRUSKAL(G, w) 1 A 2 for moãi ñænh v V[G] 3 do MAKE-SET(v) 4 xeáp caùc caïnh E theo thöù töï troïng soá w khoâng giaûm 5 for moãi caïnh (u, v) E, theo thöù töï troïng soá khoâng giaûm 6 do if FIND-SET(u) FIND-SET(v) 7 then A A {(u, v)} 8 UNION(u, v) 9 return A ª moãi taäp rôøi nhau chöùa caùc ñænh cuûa moät caây trong röøng hieän thôøi. 13.11.2004 Ch. 9: Cay khung nho nhat 13
- Thöïc thi giaûi thuaät cuûa Kruskal Caùc caïnh ñöôïc xeáp theo thöù töï troïng soá khoâng giaûm: 1 2 2 4 4 6 7 7 8 8 9 10 11 14 8 7 8 7 (a) b c d (b) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 14
- Thöïc thi giaûi thuaät cuûa Kruskal (tieáp) 1 2 2 4 4 6 7 7 8 8 9 10 11 14 8 7 8 7 (c) b c d (d) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 15
- Thöïc thi giaûi thuaät cuûa Kruskal (tieáp) 8 7 8 7 (e) b c d (f) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 8 7 8 7 (g) b c d (h) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 16
- Thöïc thi giaûi thuaät cuûa Kruskal (tieáp) 8 7 8 7 (i) b c d (j) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 8 7 8 7 (k) b c d (l) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 17
- Thöïc thi giaûi thuaät cuûa Kruskal (tieáp) 1 2 2 4 4 6 7 7 8 8 9 10 11 14 8 7 8 7 (m) b c d (n) b c d 4 2 9 4 2 9 a 11 i 4 14 e a 11 i 4 14 e 7 6 7 6 8 10 8 10 h g f h g f 1 2 1 2 13.11.2004 Ch. 9: Cay khung nho nhat 18
- Phaân tích giaûi thuaät cuûa Kruskal ª Duøng caáu truùc döõ lieäu caùc taäp rôøi nhau (disjoint sets), chöông 22, vôùi caùc heuristics – Hôïp theo thöù haïng (union-by-rank) – Neùn ñöôøng daãn (path-compression). ª Nhaän xeùt (caàn ñeán khi ñaùnh giaù thôøi gian chaïy) – Giaûi thuaät goïi V laàn MAKE-SET vaø goïi toång coäng O(E) laàn caùc thao taùc MAKE-SET, UNION, FIND-SET. – Vì G lieân thoâng neân |E| |V| 1. 13.11.2004 Ch. 9: Cay khung nho nhat 19
- Phaân tích giaûi thuaät cuûa Kruskal (tieáp) ª Thôøi gian chaïy cuûa MST-KRUSKAL goàm – Khôûi ñoäng: O(V) – Saép xeáp ôû doøng 4: O(E lg E) – Doøng 5-8: O(E (E, V)) (xem nhaän xeùt), = O(E lg E) vì (E, V) = O(lg E). Vaäy thôøi gian chaïy cuûa MST-KRUSKAL laø O(E lg E). 13.11.2004 Ch. 9: Cay khung nho nhat 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Cấu trúc dữ liệu - Bài 1:Tổng quan về cấu trúc dữ liệu và giải thuật
47 p | 175 | 17
-
Bài giảng Cấu trúc dữ liệu 1: Chương 1 - Lương Trần Hy Hiến
7 p | 162 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật trong C++ - Bài 8: Cấu trúc dữ liệu ngăn xếp
28 p | 77 | 9
-
Bài giảng Cấu trúc dữ liệu giải thuật: Các kiểu dữ liệu trừu tượng cơ bản - Cấu trúc dữ liệu tuyến tính
92 p | 116 | 9
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây đỏ đen - Bùi Tiến Lên
25 p | 81 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 17: Cấu trúc dữ liệu dạng cây
21 p | 77 | 8
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Các cấu trúc dữ liệu
193 p | 58 | 7
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (2016)
62 p | 94 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 - Trần Minh Thái (Trường Đại học Hồng Bàng )
62 p | 159 | 6
-
Bài giảng Cấu trúc dữ liệu - Chương 3: Cấu trúc cây
65 p | 58 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AA - Bùi Tiến Lên
30 p | 35 | 6
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 1 – Trần Minh Thái (2017)
67 p | 106 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây - Bùi Tiến Lên
68 p | 40 | 4
-
Bài giảng Cấu trúc dữ liệu: Chương 1 - ThS. Thiều Quang Trung (2018)
44 p | 43 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Cấu trúc dữ liệu cây AVL - Bùi Tiến Lên
38 p | 47 | 4
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - Ngô Quang Thạch
24 p | 58 | 3
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Th.S Thiều Quang Trung
41 p | 68 | 3
-
Bài giảng Cấu trúc dữ liệu giải thuật: Cấu trúc dữ liệu
17 p | 50 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn