Bài giảng Toán rời rạc: Chương 7 Lý thuyết đồ thị cung cấp cho người học những kiến thức như: Lý thuyết đồ thị được khởi đầu từ vài trăm năm trước (1736 với bài toán 7 cây cầu thành Konigsberg – Nga, và được gắn với các tên tuổi lớn như Euler, Gauss, Hamilton..); Đường một nét Euler, chu trình Hamilton; Tìm đường đi ngắn nhất, Dijkstra; Cây khung nhỏ nhất, Prim, Kruskal.
TOÁN RỜI RẠC (DISCRETE MATHEMATICS) Bùi Thị Thủy Đặng Xuân Thọ Support Full name: Đặng Xuân Thọ Mobile: 091.2629.383 Email: thodx@hnue.edu.vn Website: http://fit.hnue.edu.vn/~thodx/ Toán rời rạc - ĐHSPHN Chương Lý thuyết đồ thị Lý thuyết đồ thị khởi đầu từ vài trăm năm trước (1736 với toán cầu thành Konigsberg – Nga, gắn với tên tuổi lớn Euler, Gauss, Hamilton ) Đường nét Euler, chu trình Hamilton Tìm đường ngắn nhất, Dijkstra Cây khung nhỏ nhất, Prim, Kruskal … Toán Rời Rạc - ĐHSPHN Định nghĩa đồ thị Định nghĩa: Một đồ thị hiểu hai tập hợp hữu hạn: tập hợp đỉnh tập hợp cạnh nối đỉnh với Kí hiệu: đồ thị G (Graph), tập đỉnh V (vertex), tập cạnh E (edge) Đỉnh Đỉnh Cạnh Cạnh Bản đồ giao thơng Mạng máy tính Đồ thị vơ hướng Ví dụ: Cho tập V = {2, 3, 4, 5, 6} Hãy biểu diễn quan hệ nguyên tố tập Quan hệ biểu diễn đồ thị sau: Toán Rời Rạc - ĐHSPHN Đồ thị vô hướng Đồ thị vô hướng G = (V, E) đó: V tập hợp phần tử gọi đỉnh E tập hợp, phần tử cặp không thứ tự (u, v) hai đỉnh thuộc V (u, v) gọi cạnh nối đỉnh u đỉnh v Ta có (u, v) ≡ (v, u) Tốn Rời Rạc - ĐHSPHN Đồ thị có hướng Ví dụ: Cho tập V = {2, 3, 4, 5, 6} Hãy biểu diễn quan hệ aRb a ước b a b Tốn Rời Rạc - ĐHSPHN Đồ thị có hướng Định nghĩa: Đồ thị có hướng, kí hiệu G=[V,E] đó: V tập hợp phần tử gọi đỉnh E tập hợp, phần tử cặp có thứ tự [u, v] hai đỉnh tập V [u, v] gọi cung nối từ u đến v Chú ý: [u, v] [v, u] Toán Rời Rạc - ĐHSPHN Đồ thị có hướng Ví dụ: Khi nghiên cứu tính cách nhóm người ta thấy số người có ảnh hưởng lên suy nghĩ người khác Mỗi người nhóm biểu diễn đỉnh Khi người a có ảnh hưởng lên người b đỉnh a b nối cạnh có hướng Tốn Rời Rạc - ĐHSPHN Mai Lan Bình My Một số thuật ngữ 10 Với cạnh e = (u, v) E; u,v V; đó: e cạnh liên thuộc u v u, v gọi kề hay láng giềng u, v gọi hai đầu mút cạnh e Nếu e = [u, v] u gọi đỉnh đầu (xuất phát) v gọi đỉnh cuối (đích) cung e Nếu u ≡ v e gọi khuyên Nếu có e’ = (u, v) e e’ gọi cạnh kép Định nghĩa khung 118 Định nghĩa: Cho đồ thị G = (V, E) đồ thị vô hướng liên thông Một đồ thị G’ G gọi khung (hay bao trùm) G nếu: G’ G’ chứa tất đỉnh Ví dụ: b b b b c c a c a c a a d e G d e G1 d e G2 e d G3 Xác định khung 119 Xác định khung việc xây dựng chứa tất đỉnh đồ thị Hai thuật toán xác định khung là: Xác định ưu tiên theo chiều rộng Xác định ưu tiên theo chiều sâu Toán Rời Rạc - ĐHSPHN Theo chiều rộng (BFS) 120 Bước 1: Lấy đỉnh a làm gốc khung Bước 2: Ghép cạnh liên thuộc với gốc Các đỉnh kề với gốc bước có mức Bước 3: Tiếp tục ghép cạnh liên thuộc đỉnh mức cho khơng tạo chu trình Các đỉnh đưa vào bước có mức Bước 4: Tiếp tục trình tất đỉnh ghép vào Toán Rời Rạc - ĐHSPHN Theo chiều rộng (BFS) 121 Đỉnh Tập đỉnh chờ Cây khung B A B(A),C(A), D(A) A B C(A), D(A), F(B) A, B C D(A), F(B) A, B, C F A D E C D F(B), E(D), G(D) A, B, C, D F E(D), G(D) A, B, C, D, F E G(D) A, B, C, D, F, E G A, B, C, D, F, E, G Toán Rời Rạc - ĐHSPHN G Cây khung tìm có cạnh tơ màu đỏ Theo chiều sâu (DFS) 122 Bước 1: Lấy đỉnh a làm gốc khung Bước 2: Xây dựng đường từ đỉnh cách ghép cạnh vào Mỗi cạnh ghép vào nối đỉnh cuối đường đỉnh chưa thuộc đường Thực đến không ghép thêm cạnh Bước 3: Nếu đường chứa tất đỉnh đồ thị khung Nếu khơng chuyển sang bước Bước 4: Quay lui lại đỉnh trước đỉnh cuối đường xây dựng đường đỉnh Nếu khơng lùi tiếp đỉnh Tốn Rời Rạc - ĐHSPHN Theo chiều sâu (DFS) 123 Ví dụ: B F G D A E C Toán Rời Rạc - ĐHSPHN 124 Cây khung nhỏ Toán Rời Rạc - ĐHSPHN Cây khung nhỏ 125 Định nghĩa: Cây khung nhỏ đồ thị liên thơng, có trọng số khung có tổng trọng số cạnh nhỏ Thuật tốn tìm khung nhỏ nhất: Prim (Robert Prim - 1957) Kruskal (Joseph Kruskal – 1965) Toán Rời Rạc - ĐHSPHN Thuật toán Prim 126 Đồ thị G = (V, E) liên thơng, có n đỉnh Bước 1: Chọn cạnh có trọng số nhỏ nhất, đặt vào khung Bước 2: Lần lượt ghép vào cạnh có trọng số nhỏ liên thuộc với đỉnh khơng tạo chu trình Bước 3: Thuật toán dừng lại (n 1) cạnh ghép vào Toán Rời Rạc - ĐHSPHN Thuật tốn Prim 127 Ví dụ: Bằng thuật tốn Prim A C C E D G B A B E D F F Cạnh chọn Cây khung nhỏ G Cạnh xét chọn Tổng trọng số 12 Toán Rời Rạc - ĐHSPHN Thuật toán Kruskal 128 Đồ thị G = (V, E) liên thơng, có n đỉnh Bước 1: Chọn cạnh có trọng số nhỏ nhất, đặt vào khung Bước 2: Lần lượt ghép vào cạnh có trọng số nhỏ mà khơng tạo chu trình Bước 3: Thuật toán dừng lại (n 1) cạnh ghép vào Toán Rời Rạc - ĐHSPHN Thuật tốn Kruskal 129 Ví dụ: Bằng thuật tốn Kruskal A C C E D G B A B E D F F Cây khung G Cạnh chọn Tổng trọng số 12 Toán Rời Rạc - ĐHSPHN Luyện tập 130 Hãy mô tả bước xét đỉnh trình tìm đường từ đỉnh s tới đỉnh z đồ thị bên a Theo chiều rộng b Theo chiều sâu Toán Rời Rạc - ĐHSPHN Luyện tập 131 Hãy tìm khung nhỏ đồ thị G có trọng số hình bên thuật tốn Prim thuật toán Kruskal? Toán Rời Rạc - ĐHSPHN THANK YOU! ...Support Full name: Đặng Xuân Thọ Mobile: 091.2629.383 Email: thodx@hnue.edu.vn Website: http://fit.hnue.edu.vn/~thodx/ Toán rời rạc - ĐHSPHN Chương Lý thuyết đồ thị Lý... thắng đội Chim vàng anh Hãy mơ hình hóa kết đồ thị có hướng? Toán Rời Rạc - ĐHSPHN 16 Các yếu tố đồ thị Toán Rời Rạc - ĐHSPHN Đồ thị 17 Định nghĩa: Cho đồ thị G = (V, E) Đồ thị G’ = (V’, E’)... F H A D B C E G B C E G’ G G Toán Rời Rạc - ĐHSPHN Đồ thị 18 Ví dụ 2: G1 đồ thị G; G2 không đồ thị G A D F H B C E G G D H A D F B C E G2 G1 C E G Toán Rời Rạc - ĐHSPHN Đồ thị thành phần 19