TIẾP NỐI CHƯƠNG 2 CỦA SLISE MÔN TOÁN RỜI RẠC MÌNH XIN GỬI ĐẾN CÁC BẠN CHƯƠNG 3 MÌNH MONG RẰNG VỚI NHỮNG MẪU SLIDE NÀY SẼ GIÚP MỌI NGƯỜI DỄ DÀNG HƠN KHI HỌC TẬP VÀ THỰC HÀNH MÔN NÀY ..... ,,,,,,
CHƯƠNG 3: LÝ THUYẾT ĐỒ THỊ GV: Đặng Hữu Nghị Sđt: 0989640319 Email: nghidanghuu@gmail.com NỘI DUNG 3.1 •Các khái niệm lý thuyết đồ thị 3.2 •Biểu diễn đồ thị máy tính 3.3 •Các thuật tốn tìm kiếm đồ thị 3.4 •Đồ thị Euler đồ thị Hamilton 3.5 •Cây khung đồ thị 3.6 •Bài tốn đường ngắn 3.7 •Bài tốn luồng cực đại mạng 3.5.1 CÂY VÀ CÁC TÍNH CHẤT CƠ BẢN CỦA CÂY Định nghĩa: Cây đồ thị vô hướng liên thông, không chứa chu trình có hai đỉnh Một đồ thị vơ hướng khơng chứa chu trình có hai đỉnh gọi Rừng Trong Rừng, thành phần liên thông 3.5.1 CÂY VÀ CÁC TÍNH CHẤT CƠ BẢN CỦA CÂY Định lý: Cho T đồ thị có n ≥ đỉnh Các điều sau tương đương: 1) T 2) T liên thông có n−1 cạnh 3) T khơng chứa chu trình có n−1 cạnh 4) T liên thơng cạnh cầu 5) Giữa hai đỉnh phân biệt T ln có đường đơn 6) T khơng chứa chu trình thêm cạnh có chu trình BÀI TẬP Đồ thị đồ thị sau 3.5.2 CÂY KHUNG CỦA ĐỒ THỊ Trong đồ thị liên thông G, ta loại bỏ cạnh nằm chu trình ta đồ thị liên thông Nếu loại bỏ cạnh chu trình khác đồ thị khơng cịn chu trình (vẫn liên thơng) ta thu nối đỉnh G Cây gọi khung hay bao trùm đồ thị G Đị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 3.5.2 CÂY KHUNG CỦA ĐỒ THỊ Đồ thị khung 3.5.2 CÂY KHUNG CỦA ĐỒ THỊ Định lý sau cho biết số lượng khung đồ thị đầv đủ Kn Định lý (Cayley): Số khung đổ thị Kn nn-2 Định lý cho thấy số lượng khung đổ thị số lớn BÀI TẬP Hãy vẽ tất khung đồ thị sau: BÀI TẬP Đồ thị sau có khung, liết kê khung 10 3.5.5.3 CÂY QUYẾT ĐỊNH 85 3.5.5.3 CÂY QUYẾT ĐỊNH Bài tập 86 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật tốn viếng thăm đỉnh có gốc có thứ tự lần cách có hệ thống gọi thuật tốn duyệt ™ Có thuật tốn phổ thơng: Duyệt tiền tự (Preoder traversal) Duyệt trung tự (Inorder traversal) Duyệt hậu tự (Postorder traversal) 87 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật toán duyệt tiền tự Duyệt tất nút duyệt: Bước 1: Truy cập nút gốc Bước 2: Duyệt bên trái cách đệ qui Bước 3: Duyệt bên phải cách đệ qui 88 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật toán duyệt tiền tự void Preorder( thứ tự có gốc T); { r = gốc T; Thăm r; for (Mỗi c r từ trái sang phải ) { T(c) = Cây với gốc c Preorder( T(c) ) } } 89 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Ví dụ Duyệt tiền tự: a, b, c, d, e, f, g, h, o, k, l, m, n, p, q, s, t 90 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật toán duyệt trung tự Duyệt tất nút duyệt: Bước 1: Duyệt bên trái cách đệ qui Bước 2: Truy cập nút gốc Bước 3: Duyệt bên phải cách đệ qui 91 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật tốn duyệt trung tự void Inorder(cây thứ tự có gốc T) { r = gốc T if (r lá) Thăm r; else { s = từ trái sang phải r T(s) = Cây với gốc s; Inorder(T(s)); Thăm r; for (Mỗi c r từ trái sang phải trừ s) T(c) = Cây với gốc c Inorder(T(c)) } } 92 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Ví dụ Duyệt trung tự: d, c, e, b, a, g, f, h, m, l, n, k, o, p, s, q, t 93 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật toán duyệt hậu tự Duyệt tất nút duyệt: Bước 1: Duyệt bên trái cách đệ qui Bước 2: Duyệt bên phải cách đệ qui Bước 3: Truy cập nút gốc 94 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Thuật toán duyệt hậu tự Void Postorder( thứ tự có gốc T); { r = gốc T for (Mỗi c r từ trái sang phải) { T(c) = Cây với gốc c Postorder( T(c) ) } Thăm r } 95 3.5.5.4 CÁC PHƯƠNG PHÁP DUYỆT CÂY Ví dụ Duyệt hậu tự: d, e, c, b, g, h, f, m, n, l, k, p, s, t, q, o, a 96 BÀI TẬP Duyệt sau theo thứ tự tiền, trung, hậu tự 97 CÂY BIỂU THỨC 98 CÂY BIỂU THỨC Cây biểu diễn biểu thức (6 / + 3) * (7 - 4) sau: Dạng tiền tố (prefix) biểu thức: * + / - Dạng trung tố (infix) biểu thức: / + * – Dạng hậu tố (postfix) biểu thức: / + - * 99 ... thông Cây T= (V ,F) với F E gọi khung đồ thị G 3. 5. 2 CÂY KHUNG CỦA ĐỒ THỊ Đồ thị khung 3. 5. 2 CÂY KHUNG CỦA ĐỒ THỊ Định lý sau cho biết số lượng khung đồ thị đầv đủ Kn Định lý (Cayley): Số khung. .. DUNG 3. 1 •Các khái niệm lý thuyết đồ thị 3. 2 •Biểu diễn đồ thị máy tính 3. 3 •Các thuật tốn tìm kiếm đồ thị 3. 4 ? ?Đồ thị Euler đồ thị Hamilton 3. 5 ? ?Cây khung đồ thị 3. 6 •Bài tốn đường ngắn 3. 7 •Bài... e 14 3. 5. 2 CÂY KHUNG CỦA ĐỒ THỊ Ví dụ: Tìm khung đồ thị sau 11 12 10 13 15 3. 5. 2 CÂY KHUNG CỦA ĐỒ THỊ procedue STREE_BFS(r); (* Tìm kiếm theo chiều rộng áp dụng tìm tập cạnh khung T đồ thị vô