Bài toán cây khung nhỏ nhất (lý THUYẾT đồ THỊ SLIDE)

60 59 0
Bài toán cây khung nhỏ nhất (lý THUYẾT đồ THỊ SLIDE)

Đ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

Chương Bài toán khung nhỏ The Minimum Spanning Tree Problem Nội dung 4.1 Cây tính chất 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Bài toán khung nhỏ Cõy v rng (Tree and Forest) Định nghĩa Ta gọi đồ thị vô h ớng liên thông chu trình Đồ thị chu trình đợc gọi rừng Nh vậy, rừng đồ thị mà thành phần liên thông T1 T2 Rng F gm T1, T2,, T3 T3 VÍ DỤ G1, G2 G3, G4 khơng Các tính chất  Định lý Giả sử T=(V,E) đồ thị vô hướng n đỉnh Khi mệnh đề sau tương đương: (1) T liên thơng khơng chứa chu trình; (2) T khơng chứa chu trình có n-1 cạnh; (3) T liên thơng có n-1 cạnh; (4) T liên thơng cạnh cầu; (5) Hai đỉnh T nối với đường đơn; (6) T không chứa chu trình thêm vào cạnh ta thu chu trình Nội dung 4.1 Cây tính chất 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Bài toán khung nhỏ Cây khung đồ thị  Định nghĩa Giả sử G=(V,E) đồ thị vô hướng liên thông Cây T=(V,F) với F E gọi khung đồ thị G b c a b d e G c a b d c a e T1 d e T2 Đồ thị G khung T1 T2 Số lượng khung đồ thị Arthur Cayley (1821 – 1895)  Định lý sau cho biết số lượng khung đồ thị đầy đủ Kn:  Định lý (Cayley) Số khung đồ thị Kn nn-2 b a c K3 a b c b c a c a b Ba khung K3 Bài toán hoá học hữu     Biểu diễn cấu trúc phân tử: Mỗi đỉnh tương ứng với nguyên tử Cạnh – thể liên kết nguyên tử Bài toán: Đếm số đồng phân cacbua hydro no chứa số nguyên tử cácbon cho trước H methane H propane C H C H H C H H C H H H H C H H C H H H H H ethane H C H H C H H C H H C H H butane H saturated hydrocarbons CnH2n+2 10 Mơ tả thuật tốn Prim procedure Prim(G, c) begin Chọn đỉnh tuỳ ý r V; Khởi tạo T=(V(T), E(T)) với V(T)={ r }và E(T)=; while T có < n đỉnh begin Gọi (u, v) cạnh nhẹ với u  V(T) vV(G) – V(T) E(T)  E(T)  { (u, v) }; V(T)  V(T)  { v } end end; Tính đắn suy từ hệ chứng minh: Giả sử A tập E tập tập cạnh CKNN G, C thành phần liên thông rừng F = (V, A) Nếu (u, v) cạnh nhẹ nối C với tplt khác F, (u, v) an tồn A 46 Cài đặt thuật tốn Prim i vi th dy Giả sử đồ thÞ cho bëi ma trËn träng sè C={c[i,j], i, j = 1, 2, , n} bớc để nhanh chóng chọn đỉnh cạnh cần bổ sung vào khung, đỉnh đồ thị đợc gán cho nhÃn NhÃn đỉnh v V-S có dạng [d[v], near[v]] : d[v] dùng để ghi nhận khoảng cách từ đỉnh v đến tập đỉnh S: d[v] := min{ c[v, w] : w  S } ( = c[v, z]),  near[v] := z ghi nhận đỉnh khung gần v 47 Thut tốn Prim procedure Prim; begin (* Bíc khëi t¹o *) S := { r }; T :=  ; d[r] := 0; near[r] := r for v  V \ S begin d[v] := c[r,v]; near[v] := r; end; (* Bíc lỈp *) for k:=2 to n begin Tìm u V\ S thoả mÃn: d[u] = { d[v] : v  V\ S }; S := S  { u }; T := T  { ( u, near[u] ) } ; for v V\ S if d[v] > c[u,v] then begin d[v] := c[u,v] ; near[v] := u; end; end; H = ( S , T ) khung nhỏ đồ thÞ ; end; Thời gian tính: O(|V|2) 48 Thuật tốn Prim – Ví dụ  Ví dụ: Tìm CKNN cho đồ thị cho ma trận trọng số C = 33 17    33 18 20   17 18 16   20 16   14    14 49 Thuật tốn Prim: Ví dụ Bước Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S Khởi tạo 50 Thuật tốn Prim: Ví dụ Đỉnh Khởi tạo [0, 1] Đỉnh [33, 1] Đỉnh [17, 1]* Đỉnh [, 1] Đỉnh [, 1] Đỉnh [, 1] S 1 51 Thuật tốn Prim: Ví dụ Đỉnh Khởi tạo Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S [0, 1] [33, 1] [17, 1]* [, 1] [, 1] [, 1] - [18, 3] - [16, 3] [4, 3]* [, 1] 1, 3 for v V\ S if d[v] > c[u,v] then d[v] := c[u,v] ; near[v] := u; 52 Thuật tốn Prim: Ví dụ Đỉnh Khởi tạo Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S [0, 1] [33, 1] [17, 1]* [, 1] [, 1] [, 1] 1 - [18, 3] - [16, 3] [4, 3]* [, 1] 1, - [18, 3] - [9,5]* - [14, 5] 1, 3, 5 for v V\ S if d[v] > c[u,v] then d[v] := c[u,v] ; near[v] := u; 53 Thuật tốn Prim: Ví dụ Đỉnh Khởi tạo Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S [0, 1] [33, 1] [17, 1]* [, 1] [, 1] [, 1] 1 - [18, 3] - [16, 3] [4, 3]* [, 1] 1, - [18, 3] - [9,5]* - [14, 5] 1, 3, - [18,3] - - - [8,4]* 1,3,5,4 for v V\ S if d[v] > c[u,v] then d[v] := c[u,v] ; near[v] := u; 54 Thuật toán Prim: Ví dụ Đỉnh Khởi tạo Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S [0, 1] [33, 1] [17, 1]* [, 1] [, 1] [, 1] 1 - [18, 3] - [16, 3] [4, 3]* [, 1] 1, - [18, 3] - [9,5]* - [14, 5] 1, 3, - [18,3] - - - [8,4]* 1,3,5,4 - [18,3]* - - - - 1,3,5,4,6 for v V\ S if d[v] > c[u,v] then d[v] := c[u,v] ; near[v] := u; 55 Thuật tốn Prim: Ví dụ Đỉnh Khởi tạo Đỉnh Đỉnh Đỉnh Đỉnh Đỉnh S [0, 1] [33, 1] [17, 1]* [, 1] [, 1] [, 1] 1 - [18, 3] - [16, 3] [4, 3]* [, 1] 1, - [18, 3] - [9,5]* - [14, 5] 1, 3, - [18,3] - - - [8,4]* 1,3,5,4 - [18,3]* - - - - 1,3,5,4,6 - - - - - - 1,3,5,4,6,2 Độ dài CKNN : 18 + 17 + + + = 56 Tập cạnh CKNN: {(2,3), (3,1), (4,5), (5,3), (6,4)} 56 Người đề xuất toán MST Otakar Borůvka Nhà khoa học Séc (Czech) Người đề xuất toán Đề xuất thuật toán thời gian O(m log n) Bài báo xuất Séc từ năm 1926 Ứng dụng vào việc phát triển hệ thống mạng điện Bohemia 57 Tăng tốc  O(m log n)  O(m log log n) Yao (1975), Cheriton-Tarjan (1976)  O(m  (m, n))  O(m log  (m, n)) Gabow-Galil-Spencer-Tarjan (1986)  O(m  (m, n))  Optimal Borůvka, Prim, Dijkstra, Kruskal,… Fredman-Tarjan (1987) Chazelle (JACM 2000) Pettie-Ramachandran (JACM 2002) 58 Questions? 59 60 ... 4.1 Cây tính chất 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Bài toán khung nhỏ Cây khung đồ thị  Định nghĩa Giả sử G=(V,E) đồ thị vô hướng liên thông Cây T=(V,F) với F E gọi khung. .. dung 4.1 Cây tính chất 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Bài tốn khung nhỏ 17 BÀI TỐN CÂY KHUNG NHỎ NHẤT Minimum Spanning Tree (MST) 18 Bài tốn CKNN Bài tốn: Cho đồ thị vơ... 4.1 Cây tính chất 4.2 Cây khung đồ thị 4.3 Xây dựng tập chu trình đồ thị 4.4 Bài toán khung nhỏ 11 Tập chu trình  Gi¶ sư G = (V, E) đơn đồ thị vô hớng liên thông, H=(V,T) khung Các cạnh đồ thị

Ngày đăng: 30/03/2021, 16:27

Mục lục

  • Chương 4 Bài toán cây khung nhỏ nhất

  • Cây và rừng (Tree and Forest)

  • Các tính chất cơ bản của cây

  • Cây khung của đồ thị

  • Số lượng cây khung của đồ thị

  • Bài toán trong hoá học hữu cơ

  • Tập các chu trình cơ bản

  • Ý nghĩa ứng dụng

  • Thuật toán xây dựng tập chu trình cơ bản

  • Bài toán cây khung nhỏ nhất

  • Ứng dụng thực tế: Mạng truyền thông

  • Bµi to¸n x©y dùng hÖ thèng ®­êng s¾t

  • Sơ đồ chung của các giải thuật

  • Lát cắt tương thích với tập cạnh

  • Cạnh nhẹ là cạnh an toàn!

  • Tại sao cạnh nhẹ là an toàn?

  • Tìm cạnh an toàn?

  • Thuật toán Kruskal – Ví dụ

  • Mô tả thuật toán Kruskal

  • Cách cài đặt hiệu quả

Tài liệu cùng người dùng

Tài liệu liên quan