Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 46 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
46
Dung lượng
419,8 KB
Nội dung
CHƯƠNG MẠNG VẬN TẢI 1/46 NỘI DUNG Mạng vận tải Luồng qua mạng Bài toán luồng lớn Thuật toán Ford - Fulkerson Một số ứng dụng tốn luồng lớn 2/46 9.1 BÀI TỐN LUỒNG LỚN NHẤT Bài toán luồng lớn toán tối ưu Lý thuyết Đồ thị, đề xuất vào đầu năm 1950 trở nên tiếng với thuật toán Ford - Fulkerson 3/46 MẠNG VẬN TẢI Định nghĩa 9.1 Mạng vận tải đồ thị có hướng G = (V, E) khơng có đỉnh nút, đó: - Có đỉnh x0 khơng có cạnh vào, F-1(x0) = (đỉnh phát) - Có đỉnh z khơng có cạnh ra, F(z) = (đỉnh thu) - Mỗi cạnh e gán số nguyên không âm c(e) gọi khả thông qua cạnh 4/46 MẠNG VẬN TẢI (tiếp) Ví dụ mạng vận tải: x1 4/4 7/8 3/4 x5 3/4 x0 x2 5/5 6/6 2/4 5/5 11/12 x6 3-2/4 z x0 6-7/8 2-3/4 2-3/4 x4 4/4 6-7/9 x7 5/46 LUỒNG QUA MẠNG Với mạng G = (V, E, c), ta ký hiệu: W-(x) = { (a, x) E a V } - tập cạnh vào đỉnh x W+(x) = { (x, b) E b V } - tập cạnh khỏi đỉnh x 6/46 LUỒNG QUA MẠNG (tiếp) Định nghĩa 9.2 Hàm t : E N luồng qua mạng (G, c) nếu: a) e E : t(e) c(e) - luồng cạnh không vượt q khả thơng qua cạnh b) x x0 z : t(W-(x)) = t(W-(x)) - luồng đỉnh phải cân 7/46 TÍNH CHẤT CỦA LUỒNG Với tập B V, ký hiệu: W-(B) = { (a, b) E a B, b B } - tập cạnh từ B vào B W+(B) = { (a, b) E a B, b B } - tập cạnh từ B khỏi B 8/46 TÍNH CHẤT CỦA LUỒNG (tiếp) W-(B) B B W+(B) Hình 9.1 Tập cạnh vào tập đỉnh 9/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Khi tập đỉnh B khơng chứa x0 z thì: t(W-(B)) = t(W+ (B)) Theo tính chất b) luồng: t (W-(x)) = t (W+(x) ) Cạnh kề với đỉnh x có đỉnh đầu đỉnh cuối nằm tập B có mặt hai vế đẳng thức lần, giản ước 10/46 BƯỚC ĐÁNH DẤU Đầu tiên đánh dấu cho đỉnh thu z số Nếu đỉnh y đánh dấu, có cạnh (x, y) với đỉnh đầu x chưa đánh dấu t((x,y)) > c((x,y)) đánh dấu cho đỉnh x +y 3/46 BƯỚC ĐÁNH DẤU (tiếp) Nếu đỉnh x đánh dấu, có cạnh (x, y) đánh dấu cho đỉnh y -x Với cách đánh dấu mà ngược tới đỉnh phát x0 ta tìm đường vơ hướng từ z tới x0 4/46 BƯỚC GIẢM LUỒNG Chọn luồng t’ sau: - Nếu cạnh e không thuộc đường giữ nguyên luồng - Nếu cạnh e thuộc đường chiều từ x0 tới z đặt t’(e) := t(e) -1 cịn ngược chiều đặt t’(e) := t(e) + Lặp lại q trình giảm luồng khơng đánh dấu tới đỉnh phát x0 Khi luồng nhận có giá trị nhỏ 5/46 VÍ DỤ 9.2 Xét mạng vận tải sau đây: +0 5/5 x1 x3 4/3 +2 x0 10-9/8 6-5/5 4/3 +4 x2 6-5/5 z 3-4/3 -3 13/13 x4 Hình 9.7 Mạng vận tải luồng giảm Luồng cũ có giá trị tz = 19 Luồng sau cải tiến có giá trị tz’ = 18 luồng nhỏ 6/46 9.4 LUỒNG TRÊN MẠNG CÓ NHIỀU ĐỈNH PHÁT VÀ ĐỈNH THU Giả sử (G, c) mạng vận tải với n đỉnh phát: p1, p2, … , pn m đỉnh thu: t1, t2, … , tm Bài tốn tìm luồng lớn từ nhiều đỉnh phát tới nhiều đỉnh thu đưa toán luồng lớn cách thêm vào đỉnh phát giả X0, đỉnh thu giả Z, cạnh nối X0 với tất đỉnh phát cạnh nối tất đỉnh thu với Z 7/46 9.4 LUỒNG TRÊN MẠNG CÓ NHIỀU ĐỈNH PHÁT VÀ ĐỈNH THU (tiếp) P1 t1 P2 X0 Đỉnh phát giá t2 (G,c) Pn Z Đỉnh thu giá t m Hình 9.8 Mạng vận tải có nhiều đỉnh phát nhiều đỉnh thu 8/46 9.4 LUỒNG TRÊN MẠNG CÓ NHIỀU ĐỈNH PHÁT VÀ ĐỈNH THU (tiếp) Khả thông qua cạnh sau: - Nếu lượng phát đỉnh pi bị hạn chế li đặt c(X0, pi) = li cịn khơng bị hạn chế đặt - Tương tự, giới hạn lượng thu đỉnh tj khả thông qua cạnh (tj, Z) 9/46 9.5 BÀI TỐN TÌM CẶP GHÉP LỚN NHẤT Giả sử G = (V1,V2, F) đồ thị hai phần Hãy tìm cặp ghép lớn đồ thị Bài toán dạng đặc biệt toán mạng với nhiều đỉnh phát nhiều đỉnh thu Ta đưa toán toán luồng lớn 10/46 9.5 BÀI TỐN TÌM CẶP GHÉP LỚN NHẤT (tiếp) Xây dựng mạng vận tải sau: - Các đỉnh mạng đỉnh đồ thị G thêm vào đỉnh phát x0 đỉnh thu z - Mạng gồm tất cạnh G có hướng từ V1 sang V2 - Ngoài ra, nối x0 với tất đỉnh V1 nối tất đỉnh V2 với z - Trên cạnh e mạng đặt c(e) = 11/46 9.5 BÀI TỐN TÌM CẶP GHÉP LỚN NHẤT (tiếp) Khi đó, luồng t qua mạng ứng với cặp ghép W G mà: e W t(e) = Ngược lại, cặp ghép W ứng với luồng t qua mạng G theo quy tắc Vậy tz đạt lớn mhất W có nhiều cạnh 12/46 VÍ DỤ 9.3 Từ đồ thị hai phần ta xây dựng mạng vận tải sau: x0 a f b g c h d e z i k Hình 9.9 Mạng vận tải đồ thị hai phần 13/46 9.6 MẠNG VẬN TẢI VỚI KHẢ NĂNG THÔNG QUA CỦA CẠNH VÀ ĐỈNH Giả sử mạng (G, c) ngồi khả thơng qua cạnh với đỉnh x V cịn có khả thơng qua đỉnh d(x) địi hỏi tổng luồng vào đỉnh x không vượt d(x), nghĩa là: t(W-(x)) d(x) Hãy tìm luồng lớn x0 z mạng 14/46 9.6 MẠNG VẬN TẢI VỚI KHẢ NĂNG THÔNG QUA CỦA CẠNH VÀ ĐỈNH (tiếp) Đưa toán toán luồng lớn nhất: Xây dựng mạng G’: - Mỗi đỉnh x G thay hai đỉnh x- x+, - Cạnh (x- , x+) thuộc G’ c((x-,x+)) = d(x), - Mỗi cạnh (x, y) G tương ứng với cạnh (x+, y- ) G’ 15/46 VÍ DỤ 9.4 Xét mạng vận tải sau đây: a (G,c) = x0 15 z 14 b Hình 9.10 Mạng vận tải với khả thơng qua cạnh đỉnh 16/46 VÍ DỤ 9.4 (tiếp) Xây dựng mạng (G’, c) sau: ax0 15 x0+ a+ z- b- b+ 14 z+ Hình 9.11 Mạng vận tải tương ứng Do luồng vào đỉnh x- phải qua cạnh (x-, x+) với khả thông qua d(x) nên luồng lớn G’ luồng lớn G thoả mãn điều kiện khả thông qua cạnh đỉnh 17/46