SlideShare a Scribd company logo
1 of 45
Download to read offline
CHƢƠNG 3: LÝ THUYẾT ĐỒ THỊ
GV: Đặng Hữu Nghị
Sđt: 0989640319
Email: nghidanghuu@gmail.com
NỘI DUNG
3.1 •Các khái niệm cơ bản của lý thuyết đồ thị
3.2 •Biểu diễn đồ thị trên máy tính
3.3 •Các thuật toán tìm kiếm trên đồ thị
3.4 •Đồ thị Euler và đồ thị Hamilton
3.5 •Cây và cây khung của đồ thị
3.6 •Bài toán đường đi ngắn nhất
3.7 •Bài toán luồng cực đại trong mạng 2
GIỚI THIỆU
 Luồng cực đại là một trong những bài toán tối ưu
trên đồ thị tìm được những ứng dụng rất rộng rãi
trong cả thực tế cũng như trong lý thuyết tổ hợp.
 Bài toán được đề xuất vào đầu những năm 1950 và
gắn liền với tên tuổi của 2 nhà toán học Mỹ: Ford
(Lester Randolph Ford: 1927 - ) và Fulkerson
(Delbert Ray Fulkerson: 1924 - 1976).
3
MẠNG (NETWORK)
Mạng là đồ thị có hƣớng G = (V, E) :
 Có duy nhất một đỉnh s không có cung đi vào gọi là
đỉnh phát (nguồn) và duy nhất một đỉnh t không có
cung đi ra gọi là đỉnh thu (đích).
 Mỗi cung e của G được gắn với một số không âm c(e)
được gọi là khả năng thông qua của e. Ví dụ:
 Ta quy ước nếu mạng không có cung (u, v) thì ta thêm
vào cung (u, v) với khả năng thông qua c[u, v] bằng 0.
4
LUỒNG TRONG MẠNG
Định nghĩa. Luồng f trong mạng G=(V,E) là phép gán số f(e) cho mỗi
cạnh e ( f(e) được gọi là luồng trên cạnh e) thoả mãn các điều kiện:
1) Hạn chế về khả năng thông qua (Capacity Rule):
Với mỗi cung e, 0  f (e)  c(e)
2) Điều kiện cân bằng luồng (Conservation Rule): Với mỗi v  s, t
( ) ( )
( ) ( )
e E v e E v
f e f e
 
 

 
(*)
( ) ( )
( ) ( ) ( )
e E s e E t
val f f e f e
 
 
 
 
trong đó E(v) và E(v) tương ứng là tập các cung đi vào và đi ra
khỏi đỉnh v.
Định nghĩa. Giá trị của luồng f là
(Đẳng thức (*) thu được bằng cách cộng tất cả các điều kiện cân bằng luồng.)
6
LUỒNG TRONG MẠNG – Ví dụ
 Trong 2 số viết bên mỗi cạnh: giá trị luồng trên cạnh là số màu
đỏ, số còn lại là khả năng thông qua.
 Các điều kiện 1) và 2) được thoả mãn => f là luồng trên mạng.
 Giá trị luồng là:
8 = f(s,v) + f(s,u) + f(s,w) = f(v,t) + f(w,t) + f(z,t)
w
s
v
u
t
z
3/3
2/9
1/1
1/3
3/7
2/6
4/5
1/1
3/5
2/2
Ví dụ:
7
Bài toán luồng cực đại
Luồng trong mạng G được gọi
là luồng cực đại nếu trong số
tất cả các luồng trong mạng G
nó là luồng có giá trị lớn nhất
Bài toán tìm luồng cực đại
trong mạng G được gọi là bài
toán luồng cực đại
w
s
v
u
t
z
3/3
2/9
1/1
1/3
3/7
2/6
4/5
1/1
3/5
2/2
w
s
v
u
t
z
3/3
2/9
1/1
3/3
3/7
4/6
4/5
1/1
3/5
2/2
Luồng với giá trị 8 = 2 + 3 + 3 = 1 + 3 + 4
Luồng cực đại có giá trị 10 = 4 + 3 + 3 = 3 + 3 + 4
VÍ DỤ
 Xét đồ thị tương ứng hệ thống ống dẫn dầu.
 Trong đó các ống tương ứng với các cung, điểm phát là tàu
chở dầu, điểm thu là bể chứa,
 các điểm nối của ống là các nút của đồ thị.
 Khả năng thông qua của các cung tương ứng là tiết diện các
ống.
 Cần phải tìm luồng dầu lớn nhất có thể bơm từ tàu chở
dầu vào bể chứa.
8
9
Luồng trong mạng
truyền thông
Mạng
trạm giao dịch,
máy tính, vệ tinh
Đỉnh Cung
cáp nối, cáp quang,
Luồng
voice, video,
packets
mạng điện
cổng, registers,
processors
dây dẫn dòng điện
cơ khí joints rods, beams, springs heat, energy
thuỷ lợi
hồ chứa, trạm bơm,
nguồn nƣớc
đƣờng ống
dòng nƣớc,
chất lỏng
tài chính nhà băng giao dịch tiền
giao thông
sân bay, ga tàu,
giao lộ
đƣờng cao tốc, ray,
đƣờng bay
hàng hoá,
phƣơng tiện,
hành khách
hoá học sites bonds energy
10
Lát cắt – Đường tăng luồng
 Ta gọi lát cắt (X, X*) là một cách phân hoạch tập đỉnh V
của mạng ra thành 2 tập X và X* = VX, trong đó s  X và
t  X*. Khả năng thông qua của lát cắt (X, X*) là số
 Lát cắt mà khả năng thông qua nhỏ nhất gọi là lát cắt
hẹp nhất.




