1. Trang chủ
  2. » Thể loại khác

Slide bài giảng Toán rời rạc 2 – Vũ Văn Thỏa

25 164 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

Thông tin cơ bản

Định dạng
Số trang 25
Dung lượng 354,97 KB

Nội dung

CH NG CÂY VÀ CÂY KHUNG Đ TH N I DUNG:  Định nghĩa tính chất  Xây dựng khung đồ thị  Bài tốn tìm khung nhỏ 5.1 Đ nh nghĩa tính chất c Cây tự - Cây tự (không gốc) T đồ thị vô hứng liên thông v̀ không ć chu tr̀nh đơn - Đồ thị F rừng  thành phần liên thông F - Đồ thị F rừng  F khơng có chu trình đơn Cây tự (không gốc) Đ nh lý 1: T= (V, E) đồ thị vô hứng có n đỉnh Các mệnh đề sau tương đương: (1) T cây; (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 T cầu ; (5) Hai đỉnh T có đường nối đến ; (6) T khơng chứa chu trình thêm cạnh thu chu trình Cây có g c Đ nh nghĩa 1: Cây tập hợp hữu hạn nút thỏa mãn: - Có nút gọi gốc - Có quan hệ phân cấp “cha-con” nút Đ nh nghĩa (đệ qui): - Nếu T gồm nút  T v́i gốc l̀ nút đ́ - Nếu T1, …, Tn (n  1) có gốc tương ứng r1, …, rn  T v́i gốc r tạo thành cách cho r thành nút cha nút r1, …, rn Cây có gốc tam phân Các mức Các ví dụ cây: - Mục lục sách - Cấu trúc thư mục đĩa máy tính - Dùng để biểu diễn biểu thức số học M t s khái niệm: - Nút g c: nút T khơng có cha - Nút cha: Nút r cha nút r1, , rn  Nút gốc nút nút cha - Nút con: Các nút r1, …, rn gọi nút r - Bậc m t nút: số nút nút đ́ - Bậc m t T: bậc ĺn nút  T T có bậc m  T gọi m-phân Nút lá: l̀ nút ć bậc =  nút khơng có nút Nút nhánh (nút hay nút trung gian): l̀ nút vừa ć vừa ć cha T m-phơn đầy đủ  nút nhánh ć m - Cây con: M i có g c nút a  T m t T - Đ ờng đi: Dãy đỉnh r1, …, rk, đ́ ri cha ri+1 gọi l̀ đường từ r1 đến rk Độ dài đường l̀ số nút đường -1 (Đường ć độ dài k-1) - Mức nút: l̀ độ d̀i đường từ gốc đến nút (độ cao nút)  Nút gốc có mức - Chiều cao cây: mức ĺn nút  T - Cơy đ ợc thứ tự: mà theo thứ tự ǹo đ́ - Cây gán nhãn: mà đỉnh gắn v́i giá trị (nhãn) Cây nh phân: Cây nhị phân mà nút có khơng q Phân biệt bên trái bên phải Đ nh nghĩa cơy khung Đ nh nghĩa Cho G l̀ đơn đồ thị Một T gọi l̀ khung G  T l̀ đồ thị G v̀ chứa tất đỉnh G Đồ thị G Một khung T G Đ nh ĺ Một đơn đồ thị l̀ liên thông v̀ ń ć khung Ch́ng minh Giả s̉ đồ thị G ć khung T chứa tất đỉnh G ć đường T hai đỉnh  ć đường G hai đỉnh ń  G l̀ liên thông Giả s̉ G l̀ liên thông Nếu G l̀ th̀ G ć chu tr̀nh đơn X́a cạnh chu tr̀nh đơn ǹy Đồ thị nhận chứa số cạnh ṽn c̀n chứa tất đỉnh G v̀ liên thông Nếu đồ thị ǹy l̀ th̀ ń chứa chu tr̀nh đơn C̃ng giống trên, x́a cạnh chu tr̀nh đơn Ḷp lại tr̀nh ǹy không c̀n chu tr̀nh đơn Điều ǹy ć thể v̀ ć hữu hạn cạnh đồ thị Đồ thị cuối sau x́a cạnh chu tr̀nh l̀ khung 10 5.2 Bài tốn tìm khung 1) Đặt bƠi toán: Input: Đồ thị G gồm n đỉnh cho danh sách kề; Đỉnh u; Output: Cây khung T G đỉnh u; 11 Xơy dựng khung thuật toán DFS Thuật toán TreeDfs(u): - Tạo T thuật toán DFS đỉnh u; - Nếu số đỉnh T n th̀ xuất kết T; - Nếu số đỉnh T nhỏ n th̀ xuất thơng báo: Khơng có khung.; Đ phức tạp tính tốn: Giải thuật t̀m khung ć độ phức tạp O(n) 12 Ví dụ: T̀m khung đồ thị G cho dứi đây: - Tìm kiếm theo chiều sâu 1: T = {(1, 3), (2, 3), (3, 4), (4, 5), (5, 6), (6, 7), (7, 8), (8, 9), (9, 11), (8, 10)} - Tìm kiếm theo chiều rộng 1: T = {(1, 3), (2, 3), (3,4), (4, 5), (4, 6), (6, 7), (6, 8), (8, 9), (8, 10), (9, 11)} Ghi chú: - Cây khung T tìm kiếm theo chiều rộng gồm đường ngắn xuất phát từ đến đỉnh khác - Đồ thị đầy đủ Kn có nn-2 khung khác 13 Xơy dựng khung thuật toán BFS Thuật toán TreeBfs(u): - Tạo T thuật toán BFS đỉnh - Nếu số đỉnh T n th̀ xuất kết T - Nếu số đỉnh T nhỏ n th̀ xuất thông báo: Không ć khung Đ phức tạp tính tốn: Giải thuật t̀m khung ć độ phức tạp O(n) 14 5.3 BƠi tốn tìm cơy khung nhỏ Cơy khung nhỏ Cho đồ thị vô hứng ć trọng số G = (V, E) Gọi T l̀ câu khung G Trọng số WT T l̀ t̉ng trọng số cạnh thuộc Cây khung T khung nh̉ nh́t  WT có giá trị nhỏ Điều kiện: G ć khung nhỏ  G liên thông; 15 Thuật tốn tìm cơy khung nhỏ nhất: Thuật toán Thuật toán Prim Đồ thị G = (V, E) gồm n đỉnh cho ma trận trọng số a[i][j]; Đỉnh s  G; Output: Cây khung nhỏ T v̀ WT; Input: Khởi tạo: T= ; VT = {s}; WT= 0; while (V\VT ≠) { ; if (T̀m e) {T = T  e; WT= WT + trọng số e; VT = VT  {v}; } else return (G khơng có khung); } return (T WT); 16 Ví dụ Dùng thuật toán Prim, t̀m khung nhỏ đồ thị G s = b; Gỉi Khởi tạo T = ; VT = {b}; WT = 0; Cây khung nhỏ xây dựng thuật toán Prim thể bảng sau: 17 a B ́c cḥn 10 11 Cạnh đ ợc cḥn b,f a,b f,j a,e f,g c,g c,d g,h h,l i,j k,l Tṛng s 2 3 3 WT 11 13 14 17 20 23 24 Kết luận: T = { (b,f), (a,b), (f,j), (a,e), (f,g), (c,g), (c,d), (g,h), (i,j) (h,l), (k,l) } WT = 24 18 CƠi đặt: int n, a[100][100], s; int vt[100], d[100], t[100]; void Prim() {for (int i= 1; i

Ngày đăng: 23/11/2017, 18:26

TỪ KHÓA LIÊN QUAN