1. Trang chủ
  2. » Tất cả

Cây khung nhỏ nhất ch09 minspantrees

29 0 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Minimum spanning tree Caây Khung Nhoû Nhaát Ch 9 Cay khung nho nhat 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 E  R Tìm moät taäp con khoâng ch[.]

Cây Khung Nhỏ Nhất Cây khung nhỏ ª ª Cho – đồ thị liên thông, vô hướng G = (V, E ) – hàm trọng số w:ER Tìm tập không chứa chu trình T  E nối tất đỉnh cho tổng trọng số w(T) = (u, v)  T w(u, v) • ª nhỏ – Tập T làø cây, gọi khung nhỏ Bài toán tìm khung nhỏ nhất: toán tìm T 13.11.2004 Ch 9: Cay khung nho nhat Caây khung nhỏ (tiếp) ª Giải toán tìm khung nhỏ – Giải thuật Kruskal – Giải thuật Prim 13.11.2004 Ch 9: Cay khung nho nhat Cây khung nhỏ nhất: ví dụ a 11 8 b h i c g d e 14 f 10 Tập cạnh xám khung nhỏ ° Trọng số tổng cộng 37 ° Cây không nhất: thay cạnh (b, c) cạnh (a, h) khung khác có trọng số 37 ° 13.11.2004 Ch 9: Cay khung nho nhat Cạnh an toàn ª ª ª Cho đồ thị liên thông, vô hướng G = (V, E ) hàm trọng số w : E  R Tìm khung nhỏ cho G! Giải toán chiến lược greedy: nuôi khung lớn dần cách thêm vào cạnh Định nghóa cạnh an toàn Nếu A tập khung nhỏ đó, (u, v) cạnh G cho tập A  {(u, v)} tập khung nhỏ đó, (u, v) cạnh an toàn cho A 13.11.2004 Ch 9: Cay khung nho nhat Một giải thuật tổng quát (generic) ª Một giải thuật tổng quát (generic) để tìm khung nhỏ – Input: đồ thị liên thông, vô hướng G hàm trọng số w cạnh G – Output: Một khung nhỏ cho G GENERIC-MST(G, w) A while A không khung nhỏ tìm cạnh (u, v) an toaøn cho A A  A  {(u, v)} return A 13.11.2004 Ch 9: Cay khung nho nhat Phép cắt ª ª Các khái niệm quan trọng Một phép cắt (S, V  S) G = (V, E ) phân chia (partition) V Ví dụ: S = {a, b, d, e} đồ thị sau Một cạnh (u, v)  E xuyên qua (cross) phép cắt (S, V  S) đỉnh nằm S đỉnh nằm V  S Ví dụ: cạnh (b, c) S VS 13.11.2004 a b 11 h c i d g 14 e 10 f Ch 9: Cay khung nho nhat Cạnh nhẹ (light edge) ª ª Các khái niệm quan trọng (tiếp) Một phép cắt bảo toàn tập cạnh A (respects A) cạnh A xuyên qua phép cắt Một cạnh cạnh nhẹ vượt qua phép cắt trọng số nhỏ trọng số cạnh xuyên qua phép cắt Ví dụ: cạnh (c, d) S VS 13.11.2004 a 11 8 b h i c g d 14 e 10 f Ch 9: Cay khung nho nhat Nhận cạnh an toàn Định lý 24.1 Cho ° G = (V, E) đồ thị liên thông, vô hướng ° w hàm trọng số E ° A tập khung nhỏ cho G ° (S, V  S) phép cắt G bảo toàn A ° (u, v) cạnh nhẹ vượt qua (S, V  S)  cạnh (u, v) an toàn cho A Chứng minh 13.11.2004 Ch 9: Cay khung nho nhat Nhận cạnh an toàn (tiếp) ° S: tập đỉnh đen, V  S: tập đỉnh trắng ° Các cạnh khung nhỏ T vẽ hình, cạnh G không ° A: tập cạnh xám ° Cạnh (u, v) cạnh nhẹ xuyên qua phép cắt (S, V  S) ° p đường từ u đến v T x u p y v 13.11.2004 Ch 9: Cay khung nho nhat 10 Thực thi giải thuật Kruskal (tiếp) (c) a b 11 h 13.11.2004 c i 4 g 7 d f 10 11 14 (d) e 14 10 a 11 8 b h Ch 9: Cay khung nho nhat i c g d e 14 f 10 15 Thực thi giải thuật Kruskal (tiếp) (e) a 11 (g) a i g h 13.11.2004 i g d f d 10 a Ch 9: Cay khung nho nhat g i g d e 14 c b h i c h 11 8 b 11 (h) e f a 10 14 (f) e 14 c b c h 11 8 b f 10 d e 14 10 f 16 Thực thi giải thuật Kruskal (tieáp) (i) a 11 (k) a i g h 13.11.2004 i g d f d 10 a Ch 9: Cay khung nho nhat g i g d e 14 c b h i c h 11 8 b 11 (l) e f a 10 14 (j) e 14 c b c h 11 8 b f 10 d e 14 10 f 17 Thực thi giải thuật Kruskal (tieáp) (m) b a 11 4 h 13.11.2004 c i 6 g 7 d f 10 11 14 (n) e 14 10 a 11 8 b h Ch 9: Cay khung nho nhat i c g d e 14 10 f 18 Phân tích giải thuật Kruskal ª ª Dùng cấu trúc liệu tập rời (disjoint sets), chương 22, với heuristics – Hợp theo thứ hạng (union-by-rank) – Nén đường dẫn (path-compression) Nhận xét (cần đến đánh giá thời gian chạy) – Giải thuật gọi V lần MAKE-SET gọi tổng cộng O(E) lần thao tác MAKE-SET, UNION, FINDSET – Vì G liên thông nên E  V  13.11.2004 Ch 9: Cay khung nho nhat 19 Phân tích giải thuật Kruskal (tieỏp) ê ã Thụứi gian chaùy cuỷa MST-KRUSKAL gom – Khởi động: O(V) – Sắp xếp dòng 4: O(E lg E) – Doøng 5-8: O(E (E, V)) (xem nhận xét), = O(E lg E) (E, V) = O(lg E) Vậy thời gian chạy MST-KRUSKAL O(E lg E) 13.11.2004 Ch 9: Cay khung nho nhat 20 ... v) ã ê laứ nhoỷ – Tập T làø cây, gọi khung nhỏ Bài toán tìm khung nhỏ nhất: toán tìm T 13.11.2004 Ch 9: Cay khung nho nhat Cây khung nhỏ (tiếp) ª Giải toán tìm khung nhỏ – Giải thuật Kruskal –... 13.11.2004 Ch 9: Cay khung nho nhat Cây khung nhỏ nhất: ví dụ a 11 8 b h i c g d e 14 f 10 Tập cạnh xám khung nhỏ ° Trọng số tổng cộng 37 ° Cây không nhất: thay cạnh (b, c) cạnh (a, h) khung khác có... tổng quát (generic) để tìm khung nhỏ – Input: đồ thị liên thông, vô hướng G hàm trọng số w cạnh G – Output: Một khung nhỏ cho G GENERIC-MST(G, w) A while A không khung nhỏ tìm cạnh (u, v) an toàn

Ngày đăng: 25/03/2023, 08:37

w