*
)
,
(
*)
,
(
X
u
X
v
u
v
c
X
X
c
12
Lát cắt là cách phân hoạch tập đỉnh (S, T) sao cho s  S, t  T.
 Khả năng thông qua cap(S,T) của lát cắt (S, T) là số:
Lát cắt (Cuts)
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
kntq = 30
Lát cắt nhỏ nhất (hẹp nhất) là lát cắt với kntq nhỏ nhất.
13
Lát cắt (S1, T1), S1={s,2,3,4}, T={5,6,7,t) có khả năng thông qua 62:
Lát cắt
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
cap(S1,T1)= 62
14
Lát cắt (S2, T2), S2={s,3,4,7}, T2={2,5,6,t) có khả năng thông qua 28:
Lát cắt
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
cap(S2,T2) = 28
15
Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng
chảy qua lát cắt chính bằng giá trị của luồng:
trong đó S  T = {(v,w)E: vS, wT} và T S = {(v,w)E: vT, w S}
Luồng và lát cắt
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
( )
( ) ( ) ( ) ( )
e S T e T S e E s
f e f f e val f
e


   

 
  
Giá trị = 24
10
6
6
10
10
0 10
4 8 8
0
4 0
0
0
16
Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng
chảy qua lát cắt chính bằng giá trị của luồng:
Luồng và lát cắt
10
6
6
10
10
0 10
4 8 8
0
4 0
0
0
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
Giá trị = 24
17
Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng
chảy qua lát cắt chính bằng giá trị của luồng:
Luồng và lát cắt
10
6
6
10
10
0 10
4 8 8
0
4 0
0
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
Giá trị = 24
0
18
Bổ đề 2. Giả sử f là luồng, còn (S, T) là lát cắt. Khi đó, val(f) cap(S, T).
CM.
Luồng và lát cắt
( ) ( ) ( )
( )
( )
cap( , )
e S T e T S
e S T
e S T
val f f e f e
f e
c e
S T
   
 
 
 



 


s
t
S T
7
6
8
4
19
Which is the net flow across the given cut?
A. 11 (20 + 25 − 8 − 11 − 9 − 6)
B. 26 (20 + 22 − 8 − 4 − 4)
C. 42 (20 + 22)
D. 45 (20 + 25)
20
Luồng cực đại và lát cắt nhỏ nhất
Max Flow and Min Cut
Hệ quả. Giả sử f là luồng, còn (S, T) là lát cắt. Nếu val(f) = cap(S, T), thì
f là luồng cực đại còn (S, T) là lát cắt hẹp nhất.
CM. Xét f’ là luồng bất kỳ và (S’,T’) là lát cắt bất kỳ. Theo bổ đề ta có
val(f’)  cap(S,T) = val(f)  cap(S’,T’).
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
10
9
9
14
14
4 10
4 8 9
1
0 0
Giá trị luồng = 28
0
0
kntq của lát cắt = 28
21
Định lý về luồng cực đại và lát cắt nhỏ nhất
Max-Flow Min-Cut Theorem
Đinh lý (Ford-Fulkerson, 1956): Trong mạng bất kỳ, giá trị của luồng
cực đại luôn bằng khả năng thông qua của lát cắt nhỏ nhất.
s
2
3
4
5
6
7
t
15
5
30
15
10
8
15
9
6 10
10
10
15
4
4
10
9
9
14
14
4 10
4 8 9
1
0 0
Flow value = 28
0
0
Cut capacity = 28
22
Ý tưởng thuật toán
Thuật toán tham lam:
 Bắt đầu từ luồng 0 (Luồng có giá trị = 0).
 Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).
 Tăng luồng dọc theo đường đi P.
 Lặp lại cho đến khi gặp bế tắc.
s
4
2
5
3 t
4
0 0
0 0 0
0
4
0
4
4
Luồng có giá trị = 0
10 13 10
23
Ý tưởng thuật toán
Thuật toán tham lam:
 Bắt đầu từ luồng 0 (Luồng có giá trị = 0).
 Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).
 Tăng luồng dọc theo đường đi P.
 Lặp lại cho đến khi gặp bế tắc.
s
4
2
5
3 t
4
0 0
0 0 0
0
4
0
4
4
Giá trị luồng = 10
10 13 10
10 10 10
X X X
24
Ý tưởng thuật toán
Thuật toán tham lam:
 Bắt đầu từ luồng 0 (Luồng có giá trị = 0).
 Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).
 Tăng luồng dọc theo đường đi P.
 Lặp lại cho đến khi gặp bế tắc.
Thuật toán tham lam cho luồng với giá trị 10.
s
4
2
5
3 t
10 13 10
4
0 0
10 10 10
0
4
0
4
4
25
Ý tưởng thuật toán
Thuật toán tham lam không cho lời giải tối ưu.
s
4
2
5
3 t
10 13 10
4
0 0
10 10 10
0
4
0
4
4
TT tham lam:
Giá trị luồng = 10
s
4
2
5
3 t
10 13 10
4
4 4
10 6 10
4
4
4
4
4
Tối ưu:
Giá trị luồng = 14
26
ĐỒ THỊ TĂNG LUỒNG- ĐƯỜNG TĂNG LUỒNG
ĐỒ THỊ TĂNG LUỒNG
 Giả sử f là một luồng trên mạng G = (V, E). Từ mạng G
= (V, E) ta xây dựng đồ thị có trọng số trên cung Gf =
(V, Ef) với tập cung Ef và trọng số trên các cung được
xác định theo quy tắc sau:
1. Nếu e = (u, v)  E với f(u, v) = 0 thì (u, v)  Ef với trọng số
c(u, v).
2. Nếu e = (u, v)  E với f(u, v) = c(u, v) thì (v, u)  Ef với
trọng số f(u, v).
3. Nếu e = (u, v)  E với 0 < f(u, v) < c(u, v) thì (u, v)  Ef với
trọng số c(u, v) – f(u, v) và (v, u)  Ef với trọng số f(u, v).
 Các cung của Gf đồng thời cũng là cung của G được gọi
