You are on page 1of 20

MẠNG VÀ HÀM TẢI

GV: Lê Mậu Long

1
Nội dung
 Mạng và hàm tải.
 Hàm tải tối đại – Thuật toán FORD-FULKERSON.

2
I. Mạng và hàm tải

Faculty of Information Technology 3


Định nghĩa
Mạng (network) là đơn đồ thị có hướng có trọng số = ( , ),
trên đó đã chọn:
• Đỉnh a gọi là đỉnh phát,
• Đỉnh z gọi là đỉnh thu.
b 5 c

6 6
3 3
a z

6 5
d 1 e
4
Định nghĩa
Xét mạng = ( , ), với mỗi đỉnh , đặt:
= ∈ ớ }
= ∈ ớ à }
Ví dụ:
b 5 c
={ } 6
6
={ , } 3 3
a z

6 5
d 1 e
5
Định nghĩa
Một hàm tải (flow function) trên mạng là một hàm
∶ →
Thỏa các điều kiện
1. 0 ≤ ≤ , ∀ ∈
2. = 0, ∀ ∈ ∪
3. ∑ ∈ ( ) =∑ ∈ ( ) , ∀ ∈ \{ , }
Trong đó là trọng số cạnh

6
Định nghĩa
Phép cắt: Xét ⊂ , phép cắt của ký hiệu , là tập
hợp:
, = = ∈ Î à Ï }
b 5 c
Ví dụ: ={ , } 6
6
, ={ , , , } 3 3
a z

6 5
d 1 e
Nếu Î à Ï thì , được gọi là phép cắt a-z
7
Định lý
Cho là hàm tải trên mạng , ⊂ \{ , } thì

=
∈( , ) ∈( , )
CM: Theo tính chất 3. của hàm tải ta có:

=
∈ ( ) ∈ ( )
Lấy tổng 2 vế theo ∈

=
∈ ∈ ( ) ∈ ∈ ( )
Đơn giản 2 vế cho những cạnh với , Î , suy ra điều phải chứng minh

8
Định lý
Hệ quả: Cho là hàm tải trên mạng , thì

=
∈ ( ) ∈ ( )
CM: Áp dụng định lý với = \{ , }

= = =
∈ ( ) ∈( , ) ∈( , ) ∈ ( )

9
Tải trọng hàm tải
 Tải trọng hàm tải , ký hiệu được định nghĩa như
sau:
= =
∈ ( ) ∈ ( )
 Trọng số phép cắt ( , ) được định nghĩa như sau:
, =
∈( , )
Bài toán đặt ra là tìm hàm tải tối đại (tải trong lớn nhất)
trên mạng
10
Định lý
là hàm tải trên mạng , ( , ) là phép cắt a-z, thì
≤ ( , )
CM: Từ mạng ta xây dựng mạng ′ bằng cách thêm cạnh 0 với trọng
số là ∞ và hàm ′
a0 a
= ớ = 0
z
( ) ≠ 0

Đặt = Þ ′= ∪ { 0}

= ′ = ′ ≤ = = ≤ = ,
∈ ( ) ∈ , ∈ , ∈ , ∈ ,

11
Hệ quả
Từ chứng minh định lý, suy ra hệ quả sau:
là hàm tải trên mạng , ( , ) là phép cắt a-z, thì

= 0; ∀ ∈( , )
= , Û
= ; ∀ ∈( , )

12
II. Thuật toán Ford-Fulkerson

Faculty of Information Technology 13


Thuật toán FORD-FULKERSON
 Dây chuyền K là đường vô hướng từ a đến z
 Độ lệch tải: Với ∈ , độ lệch tải trên :
= −
Nếu = 0, ta nói bảo hòa trên
 Xét dây chuyền K, ta định nghĩa hàm
: → {−1, 0, 1}
Với
1 ế ∈ , ℎướ ừ đế
= 0 ế Ï∈
−1 ế ∈ , ℎướ ừ đế
14
Thuật toán FORD-FULKERSON
Khởi đầu từ hàm tải bất kỳ trên mạng
B1: Mọi đỉnh chưa có nhãn và chưa xét, gán nhãn cho a
là (-, ∞). Đặt = .
B2: Xét p, gán nhãn cho các đỉnh q chưa có nhãn kề p
bằng thủ tục sau:
• Với e = , à > 0, gán nhãn cho q là ( , ∆ ) với
∆ = min( ,∆ )
• Với e = , à > 0, gán nhãn cho q là ( , ∆ ) với
∆ = min( ,∆ )
15
Thuật toán FORD-FULKERSON
B3: Nếu có nhãn, lần ngược theo thành phần thứ nhất
của nhãn xác định dây chuyền K và cập nhật lại hàm :
= + .∆
Quay về B1.
B4: Tìm 1 đỉnh có nhãn nhưng chưa xét
• Nếu tìm thấy, xem đỉnh này là → quay về B2
• Nếu không tìm thấy → Dừng thuật toán.
Khi thuật toán dừng là tập hợp các đỉnh có nhãn tạo thành
phép cắt ( , ) tối tiểu qua đó hàm tải tối đại
16
Ví dụ
Xét mạng và hàm tải như hình vẽ (c-, 2) (d+, 2)
Gán nhãn cho a là (-, ∞) b 5, 5 c
Xét a 6, 6 6,6
Gán nhãn cho là (a+, 4) 3, 1 3, 1 (e+, 2)
(-, ∞)
Xét a z
Gán nhãn cho là (d+, 2)
6, 2 5, 2
Xét
Gán nhãn cho là (c-, 2) d 1, 1 e
+ (b +, 2)
(a , 4)
Xét
Gán nhãn cho là (b+, 2) =6+2=8
Xét
Gán nhãn cho là (e+, 2)
17
Ví dụ
(c-, 2) (d+, 2)
Z đã có nhãn, lần ngược theo thành b 5, 5 c
phần thứ nhất của nhãn, xác định 6,6
6, 6
được dây chuyền K: 3, 1
(-, ∞) 3, 1 (e+, 2)
→ → ← → → a z
Cập nhật lại hàm
=2+2=4 6, 2 5, 2
=1+2=3 (a+, 4)d 1, 1 e (b+, 2)

b 5, 3 c
=5−2=3
6, 6 6,6
=1+2=3 3, 3 3, 3
=2+2=4 a z

6, 4 5, 4
d 1, 1 e
18
Chu trình Euler
Gán nhãn cho a là (-, ∞) =8
Xét a
Gán nhãn cho d là (a+, 2) b 5, 3 c
Xét d 6, 6 6,6
3, 3 3, 3
Không gán nhãn được (-, ∞)
a z
Thuật toán dừng 6, 4 5, 4
= , tạo thành phép cắt d 1, 1 e
(a+, 2)
, tối tiểu và qua đó hàm tải
tối đại

19
Tóm tắt
 Mạng và hàm tải.
 Hàm tải tối đại – Thuật toán FORD-FULKERSON.

20

You might also like