Bài giảng Lý thuyết đồ thị: Chương 9 - PGS.TS. Hoàng Chí Thành
Số trang: 46
Loại file: pdf
Dung lượng: 419.80 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 9 Mạng vận tải, cung cấp cho người đọc những kiến thức như: Mạng vận tải; Luồng qua mạng; Bài toán luồng lớn nhất; Thuật toán Ford - Fulkerson; Một số ứng dụng của bài toán luồng lớn nhất. Mời các bạn cùng tham khảo!
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 9 - PGS.TS. Hoàng Chí Thành CHƯƠNG 9 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 nhất Thuật toán Ford - Fulkerson Một số ứng dụng của bài toán luồng lớn nhất 2/46 9.1. BÀI TOÁN LUỒNG LỚN NHẤT Bài toán luồng lớn nhất là một trong những bài toán tối ưu của Lý thuyết Đồ thị, được đề xuất vào đầu những năm 1950 và trở nên nổi 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 là một đồ thị có hướng G = (V, E) không có đỉnh nút, trong đó: - Có duy nhất một đỉnh x0 không có cạnh đi vào, F-1(x0) = (đỉnh phát) - Có duy nhất một đỉnh z không có cạnh đi ra, F(z) = (đỉnh thu) - Mỗi cạnh e được gán một số nguyên không âm c(e) và gọi là khả năng thông qua của cạnh. 4/46 MẠNG VẬN TẢI (tiếp) Ví dụ mạng vận tải: x1 4/4 3/4 7/8 3/4 x5 6/6 5/5 x2 x0 2/4 5/5 x6 11/12 z 3-2/4 6-7/8 x0 2-3/4 6-7/9 2-3/4 x4 4/4 x7 5/46 LUỒNG QUA MẠNG Với một mạng G = (V, E, c), ta ký hiệu: W-(x) = { (a, x) E a V } - tập các cạnh đi vào đỉnh x. W+(x) = { (x, b) E b V } - tập các cạnh đi ra khỏi đỉnh x. 6/46 LUỒNG QUA MẠNG (tiếp) Định nghĩa 9.2. Hàm t : E N là một luồng đi qua mạng (G, c) nếu: a) e E : t(e) c(e) - luồng trên mỗi cạnh không được vượt quá khả năng thông qua của cạnh đó. b) x x0 và z : t(W-(x)) = t(W-(x)) - luồng trên các đỉnh phải cân bằng. 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ừ ngoài B đi vào B. W+(B) = { (a, b) E a B, b B } - tập cạnh từ B đi ra 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 và ra của một tập đỉnh 9/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Khi đó nếu tập con các đỉnh B không chứa x0 và z thì: t(W-(B)) = t(W+ (B)). Theo tính chất b) của luồng: t (W-(x)) = t (W+(x) ) Cạnh kề với đỉnh x nếu có đỉnh đầu và đỉnh cuối đều nằm trong tập B thì nó sẽ có mặt ở cả hai vế của đẳng thức đúng một lần, do đó có thể giản ước. 10/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Sau khi giản ước, tổng ở vế trái chỉ còn lại các cạnh mà đỉnh đầu ở ngoài B đỉnh cuối trong B, tức là tập W-(B). Tương tự, tổng ở vế phải chỉ còn lại các cạnh mà đỉnh đầu ở trong B đỉnh cuối ngoài B, tức là tập W+(B). B Hình 9.2. Các cạnh kề với một tập đỉnh 11/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Lấy B = V \ {x0 , z} thì: - Khi G không có cạnh (x0 , z) ta có: W+(x0) = W-(B) ; W-(z) = W+(B) - Và khi G có cạnh (x0 , z) thì: W+ (x0) = W-(B) (x0 ,z) ; W-(z) = W+(B) (x0 ,z) Suy ra: t(W+(x0)) = t(W-(z)). 12/46 GIÁ TRỊ CỦA LUỒNG Ký hiệu: tz = t(W+(x0)) (cộng thêm t(x0,z), nếu có) và gọi là giá trị của luồng qua mạng G. 13/46 9.1. BÀI TOÁN LUỒNG LỚN NHẤT (tiếp) Bài toán: Cho mạng vận tải (G, c). Hãy tìm luồng t qua mạng sao cho tz đạt giá trị lớn nhất Để giải quyết bài toán này, ta dùng thuật toán Ford - Fulkerson 14/46 9.2. THUẬT TOÁN FORD - FULKERSON Ta đánh số đỉnh của mạng là: 0, 1, ... , n sao cho đỉnh 0 là x0 và đỉnh n là z. Ban đầu cho luồng t = 0 trên các cạnh. Thuật toán tiến hành hai bước: Bước 1: Đánh dấu các đỉnh của mạng Bước 2: Nâng giá trị của luồng 15/46 BƯỚC 1 Lần lượt đánh dấu cho các đỉnh của mạng như sau: - Đỉnh x0 được đánh dấu bằng số 0. - Nếu đỉnh x đã được đánh dấu, có cạnh (x, y) với đỉnh cuối y chưa được đánh dấu và t(x,y) < c(x,y) thì đánh dấu cho đỉnh y là +x. - Nếu đỉnh y đã được đánh dấu, có cạnh (x, y) với đỉnh đầu x chưa được đánh dấu và t(x,y) > 0 thì đánh dấu đỉnh x là -y. 16/46 BƯỚC 1 (tiếp) Nếu đỉnh thu z được đánh dấu là +k với k nào đó thì có nghĩa là có một đường đi vô hướng từ x0 đến z có dạng: < x0 , i1 , i2 , ... , k , z > trên đó mỗi đỉnh đã được đánh dấu +j hoặc -j . 17/46 BƯỚC 1 (tiếp) Cụ thể là: d(x0) = 0 d(i1) = +0 d(i2) = i1 ......... d(z) = +k 0 +0 -i1 +i2 ii k x0 i1 i2 i3 k z t>0 t BƯỚC 2 Xây dựng luồng mới t' như sau: - Nếu cạnh e không thuộc đường đi trên thì giữ nguyên luồng, t'(e) := t(e). - Nếu cạnh e thuộc đường đi này và cùng chiều với chi ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết đồ thị: Chương 9 - PGS.TS. Hoàng Chí Thành CHƯƠNG 9 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 nhất Thuật toán Ford - Fulkerson Một số ứng dụng của bài toán luồng lớn nhất 2/46 9.1. BÀI TOÁN LUỒNG LỚN NHẤT Bài toán luồng lớn nhất là một trong những bài toán tối ưu của Lý thuyết Đồ thị, được đề xuất vào đầu những năm 1950 và trở nên nổi 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 là một đồ thị có hướng G = (V, E) không có đỉnh nút, trong đó: - Có duy nhất một đỉnh x0 không có cạnh đi vào, F-1(x0) = (đỉnh phát) - Có duy nhất một đỉnh z không có cạnh đi ra, F(z) = (đỉnh thu) - Mỗi cạnh e được gán một số nguyên không âm c(e) và gọi là khả năng thông qua của cạnh. 4/46 MẠNG VẬN TẢI (tiếp) Ví dụ mạng vận tải: x1 4/4 3/4 7/8 3/4 x5 6/6 5/5 x2 x0 2/4 5/5 x6 11/12 z 3-2/4 6-7/8 x0 2-3/4 6-7/9 2-3/4 x4 4/4 x7 5/46 LUỒNG QUA MẠNG Với một mạng G = (V, E, c), ta ký hiệu: W-(x) = { (a, x) E a V } - tập các cạnh đi vào đỉnh x. W+(x) = { (x, b) E b V } - tập các cạnh đi ra khỏi đỉnh x. 6/46 LUỒNG QUA MẠNG (tiếp) Định nghĩa 9.2. Hàm t : E N là một luồng đi qua mạng (G, c) nếu: a) e E : t(e) c(e) - luồng trên mỗi cạnh không được vượt quá khả năng thông qua của cạnh đó. b) x x0 và z : t(W-(x)) = t(W-(x)) - luồng trên các đỉnh phải cân bằng. 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ừ ngoài B đi vào B. W+(B) = { (a, b) E a B, b B } - tập cạnh từ B đi ra 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 và ra của một tập đỉnh 9/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Khi đó nếu tập con các đỉnh B không chứa x0 và z thì: t(W-(B)) = t(W+ (B)). Theo tính chất b) của luồng: t (W-(x)) = t (W+(x) ) Cạnh kề với đỉnh x nếu có đỉnh đầu và đỉnh cuối đều nằm trong tập B thì nó sẽ có mặt ở cả hai vế của đẳng thức đúng một lần, do đó có thể giản ước. 10/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Sau khi giản ước, tổng ở vế trái chỉ còn lại các cạnh mà đỉnh đầu ở ngoài B đỉnh cuối trong B, tức là tập W-(B). Tương tự, tổng ở vế phải chỉ còn lại các cạnh mà đỉnh đầu ở trong B đỉnh cuối ngoài B, tức là tập W+(B). B Hình 9.2. Các cạnh kề với một tập đỉnh 11/46 TÍNH CHẤT CỦA LUỒNG (tiếp) Lấy B = V \ {x0 , z} thì: - Khi G không có cạnh (x0 , z) ta có: W+(x0) = W-(B) ; W-(z) = W+(B) - Và khi G có cạnh (x0 , z) thì: W+ (x0) = W-(B) (x0 ,z) ; W-(z) = W+(B) (x0 ,z) Suy ra: t(W+(x0)) = t(W-(z)). 12/46 GIÁ TRỊ CỦA LUỒNG Ký hiệu: tz = t(W+(x0)) (cộng thêm t(x0,z), nếu có) và gọi là giá trị của luồng qua mạng G. 13/46 9.1. BÀI TOÁN LUỒNG LỚN NHẤT (tiếp) Bài toán: Cho mạng vận tải (G, c). Hãy tìm luồng t qua mạng sao cho tz đạt giá trị lớn nhất Để giải quyết bài toán này, ta dùng thuật toán Ford - Fulkerson 14/46 9.2. THUẬT TOÁN FORD - FULKERSON Ta đánh số đỉnh của mạng là: 0, 1, ... , n sao cho đỉnh 0 là x0 và đỉnh n là z. Ban đầu cho luồng t = 0 trên các cạnh. Thuật toán tiến hành hai bước: Bước 1: Đánh dấu các đỉnh của mạng Bước 2: Nâng giá trị của luồng 15/46 BƯỚC 1 Lần lượt đánh dấu cho các đỉnh của mạng như sau: - Đỉnh x0 được đánh dấu bằng số 0. - Nếu đỉnh x đã được đánh dấu, có cạnh (x, y) với đỉnh cuối y chưa được đánh dấu và t(x,y) < c(x,y) thì đánh dấu cho đỉnh y là +x. - Nếu đỉnh y đã được đánh dấu, có cạnh (x, y) với đỉnh đầu x chưa được đánh dấu và t(x,y) > 0 thì đánh dấu đỉnh x là -y. 16/46 BƯỚC 1 (tiếp) Nếu đỉnh thu z được đánh dấu là +k với k nào đó thì có nghĩa là có một đường đi vô hướng từ x0 đến z có dạng: < x0 , i1 , i2 , ... , k , z > trên đó mỗi đỉnh đã được đánh dấu +j hoặc -j . 17/46 BƯỚC 1 (tiếp) Cụ thể là: d(x0) = 0 d(i1) = +0 d(i2) = i1 ......... d(z) = +k 0 +0 -i1 +i2 ii k x0 i1 i2 i3 k z t>0 t BƯỚC 2 Xây dựng luồng mới t' như sau: - Nếu cạnh e không thuộc đường đi trên thì giữ nguyên luồng, t'(e) := t(e). - Nếu cạnh e thuộc đường đi này và cùng chiều với chi ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lý thuyết đồ thị Lý thuyết đồ thị Mạng vận tải Bài toán luồng lớn nhất Thuật toán Ford-Fulkerson Luồng qua mạngGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Lý thuyết đồ thị (Graph Theory)
13 trang 217 0 0 -
Bài giảng Lý thuyết đồ thị: Chương 3 - Các thuật toán tìm kiếm trên đồ thị
18 trang 115 0 0 -
Bài giảng Lý thuyết đồ thị - Bài 1: Đại cương về đồ thị
39 trang 113 0 0 -
Giáo trình Lý thuyết đồ thị: Phần 1 - PGS. Nguyễn Cam, PTS. Chu Đức Khánh
98 trang 75 0 0 -
Một số đánh giá hình học mạng lưới tàu điện đô thị Hà Nội theo lý thuyết đồ thị
9 trang 64 0 0 -
Bài giảng Lý thuyết đồ thị - Chương 2: Biểu diễn đồ thị
15 trang 45 0 0 -
Bài giảng Lý thuyết đồ thị: Chương 1 - Tôn Quang Toại
37 trang 45 0 0 -
Giáo trình Toán rời rạc và lý thuyết đô thị
226 trang 44 0 0 -
Chuyên đề Toán 11 - Cùng khám phá
90 trang 43 0 0 -
Bài giảng Lý thuyết đồ thị: Chương 2 - Tôn Quang Toại
38 trang 41 0 0