BÕI TOÆN Vổ GHÛP CẶP BÀI TOÁN VỀ GHÉP CẶP Bùi Tiến Lên Đại học Khoa Học Tự Nhiên 01/01/2017 NỘI DUNG 1 ĐỒ THỊ PHÂN ĐÔI 2 ĐỒ THỊ PHÂN ĐÔI CÓ TRỌNG SỐ 3 ĐỒ THỊ TỔNG QUÁT ĐỒ THỊ PHÂN ĐÔI Các khái[.]
NỘI DUNG BÀI TOÁN VỀ GHÉP CẶP ĐỒ THỊ PHÂN ĐÔI Bùi Tiến Lên Đại học Khoa Học Tự Nhiên ĐỒ THỊ PHÂN ĐƠI CĨ TRỌNG SỐ 01/01/2017 ĐỒ THỊ TỔNG QUÁT ĐỒ THỊ PHÂN ĐÔI Các khái niệm Định nghĩa 6.1 Đồ thị phân đôi G = (V , E ) đồ thị đơn vô hướng có tập đỉnh chia thành hai tập X Y rời (V = X ∪ Y ) cho I Các đỉnh X không kề I Các đỉnh Y không kề Spring 2017 Graph Theory Các khái niệm (cont.) Các khái niệm (cont.) Đồ thị G = (V , E ) đồ thị đơn, liên thông y3 x4 Algorithm Thuật tốn kiểm tra G phân đơi 1: x3 2: y2 3: x2 4: 5: y1 x1 6: 7: 8: Hình 6.1: Đồ thị phân đôi 9: 10: 11: Spring 2017 Graph Theory Các khái niệm (cont.) v ∈ V đỉnh X ← {v} Y ←∅ repeat Y ← Y ∪ Adj(X ) X ← X ∪ Adj(Y ) until X ∩ Y 6= ∅ X Y không thay đổi if X ∩ Y 6= ∅ then Đồ thị G không phân đôi else Đồ thị G phân đôi Spring 2017 Graph Theory Các khái niệm (cont.) Định nghĩa 6.2 Cho đồ thị G = (V , E ), tập hợp M ⊂ G với cạnh khơng có đỉnh chung gọi ghép (matching set) I I I I x3 Các đỉnh thuộc M gọi đỉnh ghép (matched vertex) y2 x2 Các đỉnh không thuộc M gọi đỉnh chưa ghép (unmatched vertex) Các cạnh không thuộc M gọi cạnh chưa ghép (unmatched edge) Graph Theory y1 x1 Các cạnh thuộc M gọi cạnh ghép (matched edge) Spring 2017 y3 x4 Hình 6.2: Bộ ghép M = {(x1 , y2 ), (x3 , y1 )}, đỉnh ghép {x1 , x3 , y1 , y2 }, đỉnh chưa ghép {x2 , x4 , y3 } Spring 2017 Graph Theory Các khái niệm (cont.) Các khái niệm (cont.) Định nghĩa 6.3 I I Đường pha (alternating path) đường đơn đỉnh chưa ghép X , theo cạnh chưa ghép sang Y , theo cạnh ghép X , luân phiên xen kẽ Đường tăng (augmenting path) đường pha đỉnh chưa ghép X kết thúc đỉnh chưa ghép Y x3 y3 x2 y2 x1 y1 Hình 6.3: Đường pha x3 , y2 , x2 , y1 Spring 2017 Graph Theory Các khái niệm (cont.) Spring 2017 Graph Theory 10 Bài tốn ghép đơi tối đại x3 y3 x2 y2 Bài toán 6.1 Cho đồ thị G = (V , E ), gọi M tập hợp ghép Bài tốn ghép đơi tối đại tìm ghép Mmax ∈ M có nhiều cạnh Mmax = argmax(|M|) M∈M (6.1) y1 x1 Hình 6.4: Đường tăng x3 , y2 , x2 , y1 , x1 , y3 Spring 2017 Graph Theory 11 Spring 2017 Graph Theory 12 Thuật tốn tìm ghép đơi tối đại Thuật tốn tìm ghép đơi tối đại (cont.) Cho đồ thị phân đôi G = (V = (X , Y ), E ) Algorithm Thuật toán đường tăng M←∅ while tồn đường mở P từ X sang Y 3: Các cạnh ghép P chuyển thành chưa ghép 4: Các cạnh chưa ghép P chuyển thành ghép x3 y3 x3 y3 x2 y2 x2 y2 x1 y1 x1 y1 1: 2: Để thuận tiện cạnh chuyển sang cạnh có hướng I Cạnh chưa ghép có hướng từ X sang Y I Cạnh ghép có hướng từ Y sang X Spring 2017 Graph Theory (a) đường tăng (b) chuyển trạng thái Hình 6.5: Chuyển trạng thái cho cạnh đường tăng 13 Minh họa thuật toán đường tăng Spring 2017 Graph Theory 14 Minh họa thuật toán đường tăng (cont.) Tìm ghép đơi cực đại đồ thị phân đôi x4 y4 x4 y4 x4 y4 x3 y3 x3 y3 x3 y3 x2 y2 x2 y2 x2 y2 x1 y1 x1 y1 x1 y1 (a) đường tăng (b) cập nhật đường tăng Hình 6.6: Đồ thị phân đôi Spring 2017 Graph Theory 15 Spring 2017 Graph Theory 16 Minh họa thuật toán đường tăng (cont.) Minh họa thuật toán đường tăng (cont.) x4 y4 x4 y4 x4 y4 x4 y4 x3 y3 x3 y3 x3 y3 x3 y3 x2 y2 x2 y2 x2 y2 x2 y2 x1 y1 x1 y1 x1 y1 x1 y1 (a) đường tăng Spring 2017 (b) cập nhật đường tăng Graph Theory (a) đường tăng 17 Minh họa thuật toán đường tăng (cont.) x4 y4 x3 y3 x2 y2 x1 y1 (a) đường tăng Spring 2017 x4 y4 x3 y3 x2 y2 x1 y1 Spring 2017 (b) cập nhật đường tăng Graph Theory 18 Một số ví dụ Ví dụ 6.1 Có việc cần tuyển người đảm nhận, người việc Gọi Si tập hợp ứng viên thích hợp cho việc thứ i giả sử ta có S1 = {A, B, C} S2 = {D, E } S3 = {D} S4 = {E } S5 = {A, E } Hãy tìm phương án tuyển người tối ưu (b) cập nhật đường tăng kết thúc Graph Theory 19 Spring 2017 Graph Theory 20 Một số ví dụ (cont.) ĐỒ THỊ PHÂN ĐƠI CĨ TRỌNG SỐ Ví dụ 6.2 Có chàng trai B1 , B2 , B3 , B4 cô gái G1 , G2 , G3 , G4 , G5 ; chàng trai có danh sách gái thích hợp sau B1 : {G1 , G4 , G5 } B2 :{G1 } B3 : {G2 , G3 , G4 } B4 : {G2 , G4 } Hãy tìm phương án mai mối tối ưu Spring 2017 Graph Theory ĐỒ THỊ TỔNG QUÁT 21 Tài liệu tham khảo Spring 2017 Graph Theory 24 ... (cont.) Spring 2017 Graph Theory 10 Bài tốn ghép đơi tối đại x3 y3 x2 y2 Bài toán 6.1 Cho đồ thị G = (V , E ), gọi M tập hợp ghép Bài tốn ghép đơi tối đại tìm ghép Mmax ∈ M có nhiều cạnh Mmax =... đường đơn đỉnh chưa ghép X , theo cạnh chưa ghép sang Y , theo cạnh ghép X , luân phiên xen kẽ Đường tăng (augmenting path) đường pha đỉnh chưa ghép X kết thúc đỉnh chưa ghép Y x3 y3 x2 y2 x1... thành chưa ghép 4: Các cạnh chưa ghép P chuyển thành ghép x3 y3 x3 y3 x2 y2 x2 y2 x1 y1 x1 y1 1: 2: Để thuận tiện cạnh chuyển sang cạnh có hướng I Cạnh chưa ghép có hướng từ X sang Y I Cạnh ghép có