là cung thuận, các cung còn lại được gọi là cung
nghịch. Đồ thị Gf được gọi là đồ thị tăng luồng.
27
ĐỒ THỊ TĂNG LUỒNG
28
ĐƯỜNG TĂNG LUỒNG
 Đường tăng luồng f là mọi đường đi P từ s đến t trên đồ
thị tăng luồng Gf.
 Gọi d là trọng số nhỏ nhất trong các trọng số của các
cung trên đường đi P. Từ luồng f, xây dựng luồng f’ trên
mạng G như sau:
 Nếu (v, w)  P là cung thuận thì f’(v, w) = f(v, w) + d
 Nếu (v, w)  P là cung nghịch thì f’(v, w) = f(v, w) – d
 Từ đó giá trị của luồng được tăng thêm 1 đại lượng d: val(f’)
= val(f) + d
 Các mệnh đề dưới đây là tương đương:
1. f là luồng cực đại trong mạng.
2. Không tìm được đường tăng luồng f.
3. val(f) = c(X, X*) với một lát cắt (X, X*) nào đó. 29
THUẬT TOÁN FORD – FULKERSON
 Bước khởi tạo:
 Bắt đầu từ luồng mà trên tất cả các cung bằng 0 (ta sẽ
gọi luồng như vậy là luồng không)
 lặp lại bước lặp sau đây cho đến khi thu được luồng mà
đối với nó không còn đường tăng.
 Bước lặp tăng luồng (Ford – Fulkerson):
 Tìm đường tăng P đối với luồng hiện có.
 Tăng luồng dọc theo P.
 Khi đã có luồng cực đại, có thể tìm lát cắt hẹp nhất
30
Thuật toán Ford-Fulkerson:
Để tìm luồng cực đại của mạng vận tải G, ta xuất phát
từ luồng tuỳ ý ϕ của G, rồi nâng luồng lên đầy, sau đó áp
dụng thuật toán Ford-Fulkerson.
Thuật toán gồm 3 bước:
Bước 1 (đánh dấu ở đỉnh của mạng):
 Lối vào v0 được đánh dấu bằng 0.
 Nếu đỉnh vi đã được đánh dấu thì ta dùng chỉ số +i để
đánh dấu cho mọi đỉnh y chưa được đánh dấu mà
(vi,y)∈E và cung này chưa bão hoà (ϕ(vi,y)<m(vi,y)).
 Nếu đỉnh vi đã được đánh dấu thì ta dùng chỉ số −i để
đánh dấu cho mọi đỉnh z chưa được đánh dấu mà
(z,vi)∈E và luồng của cung này dương (ϕ(z,vi)>0).
31
Thuật toán Ford-Fulkerson:
Bước 3:
Nếu với luồng ϕ0 bằng phương pháp trên ta không thể
nâng giá trị của luồng lên nữa, nghĩa là ta không thể
đánh dấu được đỉnh vn, thì ta nói rằng quá trình nâng
luồng kết thúc và ϕ0 đã đạt giá trị cực đại, đồng thời gọi
ϕ0 là luồng kết thúc.
32
Thuật toán Ford-Fulkerson:
Nếu với phương pháp này ta đánh dấu được tới
lối ra vn thì trong G tồn tại giữa v0 và vn một xích
α, mọi đỉnh đều khác nhau và được đánh dấu
theo chỉ số của đỉnh liền trước nó (chỉ sai khác
nhau về dấu). Khi đó chắc chắn ta nâng được
giá trị của luồng.
33
Thuật toán Ford-Fulkerson:
Bước 2 (nâng giá trị của luồng): Để nâng giá trị của
luồng ϕ, ta đặt:
 ϕ’(e) = ϕ(e), nếu e ∉ α
 ϕ’(e) = ϕ(e) + 1, nếu e ∈ α được định hướng theo
chiều của xích α đi từ vo đến vn
 ϕ’(e) = ϕ(e) − 1, nếu e ∈ α được định hướng ngược
với chiều của xích α đi từ vo đến vn
 ϕ’ thoả mãn các điều kiện về luồng, nên ϕ’ là một
luồng và ta có: ϕ’n= ϕn+1.
Như vậy, ta đã nâng được luồng lên một đơn vị.
Sau đó lặp lại một vòng mới. Vì khả năng thông qua của
các cung đều hữu hạn, nên quá trình phải dừng lại sau
một số hữu hạn bước.
34
35
Thuật toán Ford – Fulkerson
Augment(f,P)
b  cf(P)
FOR e  P DO
IF (e  E) THEN // cạnh thuận
f(e)  f(e) + b
ELSE // cạnh nghịch
f(eR)  f(e) – b
RETURN f
Tăng luồng f dọc theo đường tăng P
Ford_Fulkerson(G,c,s,t);
FOR e  E DO // Khởi tạo luồng 0
f(e)  0
Gf  đồ thị tăng luồng f
WHILE (tìm được đường tăng luồng P) DO
f  augment(f, P)
Sửa lại Gf
RETURN f
Thuật toán Ford-Fulkerson
Ví dụ
VÍ DỤ:
 Cho mạng vận tải như hình dưới đây với khả năng thông
qua được đặt trong khuyên tròn, luồng được ghi trên các
cung. Tìm luồng cực đại của mạng này.
36
GIẢI:
 Mạng vận tải G có đỉnh phát là v0 và đỉnh thu là
v8.
 Luồng ϕ có đường đi (v0,v4), (v4,v6), (v6,v8) gồm các
cung chưa bão hoà nên nó chưa đầy. Do đó có thể nâng
luồng của các cung này lên một đơn vị, để được ϕ1
37
V8
V4 V6
V0
6+1
+0 +4
+6
2+1
11+1
GIẢI:
 Do mỗi đường xuất phát từ v0 đến v8 đều chứa ít nhất
