BM Khoa học Máy tính • TOÁN RỜI RẠC • Fall 2005 • NGUYỄN ĐỨC NGHĨA Các ứng dụng của Bài toán luồng cực đại Toán rời rạc – Fall 2005 NGUYỄN ĐỨC NGHĨA Bộ môn KHMT 2 Max Flow Applications s t Toán rời rạ[.]
Trang 1Các ứng dụng của
Bài toán luồng cực đại
Trang 2Max Flow Applications
s
Trang 3NỘI DUNG
Một số bài toán luồng tổng quát
– Bài toán với nhiều điểm phát và điểm thu
– Bài toán với hạn chế thông qua ở nút
Một số ứng dụng trong tổ hợp
– Bài toán cặp ghép cực đại trong đồ thị hai phía
– Độ tin cậy của mạng
Trang 4Một số bài toán luồng tổng quát
Trang 5Mạng với nhiều điểm phát và điểm thu
Xét mạng G với p điểm phát s 1 , s 2 , , s p với lượng phát là a 1 , a 2 ,
, a p và q điểm thu t 1 , t 2 , , t q với lượng thu là b 1 , b 2 , , b q
Giả sử rằng luồng có thể đi từ một điểm phát bất kỳ đến tất cả
các điểm thu
Tìm luồng cực đại từ các điểm phát đến các điểm thu
s 1
s 2
s p
t 1
t 2
t q
Trang 6M¹ng víi nhiÒu ®iÓm ph¸t vµ ®iÓm thu
Đa vµo mét ®iÓm ph¸t gi¶ s vµ mét ®iÓm thu gi¶ t vµ c¸c c¹nh nèi s víi
tÊt c¶ c¸c ®iÓm ph¸t vµ c¸c c¹nh nèi c¸c ®iÓm thu víi t
Kntq cña cung (s,s i ) sÏ b»ng a i là lîng ph¸t cña s i
Kntq cña (t i , t) sÏ bằng b i là lîng thu cña ®iÓm thu t i
Bài to¸n dẫn về bài to¸n với 1 điểm ph¸t và một điểm thu
s 1
s 2
s p
t 1
t 2
t q
b q
b 1
a 1
a 2
a p
Trang 7Bài toỏn với hạn chế thụng qua ở nỳt
Giả sử trong mạng G, ngoài khả năng thông qua của
các cung c(u, v), ở mỗi đỉnh v V còn có khả năng
thông qua của đỉnh là d(v), và đòi hỏi tổng luồng đi
vào đỉnh v không đợc vợt quá d(v), tức là
wV f(w,v) d(v).
• Tìm luồng cực đại từ s đến t trong mạng G.
s
v
t
u
d s
d u
d t
d v
1
Trang 8Bài toỏn với hạn chế thụng qua ở nỳt
Xây dựng một mạng G' sao cho: mỗi đỉnh v của G tơng ứng với
2 đỉnh v+, v- trong G', mỗi cung (u, v) trong G ứng với cung (u-,
v+) trong G', mỗi cung (v,w) trong G ứng với cung (v-, w+) trong
G' Ngoài ra, mỗi cung (v+, v-) trong G' có khả năng thông qua là
d(v), tức là bằng khả năng thông qua của đỉnh v trong G.
s
v
t
u
d s
d u
d t
d v
1
s
-v +
t +
u +
d s
d u
d t
d v
1
-u
-v
-Qui về bài toỏn tỡm luồng cực đại trong G’
Trang 9Các ứng dụng của bài toán luồng cực đại
ỨNG DỤNG TRONG TỔ HỢP
Trang 10Bài toán ghép cặp (Matching Problems)
Trang 11Cặp ghép (Matching)
Cho G = (V, E) là đồ thị vô hướng
Cặp ghép trong đồ thị G là tập các cạnh của đồ thị đôi một không
có đỉnh chung
Bài toán cặp ghép cực đại : Tìm cặp ghép với lực lượng lớn nhất
Trang 12Bài toán cặp ghép cực đại trên đồ thị hai phía
Đồ thị vô hướng G=(V,E)
là hai phía nếu V có thể
phân hoạch thành 2 tập
X và Y sao cho mỗi cạnh
e=(x, y) với xX và yY.
Cặp ghép là tập các
cạnh đôi một không có
đỉnh chung.
Bài toán cặp ghép cực đại :
Tìm cặp ghép có lực lượng
lớn nhất
1
2
3 4 5
6
7
8 9 10
Trang 13Qui dẫn về bài toán luồng cực đại
1
2
3 4 5
6
7
8 9 10
Mỗi cung (j, t)
có kntq là 1.
Mỗi cạnh (x,y) thay bởi cung
1
1
∞
Mỗi cung (s, i)
có kntq là 1.
Xây dựng mạng G’
Trang 14Tìm luồng cực đại
1
2
3 4 5
6
7
8 9 10
Giá trị luồng cực đại từ s đến t là 4.
Cặp ghép cực đại có lực lượng là 4.
Trang 15Đinh lý Lực lượng của cặp ghép cực đại trong G = giá trị của luồng
cực đại trong G'.
CM Chỉ cần chứng minh G có cặp ghép lực lượng k khi và chỉ khi G’
có luồng với giá trị k.
f là luồng có giá trị k ■
Bipartite Matching: Tính đúng đắn
s
1
3
5
1'
3'
5'
t 2
4
2'
4'
1
3
5
1'
3'
5'
2
4
2'
4'
G' G
Trang 16) Cho f là luồng giá trị k trong G'.
hoặc 1.
– mỗi đỉnh trong X và Y là đầu mút của một cạnh trong M
– |M| = k, do luồng có giá trị k nên có đúng k cạnh từ X sang Y với
giá trị luồng trên cung là 1 ■
Bipartite Matching: Tính đúng đắn
1
3
5
1'
3'
5'
2
4
2'
4'
G
s
1
3
5
1'
3'
5'
t 2
4
2'
4'
G'
Trang 17ĐN Cặp ghép M E được gọi là hoàn hảo (perfect) nếu mỗi
đỉnh của đồ thị là đầu mút của đúng 1 cạnh trong M.
Câu hỏi Khi nào đồ thị hai phía có cặp ghép hoàn hảo?
Cấu trúc của đồ thị hai phía có cặp ghép hoàn hảo
Rõ ràng ta phải có |X| = |Y|.
Điều kiện nào là cần nữa?
Các điều kiện đủ là gì?
Cặp ghép hoàn hảo (Perfect Matching)
Trang 18Ký hiệu Gỉa sử S là tập con các đỉnh, ký hiệu (S) là tập các đỉnh kề
với các đỉnh trong S.
Nhận xét Nếu đồ thị hai phía G = (X Y, E) có cặp ghép hoàn hảo, thì
| (S)| |S| với mọi tập con S X.
CM Hai đỉnh bất kỳ trong S gắn với hai đỉnh khác nhau trong (S).
Cặp ghép hoàn hảo
Không có cặp ghép hoàn hảo:
S = { 2, 4, 5 }
(S) = { 2', 5' }.
1
3
5
1'
3'
5'
2
4
2'
4'
Trang 19Marriage Theorem [Frobenius 1917, Hall 1935] Giả sử G = (X Y, E)
là đồ thị hai phía với |X| = |Y| Khi đó, G có cặp ghép hoàn hảo khi và
chỉ khi | (S)| |S| với mọi tập con S X.
CM ) Vừa chứng minh ở trên.
Định lý về các đám cưới (Marriage Theorem)
1
3
5
1'
3'
5'
2
4
2'
4'
Không có cặp ghép hoàn hảo:
S = { 2, 4, 5 }
(S) = { 2', 5' }.
Trang 20CM ) Giả sử G không có cặp ghép hoàn hảo.
Xét bài toán luồng cực đại tương ứng và (A, B) là lát cắt nhỏ nhất trong G'.
Theo định lý luồng cực đại và lát cắt nhỏ nhất, cap(A, B) < | X |.
Gọi X A = X A, X B = X B , Y A = Y A.
Do lát cắt nhỏ nhất không sử dụng cạnh : (X A ) Y A Suy ra:
|(X A )| | Y A | = (| X B | + | Y A |) - | X B | = cap(A, B) - | X B | < | X | - | X B | = | X A |.
Chọn S = X A ta có |(S)| < |S| ?! ■
Chứng minh định lý về các đám cưới
XA = {2, 4, 5}
XB = {1, 3}
YA = {2', 5'}
(XA) = {2', 5'}
s
1
3
5
1'
3'
5'
t
2
4
4'
2'
1
1
1
A
G'