Tải bản đầy đủ (.pdf) (6 trang)

Báo cáo nghiên cứu khoa học: "THUẬT TOÁN HOÁN CHUYỂN NGUỒN ĐÍCH TÌM LUỒNG CỰC ĐẠI (1)" doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (327.04 KB, 6 trang )

THUT TON HON CHUYN NGUN CH TèM
LUNG CC I (1)
SOURCE-SINK ALTERNATIVE ALGORITHM TO FIND THE MAXIMAL
FLOW


TRN QUC CHIN
Trng i hc S phm, i hc Nng


TểM TT
Bỏo cỏo cp bi toỏn tỡm lung cc i trờn mng. Cỏc kt qu c bn c h thng v
chng minh. Thut toỏn ni ting Ford-Fulkerson c trỡnh by chi tit kốm vớ d minh ho.
Kt qu chớnh ca bỏo cỏo l xut Thut toỏn hoỏn chuyn ngun ớch tỡm lung cc i.
í tng thut toỏn l tỡm ng i tng lung ng thi t nh ngun v nh ớch (thut
toỏn Ford-Fulkerson tỡm ng i tng lung ch t nh ngun). Kt qu tớnh toỏn qua cỏc vớ
d cho thy thut toỏn hoỏn chuyn ngun ớch lm gim ỏng k khi lng tớnh toỏn so vi
thut toỏn Ford-Fulkerson.
ABSTRACT
This paper deals with the maximal flow problem. The basic results are systematically
presented and proved. The known Ford-Fulkerson is thoroughly introduced and illustrated,
and the main result of this work is the source-sink alternative algorithm. The idea of the
algorithm is to find augmented paths simultaneously from the source and the sink vertex (the
Ford-Fulkerson algorithm finds augmented paths only from the source vertex). Calculus
examples show that the proposed algorithm considerably decreases the computational
complexity in comparison with the Ford-Fulkerson algorithm.
Key word: graph, network, flow


1. Bài toán luồng cực đại


Mạng
(network) là đơn trọng đồ có hớng G=(V, E, c) thoả mãn
(i) Có duy nhất một đỉnh, gọi là nguồn.
(ii) Có duy nhất một đỉnh, gọi là đích.
(iii) Trọng số c
ij
của cung (i,j) là các số không âm và gọi là khả năng thông qua

của
cung.
(iv) Đồ thị liên thông (yếu).

Luồng
. Cho mạng G với khả năng thông qua c
ij
, (i,j)G. Tập các giá trị

{f
ij
(i,j)G}

gọi là luồng trên mạng G nếu thoả mãn
(i) 0 f
ij
c
ij
(i,j)G
(ii) Với mọi đỉnh k không phải nguồn hoặc đích