một cung bão hoà, nên luồng ϕ1 là luồng đầy. Song nó
chưa phải là luồng cực đại.
38
 Áp dụng TT Ford-Fulkerson để nâng luồng ϕ1.
 Xét xích α=(v0, v4, v6, v3, v7, v8). Quá trình đánh dấu từ
v0 đến v8 để có thể nâng luồng ϕ1 lên một đơn vị bằng
cách biến đổi luồng tại các cung thuộc xích α được đánh
dấu.
39
GIẢI:
 Sau đó ta có luồng ϕ2.
 Luồng ϕ2 chưa phải là cực đại nên ta tiếp tục nâng
luồng
40
 Tương tự, xét xích β=(v0, v1, v5, v2, v6, v3, v7, v8).
41
 Nâng luồng ϕ2 lên một đơn vị, sau đó ta có luồng ϕ3.
 Tiếp theo ta chỉ có thể đánh dấu được đỉnh v0 nên quá trình
nâng luồng kết thúc và ta được giá trị của luồng cực đại là:
ϕ3 = 6+12+8 = 26. 42
Bài tập
 Giải bài toán mạng vận tải sau bằng thuật toán Ford-
Fulkerson với luồng vận tải khởi đầu bằng 0.
43
44
Giải bài toán mạng vận tải sau bằng thuật toán Ford-Fulkerson với
luồng vận tải khởi đầu bằng 0.
45
4
2
3 5
t
s
4
10
10
2
4
9
5 8
6
7
3
1 9
6
2 2
Giải bài toán mạng vận tải sau bằng thuật toán Ford-
Fulkerson với luồng vận tải khởi đầu bằng 0.

More Related Content

What's hot

đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịThanh Hoa
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcducmanhkthd
 
Chương 3 lý thuyết về hành vi của người tiêu dùng
Chương 3 lý thuyết về hành vi của người tiêu dùngChương 3 lý thuyết về hành vi của người tiêu dùng
Chương 3 lý thuyết về hành vi của người tiêu dùngNguyễn Ngọc Phan Văn
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)Trieu Nguyen
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boolekikihoho
 
Lí thuyết về hành vi của người tiêu dùng
Lí thuyết về hành vi của người tiêu dùngLí thuyết về hành vi của người tiêu dùng
Lí thuyết về hành vi của người tiêu dùngMĩm's Thư
 
Giải số bằng mathlab
Giải số bằng mathlabGiải số bằng mathlab
Giải số bằng mathlabdvt1996
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Do do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralDo do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralBui Loi
 
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hìnhBài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hìnhThanh Hoa
 
4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptxMUyn25
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplacehiendoanht
 
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESS
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESSĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESS
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESSnataliej4
 
Giải bài tập xác suất thống kê 1
Giải bài tập xác suất thống kê 1Giải bài tập xác suất thống kê 1
Giải bài tập xác suất thống kê 1Trinh Tu
 

What's hot (20)

đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thịđồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
đồ áN phân tích thiết kế hệ thống quản lý bán hàng siêu thị
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao học
 
Công Thức Vật Lý
Công Thức Vật LýCông Thức Vật Lý
Công Thức Vật Lý
 
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềmĐề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
 
Chương 3 lý thuyết về hành vi của người tiêu dùng
Chương 3 lý thuyết về hành vi của người tiêu dùngChương 3 lý thuyết về hành vi của người tiêu dùng
Chương 3 lý thuyết về hành vi của người tiêu dùng
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
Lí thuyết về hành vi của người tiêu dùng
Lí thuyết về hành vi của người tiêu dùngLí thuyết về hành vi của người tiêu dùng
Lí thuyết về hành vi của người tiêu dùng
 
Bai 4 Phan Lop
Bai 4 Phan LopBai 4 Phan Lop
Bai 4 Phan Lop
 
Giải số bằng mathlab
Giải số bằng mathlabGiải số bằng mathlab
Giải số bằng mathlab
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Do do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergralDo do tich-phan-thai_thuan_quang mearsure and intergral
Do do tich-phan-thai_thuan_quang mearsure and intergral
 
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hìnhBài giảng qui hoạch tuyến tính phương pháp đơn hình
Bài giảng qui hoạch tuyến tính phương pháp đơn hình
 
4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx
 
Bảng giá trị hàm Laplace
Bảng giá trị hàm LaplaceBảng giá trị hàm Laplace
Bảng giá trị hàm Laplace
 
Slide3
Slide3Slide3
Slide3
 
05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf
 
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESS
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESSĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESS
ĐỒ ÁN XÂY DỰNG WEBSITE BÁN HÀNG BẰNG WORDPRESS
 
Giải bài tập xác suất thống kê 1
Giải bài tập xác suất thống kê 1Giải bài tập xác suất thống kê 1
Giải bài tập xác suất thống kê 1
 
Bộ lọc kalman để tính toán đường di chuyển của thiết bị khảo sát
Bộ lọc kalman để tính toán đường di chuyển của thiết bị khảo sátBộ lọc kalman để tính toán đường di chuyển của thiết bị khảo sát
Bộ lọc kalman để tính toán đường di chuyển của thiết bị khảo sát
 

Similar to Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf

Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)
Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)
Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)Bui Loi
 
Convolution Decode
Convolution DecodeConvolution Decode
Convolution DecodeEddie Bui
 
Lý thuyết-mạch môn điện tử
Lý thuyết-mạch môn điện tửLý thuyết-mạch môn điện tử
Lý thuyết-mạch môn điện tửHương Nguyễn
 
Giá trị tức thời của dòng điện
Giá trị tức thời của dòng điệnGiá trị tức thời của dòng điện
Giá trị tức thời của dòng điệntuituhoc
 
Các dạng bài tập điện xoay chiều
Các dạng bài tập điện xoay chiềuCác dạng bài tập điện xoay chiều
Các dạng bài tập điện xoay chiềutuituhoc
 
