Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 44 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
44
Dung lượng
1,53 MB
Nội dung
CHƯƠNG GV: TRẦN QUỐC VIỆT Giới thiệu ứng dụng: Bài toán luồng cực đại (Max-flow problem) Bài toán ghép cặp (Matching problem) Mạng (network) đồ thị có hướng có trọng số G = (V,E) ta chọn đỉnh gọi đỉnh phát (source vertex) đỉnh gọi đỉnh thu (sink vertex) Ví dụ 5 sink source 4 Một mạng G = (V,E) với đỉnh phát a, đỉnh thu z, c(e) N trọng số cung e Với đỉnh x, ta đặt: In(x) = {e E | e tới x} Out(x) = {e E | e tới x} b d 5 a 2 z Out(c)={cd, ce} 4 c In(c)={ac, bc} e Một hàm tải (flow function) G định nghĩa ánh xạ: φ: E N thỏa điều kiện (i) ≤ φ(e) ≤ c(e), e E (Giới hạn luồng) (i) φ(e) = 0, e In(a) Out(z) (Giá trị luồng) (e) (e) , x V \ a, z (iii) (Cân bằngluồng) e In(x) eOut(x) b 3,1 c[u,v]/f[u,v] d 5,4 5,4 2,1 2,1 6,2 a 4,1 z 8,2 4,1 4,0 c 3,0 3,1 e 1,0 f g (2,0) (fa) = (zg) = (ab) = (ac) = (fc) = (gc) = (bd) = (be) = (bc) = (cd) = (ce)=1 (dz) = (ez) = (ed) = Một phép cắt (cut) xác định tập hợp P V, ký hiệu (P, P ) tập hợp: (P, P ) = { xy | x P y P } Trong P V \ P Phép cắt (P, P ) gọi phép cắt a-z aP z P Trọng số (capacity) phép cắt định nghĩa là: c(P, P) c(e) e(P,P ) b d 5 a 2 4 c z e P={a,b, c} P={d, e,z} (P,P)={bd,be,cd,ce} c(P,P)=16 Gọi hàm tải mạng G P V\{a,z} thì: (e) (e) e(P, P ) e ( P , P) b Ví dụ: 5,4 2,1 4,1 4,0 c 3,0 z 8,2 4,1 f 5,4 2,1 6,2 a P d 3,1 3,1 1,0 (2,0) e g 10 b 6,5 d 6,6 5,5 3,0 3,1 z a 6,1 5,2 c 1,1 e b 6,5 d 6,6 5,5 3,0 3,1 z a 6,1 5,2 c 1,1 e 30 Khi kết thúc thuật tốn Ford-Fulkerson φ hàm tải tối đại (P, P) phép cắt a-z tối tiểu 31 Trong mạng G, tải trọng hàm tải tối đại trọng số phép cắt a-z tối tiểu 32 6,5 B D 6,6 5,5 3,0 3,1 A Z 5,2 6,1 C 1,1 E 33 6,3 B D 6,6 5,5 3,2 3,3 A Z 5,4 6,3 C 1,1 E 34 B A E C Z D 12 F 35 7,5 B 6,5 A E 4,4 4,1 C 4,4 Z 3,3 5,2 7,7 D 9,9 12,12 F 36 Cho đồ thị lưỡng phân G = (X,Y,E) với X tập hợp đỉnh trái Y tập hợp đỉnh phải G Một ghép (matching) G tập hợp cạnh G đôi khơng có đỉnh chung Bài tốn cặp ghép (matching problem) G tìm ghép tối đại (có số lượng cạnh lớn nhất) G 37 Xét ghép M G Khi đó: ◦ Các đỉnh M gọi đỉnh ghép ◦ Một đường pha (alternating path) đường G bắt đầu đỉnh chưa ghép thuộc X cạnh thuộc không thuộc M ◦ Một đường mở (augmenting path) đường pha kết thúc đỉnh chưa ghép thuộc Y 38 ◦ Từ đỉnh u chưa ghép thuộc X, ta xây dựng pha (alternating tree) gốc u gồm tất đường pha u ◦ Một pha chứa đường mở gọi mở (augmenting tree) Ngược lại gọi đóng (Hungarian tree), gốc u đóng gọi đỉnh đóng (Hungarian acorn) 39 Đặt đỉnh thuộc X chưa kiểm tra Đặt M= Nếu đỉnh thuộc X chưa ghép kiểm tra dừng Nếu khơng, chọn đỉnh uX chưa ghép chưa kiểm tra để xây dựng pha gốc u Nếu pha mở bước Nếu khơng, đánh dấu u kiểm tra bước Mở rộng M mở sau: Trên đường mở, loại bỏ cạnh M thêm vào cạnh M Đánh dấu đỉnh thuộc X chưa kiểm tra Quay bước 40 Bộ ghép nhận sau áp dụng thuật toán Hungarian vào đồ thị lưỡng phân G tối đại 41 Một ghép M đồ thị lưỡng phân G=(X,Y,E) gọi X-đầy đủ (X-complete matching) M chứa đỉnh X Với AX, đặt (A) tập hợp đỉnh yY kề với đỉnh xA Khi này, G có ghép X-đầy đủ AX, |(A)||A| 42 A a B b C c D d E e F f G g H h 43 A a B b C c D d E e F f G g H h 44