NỘI DUNG• Mạng vận tải • Luồng qua mạng • Bài toán luồng cực đại • Thuật toán Ford - Fulkerson • Một số ứng dụng của bài toán luồng cực đại... BÀI TOÁN LUỒNG CỰC ĐẠI Cho một mạng luồng
Trang 1LUỒNG CỰC ĐẠI
Trang 2NỘI DUNG
• Mạng vận tải
• Luồng qua mạng
• Bài toán luồng cực đại
• Thuật toán Ford - Fulkerson
• Một số ứng dụng của bài toán luồng cực đại
Trang 3MẠNG VẬN TẢI
• Định nghĩa 25.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 s không có cung đi vào,
gọi là đỉnh phát.
- Có duy nhất một đỉnh t không có cạnh đi ra,
gọi là đỉnh thu.
- Mỗi cung (u,v) được gán một số nguyên không
âm c(u,v) gọi là khả năng thông qua của cung.
Trang 410 4
Đỉnh phát
Đỉnh trung gian
Đỉnh thu
Trang 50 f(u,v) c(u,v) , (u,v) E
- Điều kiện cân bằng luồng: Tổng giá trị luồng đi vào một đỉnh trung gian bằng tổng giá trị luồng đi ra của đỉnh đó.
} , {
\ ,
) , ( )
,
(
) ( )
(
t s V
v w
v f v
u
f
v w
v u
Trang 6GIÁ TRỊ CỦA LUỒNG
Giá trị của luồng trong mạng G:
(
) , ( )
, (
|:
|
t u
s w
t u f w
s f f
Trang 7BÀI TOÁN LUỒNG CỰC ĐẠI
Cho một mạng luồng G đỉnh phát s và đỉnh thu t
•Tìm một luồng với giá trị cực đại từ s đến t
•Làm cách nào để giải quyết hiệu quả nhất?
Bài toán:
Trang 8• FORD-FULKERSON-METHOD(G,s,t)
• Thiết lập luồng f = 0
• do tăng luồng f dọc theo p
• f là luồng cực đại
Trang 9The Ford-Fulkerson method:
• Phương pháp Ford Fulkerson dựa trên 3 khái niệm cơ bản sau:
– Mạng còn dư
– Đường tăng luồng
– Lát cắt
Trang 10ĐỒ THỊ DƯ THỪA, ĐƯỜNG TĂNG LUỒNG, LÁT CẮT
• Cho một mạng và một luồng , mạng còn dư bao gồm
• Trong hướng ngược lại: c f(v, u) = c(v, u)+f(u, v)
Trang 11• Gọi G=(V,E) là một mạng luồng với đỉnh phát s
và đỉnh thu t, f là một luồng trong G
• Gọi Gf là mạng còn dư của G tạo bởi luồng f, và gọi f’ là một luồng trong Gg Thì, luồng có tổng f + f’ là một luồng trong G với giá trị
• f+f’: luồng cùng hướng được thêm vào
luồng ngược hướng sẽ bỏ quả
' ' f f f
ĐỒ THỊ DƯ THỪA
Trang 12ĐỒ THỊ DƯ THỪA, ĐƯỜNG TĂNG LUỒNG, LÁT CẮT
• Cho mạng luồng G=(V,E) và một luồng f, một
đường tăng luồng p là đường đi từ s đến t trong
Trang 13THUẬT TOÁN FORD-FULKERSON
• do cf(p) min{cf(u,v): (u,v) is in p}
• for each edge (u,v) in p
Trang 148 4
2 10 6
0
0
0 0
0 0
X 4
X 4
X 4
Trang 158 4
2 10 6
0 0
Trang 168 4
2 10 6
0 1
X 3
X 2
1 1
Trang 178 4
2 10 6
2
2 9
4
4
0 0
0 3
Trang 188 4
2 10 6
0 5
Trang 198 4
2 10 6
0 7
Luồng cực đại: 11
Trang 20MỘT SỐ ỨNG DỤNG CỦA LuỒNG CỰC ĐẠI
Bài toán đám cưới vùng quê:
Ở một làng quê nọ có m chàng trai và n cô gái Mỗi chàng trai đều vừa ý với một số những cô gái nhất định Hỏi có thể tổ chức các đám cưới
mà trong đó chàng trai nào cũng lấy được cô gái mình vừa ý không?
Trang 21MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Trang 22MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Bài toán đám cưới vùng quê:
Ta xây dựng mạng G=(V,E)
-Tập đỉnh V bao gồm đỉnh phát s=0, đỉnh thu t=m+n+1 Các đỉnh từ I (i=1 m) đại diện cho các chàng trai Các đỉnh từ m+j (j = 1 n) đại diện cho các
cô gái
-Tập cung E bao gồm các cung
+ (0,i): i = 1 m+ (m+j, m+n+1), j= 1 n+ (i, m + j) nếu chàng trai I vừa ý cô gái j
- Tất cả các cung của mạng đều có khả năng thông qua c bằng 1
Trang 23MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Ví dụ:
0
1 2 3
4 5 6 7
1 1 1
1 1 1 1
1 1
Khi nào bài toán có lời giải?
Trang 24MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Bài toán đám cưới vùng quê:
Ta thấy luồng trên các cung có giá trị là 0 hoặc 1
Nếu giá trị luồng cực đại f* = m thì bài toán có lời giảiCác cung (i, m+j) có giá trị luồng bằng 1 cho biết chàng trai i nên cưới cô gái j
Trang 25MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Ví dụ:
0
1 2 3
4 5 6 7
8
1 1
1 1 1
1 1
1 1
1
1
1
1
Trang 26MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Ví dụ:
0
1 2 3
4 5 6 7
8
1 1
1
1
1 1
Trang 27MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Ví dụ:
0
1 2 3
4 5 6 7
8
1 1
1
1 1
1 1
Trang 28MỘT SỐ ỨNG DỤNG CỦA LUỒNG CỰC ĐẠI
Ví dụ:
0
1 2 3
4 5 6 7
8
1 1
1
1 1
f* = m – Bài toán có lời giải
Các cung (i, m+j) có giá trị luồng bằng 1 cho biết chàng trai i nên cưới cô gái j