Cac dang bai tap dien xoay chieu 01
Cac dang bai tap dien xoay chieu 01Cac dang bai tap dien xoay chieu 01
Cac dang bai tap dien xoay chieu 01tuituhoc
 
Tích phân-7-Câu hỏi thực tế-pages-90-114
Tích phân-7-Câu hỏi thực tế-pages-90-114Tích phân-7-Câu hỏi thực tế-pages-90-114
Tích phân-7-Câu hỏi thực tế-pages-90-114lovestem
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...Nguyen Thanh Tu Collection
 
Mot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teMot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teThai Duong Vu
 
Phương trình năng lượng tổng quát - Trịnh Văn Quang
Phương trình năng lượng tổng quát - Trịnh Văn Quang Phương trình năng lượng tổng quát - Trịnh Văn Quang
Phương trình năng lượng tổng quát - Trịnh Văn Quang Trinh Van Quang
 
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích PhânBui Loi
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tínhNguyen Ngoc Binh Phuong
 
Dạng bài tập sóng cơ
Dạng bài tập sóng cơDạng bài tập sóng cơ
Dạng bài tập sóng cơtuituhoc
 

Similar to Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf (20)

Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)
Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)
Bai Tap Hinh Hoc Vi Phan (CoLoiGiai)
 
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.docBài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
Bài Toán Phân Luồng Giao Thông Và Ứng Dụng.doc
 
Convolution Decode
Convolution DecodeConvolution Decode
Convolution Decode
 
Toán ứng dụng
Toán ứng dụngToán ứng dụng
Toán ứng dụng
 
Lý thuyết-mạch môn điện tử
Lý thuyết-mạch môn điện tửLý thuyết-mạch môn điện tử
Lý thuyết-mạch môn điện tử
 
Giá trị tức thời của dòng điện
Giá trị tức thời của dòng điệnGiá trị tức thời của dòng điện
Giá trị tức thời của dòng điện
 
Các dạng bài tập điện xoay chiều
Các dạng bài tập điện xoay chiềuCác dạng bài tập điện xoay chiều
Các dạng bài tập điện xoay chiều
 
Cac dang bai tap dien xoay chieu 01
Cac dang bai tap dien xoay chieu 01Cac dang bai tap dien xoay chieu 01
Cac dang bai tap dien xoay chieu 01
 
Bai 14
Bai 14Bai 14
Bai 14
 
Tích phân-7-Câu hỏi thực tế-pages-90-114
Tích phân-7-Câu hỏi thực tế-pages-90-114Tích phân-7-Câu hỏi thực tế-pages-90-114
Tích phân-7-Câu hỏi thực tế-pages-90-114
 
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
TỔNG HỢP HƠN 100 ĐỀ THI THỬ TỐT NGHIỆP THPT VẬT LÝ 2024 - TỪ CÁC TRƯỜNG, TRƯ...
 
Dc lop90910
Dc lop90910Dc lop90910
Dc lop90910
 
Luận văn: Vấn đề về phần xoắn của đường cong elliptic, HOT
Luận văn: Vấn đề về phần xoắn của đường cong elliptic, HOTLuận văn: Vấn đề về phần xoắn của đường cong elliptic, HOT
Luận văn: Vấn đề về phần xoắn của đường cong elliptic, HOT
 
Mot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc teMot so bai toan ung dung thuc te
Mot so bai toan ung dung thuc te
 
De li l2
De li l2De li l2
De li l2
 
Phương trình năng lượng tổng quát - Trịnh Văn Quang
Phương trình năng lượng tổng quát - Trịnh Văn Quang Phương trình năng lượng tổng quát - Trịnh Văn Quang
Phương trình năng lượng tổng quát - Trịnh Văn Quang
 
Sóng Cơ
Sóng CơSóng Cơ
Sóng Cơ
 
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân
[CPO - Tạp chí và tư liệu toán học] Thực tế Nguyên Hàm - Tích Phân
 
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
[Toán kinh tế ứng dụng] Bài 1: Hàm tuyến tính
 
Dạng bài tập sóng cơ
Dạng bài tập sóng cơDạng bài tập sóng cơ
Dạng bài tập sóng cơ
 

