Nội dung trình bàyMột số khái niệm, định lý Bài toán luồng cực đại Thuật toán Ford-Fulkerson Thuật toán Edmonds-Karp Một số ứng dụng của mạng và luồng... ∆p được gọi là giá trị thặn
Trang 1BÀI TOÁN
MAXIMUM FLOW
(LUỒNG CỰC ĐẠI) Trình bày: Nhóm 6- KHMT B
Nguyễn Văn Sửu Nguyễn Đề
Nguyễn Đức Nghĩa Nguyễn Đức Quê Nguyễn Thị Thu
Trang 2Nội dung trình bày
Một số khái niệm, định lý
Bài toán luồng cực đại
Thuật toán Ford-Fulkerson
Thuật toán Edmonds-Karp
Một số ứng dụng của mạng và luồng
Trang 3- Có một và chỉ một đỉnh s không có cung đi vào được
gọi là lối vào hay đỉnh phát
- Có một và chỉ một đỉnh t không có cung đi ra được gọi
là lối ra hay đỉnh thu của mạng
Trang 431
15
15
8 15
17
15 15
Trang 5Cho mạng G=(V,E)
2 Luồng
Luồng ϕ trên G là một phép gán cho mỗi cung e=(u,v) một số thực ϕ (e)= ϕ [u,v] ≥ 0, thỏa mãn :
• Luồng không vượt quá khả năng của cung đó
0 ≤ ϕ [u,v] ≤ c[u,v], ∀ (u,v) ∈ E
• Nếu v ≠ s,t thì tổng luồng đi vào v bằng tổng luồng
đi ra khỏi v ( v ∈ V\{s,t} )
Giá trị của 1 luồng bằng tổng luồng trên các cung đi ra khỏi s , và bằng tổng luồng đi vào t
Một số khái niệm, định lý (tt)
Trang 613
2
10
Trang 7 Lát cắt (X,Y) là một phân hoạch tập đỉnh V của mạng
thành hai tập rời nhau X,Y trong đó X chứa đỉnh phát và Y chứa đỉnh thu
Khả năng thông qua của lát cắt (X,Y) là tổng tất cả các khả năng thông qua của các cung (u,v) có u ∈ X và v ∈ Y
Lát cắt với khả năng thông qua nhỏ nhất là lát cắt cực tiểu
Luồng f(X,Y) bằng tổng luồng trên các cung (u,v) với
(u ∈ X,v ∈ Y) và tổng luồng trên các cung (w,z) với z ∈ X,w ∈ Y
3 Lát cắt
Một số khái niệm, định lý (tt)
Trang 9Cho mạng G=(V,E) , và luồng f , khi đó luồng thông qua lát cắt (X,Y) bất kỳ bằng |f|
2
101
5
6
1s
5
13
Trang 10Cho mạng G=(V,E) , và luồng f , khi đó f(X,Y)≤c(X,Y)
5
13
Trang 11Cho mạng G=(V,E) , và luồng f bất kỳ, lát cắt (X,Y) bất kỳ.
5
13
Trang 12Cho f là 1 luồng trên mạng G, Từ mạng G =(V,E) ta xây
dựng đồ thị có trọng số G1= (V,Ef) như sau:
• Nếu f[u,v]<c[u,v] thì ta thêm cung (u,v) vào Ef với trọng
số c[u,v]-f[u,v].
• Xét tiếp, nếu f[u,v]>0 thì thêm cung (v,u) vào Ef với
trọng số của cung là f[u,v]
⇒ Gf là đồ thị tăng luồng
Đồ thị tăng luồng
<
Một số khái niệm, định lý (tt)
Trang 1313
2
13
2
10
1G
G7s
Trang 14• Cho f là 1 luồng trên mạng G, 1 đường đi cơ bản từ A ⇒ B trên Gf gọi là một đường tăng luồng.
• Với một đường tăng luồng P trên Gf, ta đặt ∆p=min{cf(u,v)| (u,v) ∈ P} ∆p được gọi là giá trị thặng dư của đường P
Đường tăng luồng
Một số khái niệm, định lý (tt)
Trang 1513
1
5
6
13
2
51
Mạng vận tải (1) và đồ thị tăng luồng (2) tương ứng cùng với một đường tăng luồng P=(1,3,4,2,5,6); ∆P = min(3,2,5,3,5) = 2
5/2
1/1
3/03/1
6/5
6/6
6/1
Trang 16⇒Ta sẽ tăng giá trị của luồng f bằng cách
Định lý 4,5
f[u,v] =
f[u,v] + ∆ p nếu (u,v) ∈ P f[u,v] - ∆ p nếu (v,u) ∈ P f[u,v]
Trang 171/1
3/03/1
1
23
2
∉5
1
3
∈2
2
1+ =
42
∈5
2
- =
Trang 18Bài toán luồng cực đại
Cho mạng vận tải G = (V,E) Tìm luồng f* với giá trị luồng lớn nhất (Luồng f* gọi là luồng cực đại)
Phát biểu bài toán
Định lý Ford-Fulkerson
Giá trị luồng cực đại trên mạng bằng khả năng thông qua
của lát cắt cực tiểu.
Trang 19Bài toán luồng cực đại
Thuật toán Ford-Fulkerson
• Khởi tạo một luồng bằng 0
• Trong khi đồ thị tăng luồng của f còn có đường đi cơ
bản (đường tăng luồng), thì tìm một đường và nâng
luồng dọc theo đường này
• Khi không còn đường đi cơ bản nữa thì f là luồng cực đại
Trang 20Sơ đồ khối thuật toán Ford-Fullkerson tổng quát
Trang 21thuật toán Find_Path
Trang 22u:=v; v:=P[u]
End u ≠ s
v > 0
v:= -v f[v,u]:=f[v,u] - delta
v:= P[t] ; u:= t ; delta=maxint
Sơ đồ khối thuật toán tăng luồng
Trang 231(1)
3(0)3(1)
6(5)
6(6)
6(1)
Ví dụ: cho mạng G = (V,E)
Ký hiệu 6 ( 5 ): khả năng thông qua ( luồng )
Bước 1: khởi tạo luồng f=0
5(0)
1(0)
3(0)3(0)
6(0)
6(0)
6(0)
Trang 24Bước 2: Đồ thị tăng luồng Gf
5(0)
1(0)
3(0)3(0)
Trang 28Bước 3: Luồng cực đại
Luồng cực đại có giá trị là 9, lát cắt cực tiểu
Trang 290/120/80/4 0/1
0/20/5 0/1 0/2 0/1 0/5 0/12
0/10
0/3 0/2
Trang 300/120/80/4 0/1
0/20/5 0/1 0/2 0/1 0/5 0/12
Trang 310/123/80/4 0/1
0/20/5 0/1 0/2 0/1 0/5 0/12
Trang 320/125/82/4 0/1
0/20/5 0/1 0/2 0/1 0/5 0/12
Trang 330/127/82/4 0/1
0/20/5 0/1 0/2 0/1 0/5 0/12
Trang 345/127/82/4 0/1
0/20/5 0/1 0/2 0/1 5/5 0/12
Trang 356/127/82/4 0/1
0/20/5 0/1 1/2 0/1 5/5 0/12
Trang 367/127/82/4 0/1
0/21/5 0/1 1/2 0/1 5/5 0/12
Trang 378/127/82/4 0/1
0/21/5 0/1 1/2 0/1 5/5 0/12
Trang 388/128/82/4 0/1
1/21/5 0/1 1/2 0/1 5/5 0/12
Trang 399/128/82/4 0/1
2/21/5 0/1 1/2 0/1 5/5 1/12
Trang 409/128/82/4 0/1
2/21/5 0/1 1/2 0/1 5/5 1/12
Trang 41Nhận xét:
• Thuật toán Ford-Fulkerson có độ phức tạp là O(e) (e
là số cung của đồ thị) ở mỗi lần thực hiện.
• Thời gian thực hiện thuật toán phụ thuộc vào số cạnh (e) và số đỉnh (n) của đồ thị Người ta gọi là “phụ thuộc
đa thức mạnh”
Trang 42Thuật toán Edmonds-Karp
Xét đồ thị: dùng thuật toán Ford-Fulkerson (FF) tìm luồng cực đại
1
Trang 431
P=(s,a,c,t)P=(s,a,c,t); f=1
Lần 1
Lần 2
Trang 44Nhược điểm của thuật toán FordFulkerson
Dùng các đường đi có ít khả năng
Các đường đi đưa vào luồng chứa nhiều cung
⇒ Khắc phục nhược điểm:
Khi chọn 1 đường đi cơ bản, ta luôn chọn đường ngắn nhất theo nghĩa số cung bé nhất (vd: sử dụng BFS để tìm đường đi ngắn nhất.
Trang 459(6)
7(3)
Trang 489(0)
7(5)
∆P = 5
7(0)
9(0)
25
P1 = (1,2,5,6)
P2 = (1,3,5,6)
P3= (1,3,2,5,6)
Trang 499(5)
25
P2 = (1,3,5,6)
∆P = 5
7(0)
4
25
5
5
P1 = (1,2,5,6)
P3= (1,3,2,5,6)
Trang 50Đến đây do không còn đường
đi cơ bản nào trên đồ thị tăng
luồng nên thuật toán kết thúc
Trang 51Bước 3: Luồng cực đại fmax=14
Luồng cực đại có giá trị là 14, lát cắt cực tiểu (X,Y):
7(4)
9(9)
7(5)
Trang 52Bài toán luồng cực đại có rất nhiều ứng dụng trong việc giải bài toán tổ hợp Khó khăn chính ở đây là phải xây dựng mạng tương ứng sao cho việc tìm luồng cực đại trong nó sẽ tương đương với việc giải bài toán tổ hợp đặt ra
Bài toán đám cưới vùng quê
Bài toán lập lịch cho hội nghị
Bài toán phân nhóm sinh hoạt
Trang 53Có m chàng trai ở một vùng quê nọ Đối với mỗi chàng trai ta biết các
cô gái mà anh ta vừa ý Hỏi khi nào thì có thể tổ chức các đám cưới trong đó chàng trai nào cũng sánh duyên với các cô gái mà mình vừa ý.
Ta có thể xây dựng đồ thị với các đỉnh biểu thị các chàng trai và các cô gái, còn các cung biểu thị sự vừa ý của các chàng trai với các cô gái Khi đó ta thu được một đồ thị hai phía
Phát biểu bài toán
Giải quyết vấn đề
Trang 54Thí dụ Có 4 chàng trai { T1, T2, T3,T4} và 5 cô gái { G1, G2, G3,G4, G5} Sự vừa ý cho trong bảng sau
1
1 1 1 1 1
1
1
1
1 1
1 1
1
nếu luồng cực đại trong đồ thị
có giá trị Vmax = m