Bài giảng Lý thuyết đồ thị - Bài 5: Cây khung của đồ thị

17 92 0
Bài giảng Lý thuyết đồ thị - Bài 5: Cây khung của đồ thị

Đ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

Bài giảng Lý thuyết đồ thị - Bài 5: Cây khung của đồ thị cung cấp cho người học các kiến thức: Cây khung của đồ thị, đồ thị có trọng số, bài toán cây khung nhỏ nhất, thuật toán Prim, thuật toán Kruskal,... Mời các bạn cùng tham khảo nội dung chi tiết.

Bài Cây khung đồ thị Bài toán mở đầu     Hệ thống đường giao thông Maine hình bên Tuyết phủ tồn đường Cần khôi phục lại hệ thống cách cào tuyết số đường Không thiết phải cào tuyết hết đường Cây khung  Định nghĩa: Cho G đơn đồ thị Một T gọi khung G nếu: T đồ thị G  T chứa tất đỉnh G   VD: Đồ thị khung Cây khung (tt)   Định lý: Một đơn đồ thị liên thơng có khung Chứng minh: Nếu G có chứa khung tính chất khung liên thơng khung chứa tất đỉnh G Suy đỉnh G nối với hay G liên thông  Xét G liên thông Giả sử G cịn tồn chu trình, xóa bớt cạnh chu trình này, đồ thị cịn liên thơng Nếu cịn chu trình lặp lại bước Cứ khơng cịn chu trình Khi ta khung  Đồ thị có trọng số Đồ thị có trọng số: đồ thị mà cạnh gán với số thực chi phí phải tốn qua cạnh  Ký hiệu: c(u,v) trọng số cạnh (u,v)  Trọng số âm, dương tùy theo ứng dụng VD:  -3 6 Đồ thị có trọng số (tt)   Đồ thị có trọng số biểu diễn ma trận kề trọng số Cụ thể, Cho đồ thị G = , với V = {v 1, v2, …, vn} Ma trận kề trọng số biểu diễn G ma trận vng A, kích thước nxn, xác định sau: Aij = c(vi , v j ), (vi , v j ) E , (vi , v j ) E Đồ thị có trọng số (tt)  VD: 5 -3 A= 7 −3 −3          Bài toán khung nhỏ  Tìm đường để cào tuyết cho chi phí 20 nhỏ 15 15 10 10 20 10 15 20 15 15 10 10 59 70 Bài toán khung nhỏ (tt)   Định nghĩa Cho đồ thị có trọng số G Cây khung nhỏ G (nếu tồn tại) khung có tổng trọng số nhỏ số khung G Các thuật tốn tìm khung nhỏ nhất: Thuật toán Prim  Thuật toán Kruskal  Thuật toán Prim  Ý tưởng: Xuất phát từ đỉnh Đưa đỉnh vào khung T  Tại bước, ln chọn cạnh có trọng số nhỏ số cạnh liên thuộc với đỉnh T (đỉnh cịn lại nằm ngồi T)  Đưa cạnh chọn đỉnh đầu vào T  Lặp lại trình đưa đủ n-1 cạnh vào T  10 Thuật toán Prim (tt) 20 E 15 10 15 10 H O R B A E O 10 H A R B 11 Thuật toán Prim (tt)  Để biểu diễn lời giải, ta sử dụng mảng: Mảng d: d[v] dùng để lưu độ dài cạnh ngắn nối với v số cạnh chưa xét  Mảng near: near[v] dùng để lưu đỉnh lại cạnh ngắn nói v d[v] near[v]  E O 10 H A B R E 0 B E A B H A R B O 10 R 12 Thuật toán Prim (tt) (* Khởi tạo *) Chọn s đỉnh đồ thị VH := {s}; (* Tập đỉnh đưa vào *) T := ; (* Tập cạnh *) d[s] = 0; near[s] = s; For v V\VH Begin d[v] := a[s,v]; near[v] := s; End; (* Bước lặp *) Stop := False; While (not Stop) Begin Tìm u V\VH thỏa mãn d[u] = min{d[v]: v V\VH}; VH := VH {u}; T := T { (u, near[u]) }; If |VH| = n then Begin H := (VH, T) khung đồ thị Stop := True; End; Else For v V\VH If d[v] > a[u,v] then Begin d[v] := c[u,v]; near[v] := u; End; End; 13 Thuật toán Prim (tt) 20 33 18 4 16 17 18 17 14 Đỉnh 5 Đỉnh 6 VH [ ,1] [ ,1] [ ,1] ­ ­ ­ [16,3] [9.5]* ­ [4,3]* ­ ­ [ ,1] [14,5] [8,4]* 1,3 1,3,5 1,3,5,4 [18,3]* ­ ­ ­ ­ 1,2,3,4,6 ­ ­ ­ ­ ­ 1,2,3,4,6,2 Bước lặp Đỉnh 1 Đỉnh 2 Đỉnh 3 Đỉnh 4 Khởi tạo [0,1] [33,1] [17,1]* ­ ­ ­ [18,3] [18,3] [18,3] ­ ­ T (3,1) (3,1),(5,3) (3,1),(5,3),(4.5) (3,1),(5,3),(4.5) (6,4) (3,1),(5,3),(4.5) (6,4),(2,3) 14 Thuật toán Kruskal  Ý tưởng: Lần lượt xét cạnh theo thứ tự trọng số tăng dần  Ứng với cạnh xét, ta thử đưa vào khung T:   Nếu khơng tạo thành chu trình với cạnh chọn chấp nhận cạnh đưa vào  Nếu tạo thành chu trình với cạnh chọn bỏ qua xét cạnh  Cứ tiếp tục tìm đủ n-1 cạnh để đưa vào T 15 Thuật toán Kruskal (tt) 15 10 15 10 H O 20 E R B A E O 10 H A R B 16 Thuật toán Kruskal (tt) 33 18 20 16 4 17 18 17 14 5 Trọng số Cạnh (3,5) Chọn (4,6) Chọn (4,5) Chọn 14 (5,6) Khơng chọn tạo chu trình: 16 (3,4) 17 (1,3) Khơng chọn tạo chu trình: Chọn 18 (2,3) Chọn Dừng đủ cạnh 20 (2,4) 33 (1,2) 17 ... đơn đồ thị Một T gọi khung G nếu: T đồ thị G  T chứa tất đỉnh G   VD: Đồ thị khung Cây khung (tt)   Định lý: Một đơn đồ thị liên thông có khung Chứng minh: Nếu G có chứa khung tính chất khung. .. ta khung  Đồ thị có trọng số Đồ thị có trọng số: đồ thị mà cạnh gán với số thực chi phí phải tốn qua cạnh  Ký hiệu: c(u,v) trọng số cạnh (u,v)  Trọng số âm, dương tùy theo ứng dụng VD:  -3 ... v j ) E Đồ thị có trọng số (tt)  VD: 5 -3 A= 7 −3 −3          Bài tốn khung nhỏ  Tìm đường để cào tuyết cho chi phí 20 nhỏ 15 15 10 10 20 10 15 20 15 15 10 10 59 70 Bài toán khung nhỏ

Ngày đăng: 25/10/2020, 18:13

Từ khóa liên quan

Mục lục

  • Bài 5

  • Bài toán mở đầu

  • Cây khung

  • Cây khung (tt)

  • Đồ thị có trọng số

  • Đồ thị có trọng số (tt)

  • Slide 7

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

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

  • Thuật toán Prim

  • Thuật toán Prim (tt)

  • Slide 12

  • Slide 13

  • Slide 14

  • Thuật toán Kruskal

  • Thuật toán Kruskal (tt)

  • Slide 17

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

Tài liệu liên quan