Gki
ik
f
),(
=

Gjk
kj
f
),(


Định lý 1
. Cho f
ij
,(i,j)G, là luồng trên mạng G với nguồn a và đích z. Khi đó


Gia
ai
f
),(


Gai
ia
f
),(
=


Gzi
iz
f
),(


Giz
zi
f
),(

Chứng minh
Gọi V là tập các đỉnh. Với các đỉnh i,j không kề nhau ta gán f
ij
= 0. Ta có







Vj Vi
ji
Vj Vi
ij
ff












Vj Vi Vi
jiij
ff 0



























},\{
0
zaVj Vi Vi
aiia
Vi Vi
ziiz
Vi Vi
jiij
ffffff


0
















Vi Vi
aiia
Vi Vi
ziiz
ffff




Gia
ai
f
),(


Gai
ia
f
),(
=

Gzi
iz
f
),(



Giz
zi
f
),(

đpcm


Giá trị của luồng. Cho luồng f trên mạng G. Giá trị của luồng f đợc định nghĩa là đại
lợng
v(f) =

Gia
ai
f
),(


Gai
ia
f
),(
=

Gzi
iz
f
),(



Giz
zi
f
),(



Phát biểu bài toán luồng cực đại
. Trong thực tế ta thờng gặp bài toán gọi là
bài toán tìm
luồng cực đại nh sau: Cho mạng G với nguồn a, đích z và khả năng thông qua c
ij
, (i,j)G.
Trong số các luồng trên mạng G tìm luồng có giá trị lớn nhất.

Bài toán luồng cực đại có thể biểu diễn nh bài toán quy hoạch tuyến tính

v(f) =

Gia
ai
f
),(


Gai
ia
f
),(

max
với điều kiện

0 f
ij
c
ij
(i,j)G


Gki
ik
f
),(
=

Gjk
kj
f
),(
k V \ {a; z}

Vì giá trị luồng v(f)

Gia
ai
c
),(
và tồn tại luồng f
ij

= 0 (i,j)G, nên theo lý thuyết quy
hoạch tuyến tính tồn tại luồng cực đại.


Định lý 2
. Với mỗi mạng G=(V, E, c) luôn luôn tồn tại luồng cực đại.

ý tởng xây dựng luồng cực đại nh sau: xuất phát từ luồng nào đó, ta tìm đờng đi
(không định hớng) từ a đến z cho phép hiệu chỉnh giá trị luồng trên đờng đi đó sao cho
luồng mới có giá trị lớn hơn. Nếu không tìm đợc đờng đi nh vậy thì ta có luồng cực đại.
Giả sử
P = (a, u, , i, j, , v, z)

là đờng đi không có hớng từ a đến z.
Nếu cạnh (i,j) là cung trên P thì cung đó cùng hớng với P. Ngợc lại nếu (j,i) là cung
thì cung đó ngợc hớng với P.
Tập các cung cùng hớng với P ký hiệu là P
+
.
Tập các cung ngợc hớng với P ký hiệu là P

.
Cơ sở của thuật giải là định lý sau.


Định lý 3
. Cho f là luồng trên G. Giả sử
P = (a, u, , i, j, , v, z)

là đờng đi không định hớng từ a đến z thoả

(i) Với mỗi cung (i,j) cùng hớng với P
f
ij
< c
ij

(ii) Với mỗi cung (i,j) ngợc hớng với P
0 < f
ij

Đặt
:= min{ x x M} > 0,
trong đó M là tập các giá trị c
ij
f
ij
, (i,j)P
+
và f
ij
, (i,j)P

.
Ta xây dựng luồng f nh sau

f
ij
(i,j)P
f
ij

:= f
ij
+ (i,j)P
+

f
ij
(i,j)P



Khi đó luồng f có giá trị lớn hơn giá trị của luồng f một lợng là , tức là
v(f) = v(f) + .
Chứng minh
Theo cách xây dựng thì f thoả mãn các điều kiện của luồng. Có thể xảy ra một trong
hai trờng hợp sau.
(i) Tồn tại cung (a,u)P
+


f
au
= f
au
+
Khi đó giá trị
v(f') =

Gia
ai

f
),(
'


Gai
ia
f
),(
'
=












Gia
ai
f
),(


Gai

ia
f
),(
= v(f) +

(ii) Tồn tại cung (u,a)P



f
ua
= f
ua

Khi đó giá trị

v(f) =

Gia
ai
f
),(
'


Gai
ia
f
),(
'

=

Gia
ai
f
),(













Gai
ia
f
),(
= v(f) +
đpcm


Thuật toán Ford-Fulkerson tìm luồng cực đại
:
+

Đầu vào
. Mạng G = (V, E) với nguồn a, đích z, khả năng thông qua C = (c
ij
), (i,j)G.
Các đỉnh trong G đợc sắp xếp theo thứ tự nào đó.
+ Đầu ra. Luồng cực đại F = (f
ij
), (i,j)G
+
Các bớc
.
1. Khởi tạo
Luồng xuất phát: f
ij
:= 0 (i,j)G
Đặt nhãn cho đỉnh nguồn
a(, )
Tạo lập tập S gồm các đỉnh đã có nhãn nhng cha đợc dùng để sinh nhãn, S
là tập đỉnh đợc gán nhãn nhờ các đỉnh của tập S
S: = { a }, S:=

2. Sinh nhãn
2.1. Chọn đỉnh sinh nhãn
Trờng hợp S : Chọn đỉnh u S nhỏ nhất (theo thứ tự). Loại u khỏi S, S:= S
\ { u }. Ký hiệu nhãn của u là (p, ) và A là tập các đỉnh cha có nhãn và kề đỉnh
sinh nhãn u.
Qua bớc 2.2.
Trờng hợp S = và S : Gán S:= S và S:= . Quay lại bớc 2.1.
Trờng hợp S = và S = , thì kết thúc,
luồng F là cực đại

.

2.2. Gán nhãn cho đỉnh cha có nhãn và kề đỉnh sinh nhãn
Trờng hợp A = : Quay lại bớc 2.1.
Trờng hợp A : Chọn t A nhỏ nhất (theo thứ tự). Loại t khỏi A, A:= A \
{ t }. Gán nhãn cho t nh sau:
Nếu (u,t)E và f
u,t
< c
u,t
, đặt nhãn đỉnh t là (u, min{, c
u,t
f
u,t
}).
Nếu (t, u)E và f
t,u
> 0, đặt nhãn đỉnh t là (u, min{, f
t,u
}).
Nếu t không đợc gán nhãn thì quay lại bớc 2.2.
Nếu t đợc gán nhãn và t = z thì sang bớc hiệu chỉnh tăng luồng 3.
Nếu t đợc gán nhãn và t z thì bổ sung t vào S, S:= S { t }, và quay lại
bớc 2.2.

3. Hiệu chỉnh tăng luồng
Giả sử z có nhãn (q, ). Ta hiệu chỉnh luồng f nh sau.
3.1. Khởi tạo
j:= z, i:= q
3.2. Hiệu chỉnh

Nếu cung (i, j) G, thì hiệu chỉnh f
ij
= f
ij
+ .
Nếu cung (j, i) G, thì hiệu chỉnh f
ji
= f
ji
.
3.3. Tịnh tiến
Nếu i = a thì xoá tất cả nhãn của các đỉnh trên mạng, trừ đỉnh nguồn a, và quay
lại bớc 2.
Nếu i a, thì đặt j:= i và i:= p, với p là thành phần thứ nhất của nhãn đỉnh j. Sau
đó quay lại bớc 3.2.


Định lý 4
. Nếu các giá trị thông qua c
ij
là số nguyên, thì sau hữu hạn bớc quá trình giải kết
thúc.
Chứng minh
Theo định lý 1, qua mỗi bớc hiệu chỉnh luồng, giá trị luồng tăng lên ít nhất 1 đơn vị
(do c
ij
nguyên, kéo theo nguyên dơng). Mặt khác giá trị luồng bị chặn trên bởi tổng các khả
năng thông qua của các cung đi khỏi đỉnh nguồn. Vì vậy qua một số hữu bớc quá trình giải
phải kết thúc.



Hệ quả
. Nếu giá trị thông qua c
ij
là số hữu tỉ với mọi (i,j) E, thì sau hữu hạn bớc quá trình
giải kết thúc.
Chứng minh
Quy đồng mẫu số các giá trị thông qua c
ij
. Giả sử mẫu số chung là M. Theo định
lý 1, qua mỗi bớc hiệu chỉnh luồng, giá trị luồng tăng lên ít nhất là 1/M. Mặt khác giá trị
luồng bị chặn trên bởi tổng các khả năng thông qua của các cung đi khỏi đỉnh nguồn. Vì vậy
qua một số hữu bớc quá trình giải phải kết thúc.

+ Ghi chú. Thuật toán sẽ đợc chứng minh sau.
+ Ví dụ 1. Cho mạng G sau










1 2
n










trong đó số đỉnh là (2.n+1)
2
+1 và các cung cho nh hình vẽ với trọng số đều là 1.
Ap dụng thuật toán Ford-Fulkerson tìm luồng cực đại của G, ta phải duyệt qua (2.n+1)
2
đỉnh
và nhận đợc luồng cực đại là luồng trên đờng đi
(a12 nz)
với giá trị luồng bằng 1.


TI LIU THAM KHO
z

a


[1] Richard Johnsonbauch, Discrete Mathematics, Macmillan Publishing Company, New
York 1992.
[2] Nguyễn Tô Thành, Nguyễn Đức Nghĩa, Giáo trình Toán rời rạc, Trường Đại học
Bách khoa Hà Nội, Hà Nội, 1994.
[3] Nguyễn Xuân Quỳnh, Cơ sở Toán rời rạc và ứng dụng. NXB Giáo dục, Hà Nội, 1995.
[4] Oystein Ore, Theory of Graphs, American Mathematical Society, 1967.

[5] Christofides Nicos, Graph Theory, Academic Press, New York-London-San
Francisco, 1975.
[6] R.G. Busacker & T.L. Saaty, Finite Graph and Networks, Mc Graw-Hill Book
Company, New York - St. Louis - San Francisco - Toronto - London - Sydney, 1974.
[7] Kenneth H. Rosen, Discrete Mathematics and Its Applications, McGraw Hill Book
Company, New York, 1994.
[8] Nguyễn Cam, Chu Đức Khánh, Lý thuyết đồ thị, NXB TP.HCM, 1999.
[9] V.K. Balakrishnan, Theory and Problems of Graph Theory, McGraw Hill, 1997.
[10] Trần Quốc Chiến, Giáo trình lý thuyết đồ thị, Đại học Đà Nẵng, 2002.
[11] Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Introduction To
Algorithms, the MIT Press 1999.
[12] A.V.Goldberg, R.E.Tarjan, Expected performance of Dijkstra’s shortest path
algorithm, Technical Report 96-070, NEC Research Institute Inc, 1996.
[13] Trần Quốc Chiến, Nguyễn Thanh Tuấn, Giải thuật tìm đường đi ngắn nhất giữa hai
tập đỉnh, Tạp chí Khoa học và Công nghệ, Đại học Đà Nẵng, 3(7)/ 2004.

×