Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
695,46 KB
Nội dung
Học viện Cơng nghệ Bưu Viễn thơng Khoa Cơng nghệ thơng tin Tốn rời rạc Bài tốn luồng cực đại mạng Ngô Xuân Bách CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung Phát biểu toán Thuật toán Ford-Fulkerson CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Mạng Định nghĩa 1: Mạng đồ thị có hướng 𝐺 =< 𝑉, 𝐸 > đó: o o o o Có đỉnh 𝑠 khơng có cung vào gọi điểm phát Có đỉnh 𝑡 khơng có cung gọi điểm thu Mỗi cung e = (𝑢, 𝑣) ∈ 𝐸 gán với số thực không âm c e = 𝑐(𝑢, 𝑣) gọi khả thông qua (băng thông) cung Quy ước: Nếu khơng có cung (𝑢, 𝑣) khả thơng qua gán 3 s t 3 3 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Luồng mạng Định nghĩa 2: Giả sử cho mạng 𝐺 =< 𝑉, 𝐸 > Ta gọi luồng 𝑓 mạng 𝐺 =< 𝑉, 𝐸 > ánh xạ 𝑓: 𝐸 → 𝑅+ gán cho cung 𝑒 = (𝑢, 𝑣) ∈ 𝐸 số thực không âm 𝑓(𝑒) = 𝑓(𝑢, 𝑣), gọi luồng cung 𝑒, thỏa mãn điều kiện sau: 1) Luồng cung e ∈ 𝐸 không vượt khả thơng qua nó: ≤ 𝑓 𝑒 ≤ 𝑐 𝑒 2) Điều kiện cân luồng đỉnh mạng: Tổng luồng cung vào đỉnh 𝑣 tổng luồng cung khỏi đỉnh 𝑣 với 𝑣 ≠ 𝑠, 𝑡: 𝑢∈Γ− (𝑣) 𝑓 𝑢, 𝑣 = 𝑢∈Γ+ (𝑣) 𝑓 𝑣, 𝑢 , Γ − 𝑣 = 𝑢 ∈ 𝑉: 𝑢, 𝑣 ∈ 𝐸 , Γ + 𝑣 = 𝑢 ∈ 𝑉: 𝑣, 𝑢 ∈ 𝐸 3) Ta gọi giá trị luồng 𝑓 số: 𝑣𝑎𝑙 𝑓 = 𝑢∈Γ+ (𝑠) 𝑓 𝑠, 𝑢 = 𝑢∈Γ− (𝑡) 𝑓 𝑢, 𝑡 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Ví dụ: Luồng mạng 1 (1) (3) CuuDuongThanCong.com (1) (1) (3) (1) s (2) t (1) 𝒗𝒂𝒍(𝒇) = 𝟒 4 http://www.ptit.edu.vn https://fb.com/tailieudientucntt Bài toán luồng cực đại Phát biểu toán o Cho mạng 𝐺 =< 𝑉, 𝐸 >, tìm luồng 𝑓 ∗ mạng với giá trị luồng 𝑣𝑎𝑙 𝑓 ∗ lớn Ví dụ o o o o o o Xét đồ thị có hướng tương ứng với hệ thống đường ống dẫn dầu Các ống dẫn dầu tương ứng với cung đồ thị Điểm phát tàu chở dầu, điểm thu bể chứa dầu Điểm nối ống tương ứng với đỉnh đồ thị Khả thông qua cung tương ứng với tiết diện ống Cần tìm luồng dầu lớn bơm từ tàu chở dầu vào bể chứa? CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Nội dung Phát biểu toán Thuật toán Ford-Fulkerson CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Lát cắt Định nghĩa 3: Lát cắt (𝑋, 𝑋 ∗ ) cách phân hoạch tập đỉnh 𝑉 mạng thành hai tập 𝑋 𝑋 ∗ , 𝑠 ∈ 𝑋 𝑡 ∈ 𝑋 ∗ o Khả thông qua lát cắt (𝑋, 𝑋 ∗ ) định nghĩa: 𝑐 𝑋, 𝑋 ∗ = 𝑐(𝑣, 𝑤) 𝑣∈𝑋,𝑤∈𝑋 ∗ o Lát cắt với khả thông qua nhỏ gọi lát cắt hẹp Bồ đề 1: Giá trị luồng 𝑓 mạng nhỏ khả thông qua lát cắt (𝑋, 𝑋 ∗ ) mạng: 𝑣𝑎𝑙 𝑓 ≤ 𝑐(𝑋, 𝑋 ∗ ) o Hệ quả: Giá trị luồng cực đại mạng không vượt khả thông qua lát cắt hẹp mạng CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Ví dụ: Lát cắt Xét lát cắt 𝑋, 𝑋 ∗ : - với 𝑋 = *𝑆, 3, 4+, 𝑋 ∗ = 𝑡, 1, - c 𝑋, 𝑋 ∗ = + + + = 11 s t 3 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Đồ thị tăng luồng Giả sử 𝑓 luồng mạng 𝐺 =< 𝑉, 𝐸 > Từ mạng ta xây dựng đồ thị có trọng số 𝐺𝑓 =< 𝑉, 𝐸𝑓 >, với tập cung 𝐸𝑓 trọng số cung xác định sau: o o o Nếu 𝑒 = (𝑣, 𝑤) ∈ 𝐸 với 𝑓(𝑣, 𝑤) = 0, (𝑣, 𝑤) ∈ 𝐸𝑓 với trọng số c(𝑣, 𝑤) Nếu 𝑒 = (𝑣, 𝑤) ∈ 𝐸 với 𝑓(𝑣, 𝑤) = 𝑐(𝑣, 𝑤), (𝑤, 𝑣) ∈ 𝐸𝑓 với trọng số c(𝑣, 𝑤) Nếu 𝑒 = (𝑣, 𝑤) ∈ 𝐸 với < 𝑓 𝑣, 𝑤 < 𝑐(𝑣, 𝑤), (𝑣, 𝑤) ∈ 𝐸𝑓 với trọng số 𝑐 𝑣, 𝑤 − 𝑓(𝑣, 𝑤) (𝑤, 𝑣) ∈ 𝐸𝑓 với trọng số 𝑓(𝑣, 𝑤) Các cung 𝐺𝑓 đồng thời cung 𝐺 gọi cung thuận, cung lại gọi cung nghịch Đồ thị 𝐺𝑓 gọi đồ thị tăng luồng 10 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Ví dụ: Đồ thị tăng luồng Xét mạng 𝐺 với luồng 𝑓 sau: (2) 2 (3) (1) t s (1) t 3 Mạng 𝑮 luồng 𝒇 CuuDuongThanCong.com 3 (1) 11 3(3) (1) Cung thuận (1) s Cung nghịch Đồ thị tăng luồng 𝑮𝒇 http://www.ptit.edu.vn https://fb.com/tailieudientucntt Tăng luồng theo đường Xét 𝑃 = (𝑠 = 𝑣0 , 𝑣1 , 𝑣2 , … , 𝑣𝑘 = 𝑡) đường từ 𝑠 đến 𝑡 đồ thị tăng luồng 𝐺𝑓 Gọi giá trị nhỏ trọng số cung đường 𝑃 Xây dựng luồng 𝑓 ′ mạng 𝐺 theo quy tắc sau f (u, v) f '(u , v) f (u , v) f (u, v) , (u,v) P cung thuận , (u,v) P cung nghịch , (u,v) P 𝑓 ′ luồng mạng val 𝑓 ′ = 𝑣𝑎𝑙 𝑓 + 𝛿 Thủ tục biến đổi luồng tăng luồng dọc theo đường 𝑃 12 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Ví dụ: Tăng luồng theo đường 2 1 1 s t 3 (1)→(2) 1 (2) = s 3(3) (1) (1)→(0) (3) (1)→(2) (1)→(2) Đồ thị tăng luồng 𝑮𝒇 Mạng 𝑮 luồng 𝒇’ 𝑽𝒂𝒍(𝒇’) = 𝟓 13 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt t Đường tăng luồng Định nghĩa 4: Đường tăng luồng 𝑓 đường từ 𝑠 đến 𝑡 đồ thị tăng luồng 𝐺𝑓 Định lý 1: Các mệnh đề sau tương đương: o o o 14 𝑓 luồng cực đại mạng Khơng tìm đường tăng luồng 𝑓 𝑣𝑎𝑙(𝑓) = 𝑐(𝑋, 𝑋 ∗ ) với lát cắt (𝑋, 𝑋 ∗ ) CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Thuật toán Ford-Fulkerson Bắt đầu từ luồng 𝑓 - luồng Xây dựng đồ thị tăng luồng 𝐺𝑓 Từ 𝐺𝑓, tìm đường tăng luồng 𝑃 o o Nếu khơng có đường tăng luồng kết thúc Nếu có đường tăng luồng 𝑃 xây dựng luồng 𝑓’ lặp lại trình khơng tìm thêm đường tăng luồng Để tìm đường tăng luồng 𝐺𝑓 sử dụng thuật tốn tìm kiếm theo chiều rộng (hoặc theo chiều sâu) đỉnh 𝑠 15 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt Một số kết lý thuyết Định lý 2: Luồng cực đại mạng khả thông qua lát cắt hẹp Định lý 3: Nếu tất khả thông qua số nguyên ln tìm luồng cực đại với luồng cung số nguyên 16 CuuDuongThanCong.com http://www.ptit.edu.vn https://fb.com/tailieudientucntt ... đường