Chương 3.7. Bài toán luồng cực đại trong mạng v2.pdf

  • 1. CHƢƠNG 3: LÝ THUYẾT ĐỒ THỊ GV: Đặng Hữu Nghị Sđt: 0989640319 Email: nghidanghuu@gmail.com
  • 2. NỘI DUNG 3.1 •Các khái niệm cơ bản của lý thuyết đồ thị 3.2 •Biểu diễn đồ thị trên máy tính 3.3 •Các thuật toán tìm kiếm trên đồ thị 3.4 •Đồ thị Euler và đồ thị Hamilton 3.5 •Cây và cây khung của đồ thị 3.6 •Bài toán đường đi ngắn nhất 3.7 •Bài toán luồng cực đại trong mạng 2
  • 3. GIỚI THIỆU  Luồng cực đại là một trong những bài toán tối ưu trên đồ thị tìm được những ứng dụng rất rộng rãi trong cả thực tế cũng như trong lý thuyết tổ hợp.  Bài toán được đề xuất vào đầu những năm 1950 và gắn liền với tên tuổi của 2 nhà toán học Mỹ: Ford (Lester Randolph Ford: 1927 - ) và Fulkerson (Delbert Ray Fulkerson: 1924 - 1976). 3
  • 4. MẠNG (NETWORK) Mạng là đồ thị có hƣớng G = (V, E) :  Có duy nhất một đỉnh s không có cung đi vào gọi là đỉnh phát (nguồn) và duy nhất một đỉnh t không có cung đi ra gọi là đỉnh thu (đích).  Mỗi cung e của G được gắn với một số không âm c(e) được gọi là khả năng thông qua của e. Ví dụ:  Ta quy ước nếu mạng không có cung (u, v) thì ta thêm vào cung (u, v) với khả năng thông qua c[u, v] bằng 0. 4
  • 5. LUỒNG TRONG MẠNG Định nghĩa. Luồng f trong mạng G=(V,E) là phép gán số f(e) cho mỗi cạnh e ( f(e) được gọi là luồng trên cạnh e) thoả mãn các điều kiện: 1) Hạn chế về khả năng thông qua (Capacity Rule): Với mỗi cung e, 0  f (e)  c(e) 2) Điều kiện cân bằng luồng (Conservation Rule): Với mỗi v  s, t ( ) ( ) ( ) ( ) e E v e E v f e f e        (*) ( ) ( ) ( ) ( ) ( ) e E s e E t val f f e f e         trong đó E(v) và E(v) tương ứng là tập các cung đi vào và đi ra khỏi đỉnh v. Định nghĩa. Giá trị của luồng f là (Đẳng thức (*) thu được bằng cách cộng tất cả các điều kiện cân bằng luồng.)
  • 6. 6 LUỒNG TRONG MẠNG – Ví dụ  Trong 2 số viết bên mỗi cạnh: giá trị luồng trên cạnh là số màu đỏ, số còn lại là khả năng thông qua.  Các điều kiện 1) và 2) được thoả mãn => f là luồng trên mạng.  Giá trị luồng là: 8 = f(s,v) + f(s,u) + f(s,w) = f(v,t) + f(w,t) + f(z,t) w s v u t z 3/3 2/9 1/1 1/3 3/7 2/6 4/5 1/1 3/5 2/2 Ví dụ:
  • 7. 7 Bài toán luồng cực đại Luồng trong mạng G được gọi là luồng cực đại nếu trong số tất cả các luồng trong mạng G nó là luồng có giá trị lớn nhất Bài toán tìm luồng cực đại trong mạng G được gọi là bài toán luồng cực đại w s v u t z 3/3 2/9 1/1 1/3 3/7 2/6 4/5 1/1 3/5 2/2 w s v u t z 3/3 2/9 1/1 3/3 3/7 4/6 4/5 1/1 3/5 2/2 Luồng với giá trị 8 = 2 + 3 + 3 = 1 + 3 + 4 Luồng cực đại có giá trị 10 = 4 + 3 + 3 = 3 + 3 + 4
  • 8. VÍ DỤ  Xét đồ thị tương ứng hệ thống ống dẫn dầu.  Trong đó các ống tương ứng với các cung, điểm phát là tàu chở dầu, điểm thu là bể chứa,  các điểm nối của ống là các nút của đồ thị.  Khả năng thông qua của các cung tương ứng là tiết diện các ống.  Cần phải tìm luồng dầu lớn nhất có thể bơm từ tàu chở dầu vào bể chứa. 8
  • 9. 9 Luồng trong mạng truyền thông Mạng trạm giao dịch, máy tính, vệ tinh Đỉnh Cung cáp nối, cáp quang, Luồng voice, video, packets mạng điện cổng, registers, processors dây dẫn dòng điện cơ khí joints rods, beams, springs heat, energy thuỷ lợi hồ chứa, trạm bơm, nguồn nƣớc đƣờng ống dòng nƣớc, chất lỏng tài chính nhà băng giao dịch tiền giao thông sân bay, ga tàu, giao lộ đƣờng cao tốc, ray, đƣờng bay hàng hoá, phƣơng tiện, hành khách hoá học sites bonds energy
  • 10. 10 Lát cắt – Đường tăng luồng
  • 11.  Ta gọi lát cắt (X, X*) là một cách phân hoạch tập đỉnh V của mạng ra thành 2 tập X và X* = VX, trong đó s  X và t  X*. Khả năng thông qua của lát cắt (X, X*) là số  Lát cắt mà khả năng thông qua nhỏ nhất gọi là lát cắt hẹp nhất.     * ) , ( *) , ( X u X v u v c X X c
  • 12. 12 Lát cắt là cách phân hoạch tập đỉnh (S, T) sao cho s  S, t  T.  Khả năng thông qua cap(S,T) của lát cắt (S, T) là số: Lát cắt (Cuts) s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 kntq = 30 Lát cắt nhỏ nhất (hẹp nhất) là lát cắt với kntq nhỏ nhất.
  • 13. 13 Lát cắt (S1, T1), S1={s,2,3,4}, T={5,6,7,t) có khả năng thông qua 62: Lát cắt s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 cap(S1,T1)= 62
  • 14. 14 Lát cắt (S2, T2), S2={s,3,4,7}, T2={2,5,6,t) có khả năng thông qua 28: Lát cắt s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 cap(S2,T2) = 28
  • 15. 15 Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng chảy qua lát cắt chính bằng giá trị của luồng: trong đó S  T = {(v,w)E: vS, wT} và T S = {(v,w)E: vT, w S} Luồng và lát cắt s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 ( ) ( ) ( ) ( ) ( ) e S T e T S e E s f e f f e val f e             Giá trị = 24 10 6 6 10 10 0 10 4 8 8 0 4 0 0 0
  • 16. 16 Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng chảy qua lát cắt chính bằng giá trị của luồng: Luồng và lát cắt 10 6 6 10 10 0 10 4 8 8 0 4 0 0 0 s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 Giá trị = 24
  • 17. 17 Bổ đề 1. Giả sử f là luồng, và (S, T) là lát cắt. Khi đó giá trị luồng chảy qua lát cắt chính bằng giá trị của luồng: Luồng và lát cắt 10 6 6 10 10 0 10 4 8 8 0 4 0 0 s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 Giá trị = 24 0
  • 18. 18 Bổ đề 2. Giả sử f là luồng, còn (S, T) là lát cắt. Khi đó, val(f) cap(S, T). CM. Luồng và lát cắt ( ) ( ) ( ) ( ) ( ) cap( , ) e S T e T S e S T e S T val f f e f e f e c e S T                  s t S T 7 6 8 4
  • 19. 19 Which is the net flow across the given cut? A. 11 (20 + 25 − 8 − 11 − 9 − 6) B. 26 (20 + 22 − 8 − 4 − 4) C. 42 (20 + 22) D. 45 (20 + 25)
  • 20. 20 Luồng cực đại và lát cắt nhỏ nhất Max Flow and Min Cut Hệ quả. Giả sử f là luồng, còn (S, T) là lát cắt. Nếu val(f) = cap(S, T), thì f là luồng cực đại còn (S, T) là lát cắt hẹp nhất. CM. Xét f’ là luồng bất kỳ và (S’,T’) là lát cắt bất kỳ. Theo bổ đề ta có val(f’)  cap(S,T) = val(f)  cap(S’,T’). s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 10 9 9 14 14 4 10 4 8 9 1 0 0 Giá trị luồng = 28 0 0 kntq của lát cắt = 28
  • 21. 21 Định lý về luồng cực đại và lát cắt nhỏ nhất Max-Flow Min-Cut Theorem Đinh lý (Ford-Fulkerson, 1956): Trong mạng bất kỳ, giá trị của luồng cực đại luôn bằng khả năng thông qua của lát cắt nhỏ nhất. s 2 3 4 5 6 7 t 15 5 30 15 10 8 15 9 6 10 10 10 15 4 4 10 9 9 14 14 4 10 4 8 9 1 0 0 Flow value = 28 0 0 Cut capacity = 28
  • 22. 22 Ý tưởng thuật toán Thuật toán tham lam:  Bắt đầu từ luồng 0 (Luồng có giá trị = 0).  Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).  Tăng luồng dọc theo đường đi P.  Lặp lại cho đến khi gặp bế tắc. s 4 2 5 3 t 4 0 0 0 0 0 0 4 0 4 4 Luồng có giá trị = 0 10 13 10
  • 23. 23 Ý tưởng thuật toán Thuật toán tham lam:  Bắt đầu từ luồng 0 (Luồng có giá trị = 0).  Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).  Tăng luồng dọc theo đường đi P.  Lặp lại cho đến khi gặp bế tắc. s 4 2 5 3 t 4 0 0 0 0 0 0 4 0 4 4 Giá trị luồng = 10 10 13 10 10 10 10 X X X
  • 24. 24 Ý tưởng thuật toán Thuật toán tham lam:  Bắt đầu từ luồng 0 (Luồng có giá trị = 0).  Tìm đường đi P từ s đến t trong đó mỗi cung thoả mãn f(e) < c(e).  Tăng luồng dọc theo đường đi P.  Lặp lại cho đến khi gặp bế tắc. Thuật toán tham lam cho luồng với giá trị 10. s 4 2 5 3 t 10 13 10 4 0 0 10 10 10 0 4 0 4 4
  • 25. 25 Ý tưởng thuật toán Thuật toán tham lam không cho lời giải tối ưu. s 4 2 5 3 t 10 13 10 4 0 0 10 10 10 0 4 0 4 4 TT tham lam: Giá trị luồng = 10 s 4 2 5 3 t 10 13 10 4 4 4 10 6 10 4 4 4 4 4 Tối ưu: Giá trị luồng = 14
  • 26. 26 ĐỒ THỊ TĂNG LUỒNG- ĐƯỜNG TĂNG LUỒNG
  • 27. ĐỒ THỊ TĂNG LUỒNG  Giả sử f là một luồng trên mạng G = (V, E). Từ mạng G = (V, E) ta xây dựng đồ thị có trọng số trên cung Gf = (V, Ef) với tập cung Ef và trọng số trên các cung được xác định theo quy tắc sau: 1. Nếu e = (u, v)  E với f(u, v) = 0 thì (u, v)  Ef với trọng số c(u, v). 2. Nếu e = (u, v)  E với f(u, v) = c(u, v) thì (v, u)  Ef với trọng số f(u, v). 3. Nếu e = (u, v)  E với 0 < f(u, v) < c(u, v) thì (u, v)  Ef với trọng số c(u, v) – f(u, v) và (v, u)  Ef với trọng số f(u, v).  Các cung của Gf đồng thời cũng là cung của G được gọi là cung thuận, các cung còn lại được gọi là cung nghịch. Đồ thị Gf được gọi là đồ thị tăng luồng. 27
  • 28. ĐỒ THỊ TĂNG LUỒNG 28
  • 29. ĐƯỜNG TĂNG LUỒNG  Đường tăng luồng f là mọi đường đi P từ s đến t trên đồ thị tăng luồng Gf.  Gọi d là trọng số nhỏ nhất trong các trọng số của các cung trên đường đi P. Từ luồng f, xây dựng luồng f’ trên mạng G như sau:  Nếu (v, w)  P là cung thuận thì f’(v, w) = f(v, w) + d  Nếu (v, w)  P là cung nghịch thì f’(v, w) = f(v, w) – d  Từ đó giá trị của luồng được tăng thêm 1 đại lượng d: val(f’) = val(f) + d  Các mệnh đề dưới đây là tương đương: 1. f là luồng cực đại trong mạng. 2. Không tìm được đường tăng luồng f. 3. val(f) = c(X, X*) với một lát cắt (X, X*) nào đó. 29
  • 30. THUẬT TOÁN FORD – FULKERSON  Bước khởi tạo:  Bắt đầu từ luồng mà trên tất cả các cung bằng 0 (ta sẽ gọi luồng như vậy là luồng không)  lặp lại bước lặp sau đây cho đến khi thu được luồng mà đối với nó không còn đường tăng.  Bước lặp tăng luồng (Ford – Fulkerson):  Tìm đường tăng P đối với luồng hiện có.  Tăng luồng dọc theo P.  Khi đã có luồng cực đại, có thể tìm lát cắt hẹp nhất 30
  • 31. Thuật toán Ford-Fulkerson: Để tìm luồng cực đại của mạng vận tải G, ta xuất phát từ luồng tuỳ ý ϕ của G, rồi nâng luồng lên đầy, sau đó áp dụng thuật toán Ford-Fulkerson. Thuật toán gồm 3 bước: Bước 1 (đánh dấu ở đỉnh của mạng):  Lối vào v0 được đánh dấu bằng 0.  Nếu đỉnh vi đã được đánh dấu thì ta dùng chỉ số +i để đánh dấu cho mọi đỉnh y chưa được đánh dấu mà (vi,y)∈E và cung này chưa bão hoà (ϕ(vi,y)<m(vi,y)).  Nếu đỉnh vi đã được đánh dấu thì ta dùng chỉ số −i để đánh dấu cho mọi đỉnh z chưa được đánh dấu mà (z,vi)∈E và luồng của cung này dương (ϕ(z,vi)>0). 31
  • 32. Thuật toán Ford-Fulkerson: Bước 3: Nếu với luồng ϕ0 bằng phương pháp trên ta không thể nâng giá trị của luồng lên nữa, nghĩa là ta không thể đánh dấu được đỉnh vn, thì ta nói rằng quá trình nâng luồng kết thúc và ϕ0 đã đạt giá trị cực đại, đồng thời gọi ϕ0 là luồng kết thúc. 32
  • 33. Thuật toán Ford-Fulkerson: Nếu với phương pháp này ta đánh dấu được tới lối ra vn thì trong G tồn tại giữa v0 và vn một xích α, mọi đỉnh đều khác nhau và được đánh dấu theo chỉ số của đỉnh liền trước nó (chỉ sai khác nhau về dấu). Khi đó chắc chắn ta nâng được giá trị của luồng. 33
  • 34. Thuật toán Ford-Fulkerson: Bước 2 (nâng giá trị của luồng): Để nâng giá trị của luồng ϕ, ta đặt:  ϕ’(e) = ϕ(e), nếu e ∉ α  ϕ’(e) = ϕ(e) + 1, nếu e ∈ α được định hướng theo chiều của xích α đi từ vo đến vn  ϕ’(e) = ϕ(e) − 1, nếu e ∈ α được định hướng ngược với chiều của xích α đi từ vo đến vn  ϕ’ thoả mãn các điều kiện về luồng, nên ϕ’ là một luồng và ta có: ϕ’n= ϕn+1. Như vậy, ta đã nâng được luồng lên một đơn vị. Sau đó lặp lại một vòng mới. Vì khả năng thông qua của các cung đều hữu hạn, nên quá trình phải dừng lại sau một số hữu hạn bước. 34
  • 35. 35 Thuật toán Ford – Fulkerson Augment(f,P) b  cf(P) FOR e  P DO IF (e  E) THEN // cạnh thuận f(e)  f(e) + b ELSE // cạnh nghịch f(eR)  f(e) – b RETURN f Tăng luồng f dọc theo đường tăng P Ford_Fulkerson(G,c,s,t); FOR e  E DO // Khởi tạo luồng 0 f(e)  0 Gf  đồ thị tăng luồng f WHILE (tìm được đường tăng luồng P) DO f  augment(f, P) Sửa lại Gf RETURN f Thuật toán Ford-Fulkerson Ví dụ
  • 36. VÍ DỤ:  Cho mạng vận tải như hình dưới đây với khả năng thông qua được đặt trong khuyên tròn, luồng được ghi trên các cung. Tìm luồng cực đại của mạng này. 36
  • 37. GIẢI:  Mạng vận tải G có đỉnh phát là v0 và đỉnh thu là v8.  Luồng ϕ có đường đi (v0,v4), (v4,v6), (v6,v8) gồm các cung chưa bão hoà nên nó chưa đầy. Do đó có thể nâng luồng của các cung này lên một đơn vị, để được ϕ1 37 V8 V4 V6 V0 6+1 +0 +4 +6 2+1 11+1
  • 38. GIẢI:  Do mỗi đường xuất phát từ v0 đến v8 đều chứa ít nhất một cung bão hoà, nên luồng ϕ1 là luồng đầy. Song nó chưa phải là luồng cực đại. 38
  • 39.  Áp dụng TT Ford-Fulkerson để nâng luồng ϕ1.  Xét xích α=(v0, v4, v6, v3, v7, v8). Quá trình đánh dấu từ v0 đến v8 để có thể nâng luồng ϕ1 lên một đơn vị bằng cách biến đổi luồng tại các cung thuộc xích α được đánh dấu. 39
  • 40. GIẢI:  Sau đó ta có luồng ϕ2.  Luồng ϕ2 chưa phải là cực đại nên ta tiếp tục nâng luồng 40
  • 41.  Tương tự, xét xích β=(v0, v1, v5, v2, v6, v3, v7, v8). 41
  • 42.  Nâng luồng ϕ2 lên một đơn vị, sau đó ta có luồng ϕ3.  Tiếp theo ta chỉ có thể đánh dấu được đỉnh v0 nên quá trình nâng luồng kết thúc và ta được giá trị của luồng cực đại là: ϕ3 = 6+12+8 = 26. 42
  • 43. Bài tập  Giải bài toán mạng vận tải sau bằng thuật toán Ford- Fulkerson với luồng vận tải khởi đầu bằng 0. 43
  • 44. 44 Giải bài toán mạng vận tải sau bằng thuật toán Ford-Fulkerson với luồng vận tải khởi đầu bằng 0.
  • 45. 45 4 2 3 5 t s 4 10 10 2 4 9 5 8 6 7 3 1 9 6 2 2 Giải bài toán mạng vận tải sau bằng thuật toán Ford- Fulkerson với luồng vận tải khởi đầu bằng 0.