You are on page 1of 8

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).

2011

NG DNG THUT TON TM NG I NGN NHT TM LUNG CC I A HNG HA


APPLICATION OF THE SHORTEST-PATH ALGORITHM TO THE FINDING OF THE MAXIMUM MULTI-COMMODITY FLOW Trn Quc Chin
Trng i hc S phm, i hc Nng

Trn Th M Dung
Hc vin cao hc K10 2008-2011, i hc Nng

TM TT Kt qu chnh ca bi bo l nghin cu thut ton MMF (Maximum Multicommodity Flow) tm lung cc i trn mng a hng ha [3]. Da trn c s vn dng thut ton Dijkstra ci tin [1] tm ng i ngn nht gia mt s cp nh trn mng. Kt hp l thuyt i ngu trong quy hoch tuyn tnh, bi bo phn tch yu cu bi ton thnh cp bi ton i ngu, sau xy dng thut ton MMF a t l hm mc tiu hai bi ton i ngu ny tin n 1 [2], v t suy ra lung cc i. MMF l thut ton tnh gn ng vi t l xp x l (1+) m c th t gi tr rt nh dn n 0 (nhng khng th bng 0). Bi bo phn tch, chng minh cc kt qu a ra cng nh nh gi phc tp ca thut ton. Chng trnh tng ng ci t bng C v cho kt qu chnh xc. ABSTRACT The main result of this paper is to design a Maximum Multi-commodity Flow (MMF) algorithm [3]. Based on the advanced Dijkstra algorithm [1] for finding the shortest path between some pairs of nodes on the graph and the application of the dual theory of linear programming, this article presents the problem with a pair of dual linear programming problems, and designs the MMF algorithm to reduce the ratio of their objective value down to 1 [2]. Then, it follows the maximum flow of the origin problem. MMF is an approximation algorithm that computes a (1+)-approximation ratio where is an arbitrary positive. The paper analyses and proves every obtained result as well as evaluates the running time. The algorithm is programmed in C language and gives exact results. Key word: Maximum Multicommodity Flow, approximation, graph

1. t vn Bi ton vn ti l dng bi ton qui hoch tuyn tnh. Tuy nhin, dng cc phng php gii qui hoch tuyn tnh s gp nhiu kh khn nu bi ton c nhiu hng ha v c nhng rng buc v chi ph, v yu cu vn chuyn L thuyt th m hnh ha bi ton trn thnh cc bi ton tm lung trn mng. ng dng ny lm cho vic gii bi ton vn ti tr nn n gin v hiu qu hn rt nhiu. Hin ti c nhiu ti nghin cu xy dng thut ton tm lung cc i cho cc bi ton trn, song cc thut ton a ra ch dng li n thun mng mt, hoc hai hng ha. Vn t ra l cn xy dng mt thut ton tng qut hn cho lung cc i a hng ha, c th p dng bi ton ny cho nhiu trng hp thc t.
119

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

2. Pht biu bi ton Cho th c hng G=(V, E) vi kh nng thng qua ca cc cnh l c:ER*, trong V c k nh ngun s1, s2, , sk tng ng vi k nh ch t1, t2, ..., tk v cc nh trung gian khc to thnh mt mng c hng. Mi cp ngun-ch (si, ti) c gn mt hng ha Mi, i=1, , k. Mi hng ha Mi c vn chuyn t nh ngun si n nh ch ti, i=1, , k. Bi ton lung a hng ha cc i l tm mt lung a hng ha trong mng G cho sao cho tng cc lung ca tt c k hng ha t cc i. 3. Xy dng thut ton tm lung a hng ha MMF 3.1. Chun b c s cho thut ton Gi Pj l tp hp cc ng i t sj n tj trong G, j = 1, , k, v gi P l hp ca P1, , Pk. Gi Pe l tp hp cc ng trong P i qua e, e E. Vi mi ng p P, gn mt bin x(p) ca lung gi dc theo ng p. Bi ton pht biu thnh m hnh qui hoch tuyn tnh nh sau: Max x ( p )
pP
p e P

x( p) c(e) e E

(Pmmf)

x0 gii (Pmmf) ta xy dng m hnh tuyn tnh i ngu vi (Pmmf), gi l (Dmmf) nh sau: e E, gn cho e mt hm di l(e). nh ngha: Min D(l)= c(e).l (e)
eE
l (e) 1 e p

p P

(Dmmf)

l 0. Vy (Dmmf) l qui hoch tuyn tnh i ngu ca (Pmmf) [2]. Gi distj(l) l di ngn nht trong cc ng i t sj n tj, 1 j k. t (l)=min{distj(l) | j=1,,k}, vy (l) l di ngn nht trong mi ng gia cc cp ngun ch. Vic tm (Dmmf) tng ng vi tm mt hm l:ER* sao cho 3.2. tng thut ton Thut ton gm mt s bc lp, thng qua hm di l(e), e E. Ti mi bc lp, tm ra mt ng p ngn nht (tnh theo l) gia cc cp ngun-ch v chuyn c n v hng ha qua ng ny, vi c l kh nng thng qua cc tiu trn p, sau thay i gi tr cc hm l v . Thut ton dng li mt khi >1. Gi tr ban u ca l v ph thuc vo gi tr xp x cn t c.
120

D (l )

(l )

t cc tiu. t =minl

D(l )

(l )

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

3.3. Thut ton 3.3.1. Thut ton MMF (Maximum Multicommodity Flow) - u vo: s nh n, s hng ha k, k cp ngun-ch (pair[i].nguon, pair[i].dich), i=1,...,k, ma trn trng s cap[][], v t l xp x cn t c . - u ra: lung cc i f v danh sch lung ti cc cnh F[][] - Cc bc: Bc 1: Tm v (gi tr v xc nh phn phn tch sau) . Bc 2: Khi gn : (i,j) E, gn leng[i][j]= ; f=0 ; F[][]=0 Bc 3: tm_alpha(&min_index). Bc 4: Nu >=1 qua bc 7. Bc 5: iu chnh lung: f+=c[min_index]; (x,y) p[min_index], { leng[x][y]=leng[x][y]*(1+*c[min_index]/cap[x][y]); F[x][y]+= c[min_index]; } Bc 6: Quay v bc 3. Bc 7: X l gi tr kt qu t c ca f v F[][]. Kt thc. 3.3.2. Thut ton tim_alpha T thut ton Dijkstra, tm ng i ngn nht gia k cp ngun-ch (k l s hng ha), ta thc hin ln lt tm ng i ngn nht gia tng cp ngun-ch v gn tm thi cho alpha. Trong qu trnh gn nhn cho cc nh tm ra nh c nhn nh nht, nu nhn nh nht tm c bc no > alpha, th ta b qua qu trnh ang xt, tip tc tm ng i ngn nht trong cc cp ngun-ch tip theo. Thut ton Dijkstra c phc tp O(n2) [1], thut ton tim_alpha ny ta ta lng vo k ln tm ng i ngn nht, nh vy phc tp l O(k.n2) - u vo: s nh n, ma trn di leng[][]. Cc bin chon[MAX] nh du chn cho cc nh, D[MAX][MAX] vi D[i][j] l khong cch tm thi t nh j n nh ngun ca cp ngun ch th i. - u ra: , min_index, p[min_index], c[min_index]. - Cc bc: Bc 1: khi gn alpha=INFINITE; i=0 ; Bc 2: nu i>k, sang bc 6. Ngc li, i++; Bc 3: khi to nhn: s=pair[i].nguon;t=pair[i].dich; vV, D[i][v]=leng[s][v]; Truoc[i][v]=s; chon[v]=FALSE; D[i][s]=0;
121

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

Bc 4: tm nh v: !chon(v)&& D[i][v] nh nht Nu D[i][v] alpha, quay li bc 2; Ngc li, chon(v)=TRUE; Bc 5: Nu t=v { alpha=D[i][v]; lu i vo min_index; lu ng i ngn nht vo p[min_index] v kh nng thng qua cc tiu vo c[min_index]} Quay li bc 2 Bc 6: thu c alpha, min_index, p[min_index] v c[min_index]. Kt thc. 3.4. Phn tch thut ton MMF (Maximum Multicomdity Flow) i 1, ta c D(i) = D(0) + ( f j f j 1 ) ( j 1)
i j =1

(1)

Xt hm li - l0. Ta c D(li-l0)=D(i) - D(0) V (li-l0) (i) - .n


D(li l0 ) D(i ) D(0) (li l0 ) (i) .n

(2)

Thay gi tr D(i)-D(0) t (1) vo (2), ta c: (i) .n +

. ( f j f j 1 ) ( j 1) . j =1
i

M (i) .n. e

. fi /

, i=1, 2, ... Do iu kin dng thut ton l (t) 1,


. ft /

1 (t) .n. e
1 .n

(3)

e . ft /
ft

ln( .n) 1
ft . 1+

(4)

B 3.1. Tn ti lung kh thi vi gi tr Chng minh : Xt mt cnh e bt k. Ta c :

log1+

C mi ln chuyn c(e) n v hng ha qua cnh e th di l(e) ca e tng ln mt tha s (1+). Tht vy, mi ln lp ta ch chuyn c c(e) n v hng ha qua e, chuyn qua e mt lng hng l c(e) th phi chuyn t nht mt ln, gi r l s ln lp chuyn qua c c(e) n v hng ha. Gi s lc bt u xt l bc lp th i, th ta c s thay i ca di l(e) bc i+r l c li+r(e) = li(e). 1 + . 1 c (e ) c 1 + . r = li(e). 1 + (c1 + ... + cr ). + ... c (e) c ( e)

Trong c1, ..., cr ln lt l lng hng ha chuyn qua cnh e cc ln lp th i+1, ..., i+r. Lc ny ta c

c
j =1

c(e). Vy li+r(e) (1+).li(e).

122

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

Gi F(e) l tng lung chuyn qua e, t F(e) =x.c(e), x R*, vy c x ln chuyn c(e) n v hng ha qua e, lc ny di ca e l lt(e) (1+)x.l0(e) (*) Mt khc, ln cui lt-1(e) tng, e p vi lt-1(p) < 1,(v nu l(p) 1, ngha l (t)1, th thut ton dng li). Suy ra: lt(e) < (1+).lt-1(e) < (1+) (**) T (*) v (**), v l0(e)= suy ra: (1+)x.l0(e) lt(e) < (1+) x < log1+ Chia f cho log1+
1+ 1+

, c lung kh thi. (pcm)


ft 1+

B 3.2. Lung vi gi tr

t cc i vi t s xp x 1+

log1+

D(i ) 1, i =1,2, P(i )

(0<<1).
Chng minh: Theo nh l i ngu yu [2], ta c

Ta thy lung ft =

log1+

ft Pmmf ; ft tm c ng vi (t-1) v l(t-1), nn cng 1+

D(li ) D(i ) > D(li), i < t ' > , i t (li ) fi P(i )

ng vi D(t-1). Mt khc theo iu kin dng thut ton MMF, (t-1) <1. Suy ra = minl

Xt t s =

ft'

ft

. log1+

1+

ln

. Thay

ft

t (4) vo ta c :

. log1+

1+
1

ln( .n)

1+

ln(1 + ) ln( .n)

. Chn = (1+)((1+)n)-1/. Ta c

ln (1 + ) 1 1 = (1-)-1 . 2 1 ln( .n) (1 )ln(1 + ) (1 ). / 2 (1 )2

Vy 1 < (1-)-2. Suy ra 1

D(t 1) (1-)-2. P(t 1)

c t s xp x (1+), ta chn sao cho (1-)-2 (1+) mt cch ng k. Suy ra 1- 1 /(1 + ) . Vy


ft l lung cc i vi t s xp x l 1+. 1+

log1+

123

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

3.5. Thi gian thc hin nh l 3.1: Thut ton MMF c phc tp l O( -2..k.m.n2.lnn), trong k l s hng ha, m l s cnh th, n l s nh th.

Chng minh. bc lp th i, ta tng di ca cnh c kh nng thng qua nh nht dc theo ng ngn nht pi mt tha s (1+). Xt cnh e bt k, gi t1 l s bc lp m trong e l cnh c kh nng thng qua cc tiu trn ng c chn tng ng. Do l0(e)= v lt(e)<1+ , suy ra l0(e).(1+)t1 lt(e )<1+ t1 < 1+ 1 . Mt khc = (1+)((1+)n)-1/ t1 (1+log1+n) log1+

1 (ln(1+)+lnn). t . ln(1 + ) t* = 1 (ln(1+)+lnn). Khi , mi cnh e tng ng vi nhiu nht t* . ln(1 + )

ln tm ng ngn nht. S ln tm ng ngn nht m.t*. Mt khc, hm tim_alpha() trn c phc tp O(kn2). Suy ra phc tp ca thut ton l ln n O(kn2).O(m. ). Cui cng, t 1- 1 /(1 + ) , suy ra pcm. . ln(1 + )
4. Thc hin chng trnh trn mt v d c th

Cho mng ba hng ha vi ba cp ngun ch s1-t1, s2 -t2, s3-t3 hnh 1.


s1=1 10 s2=5 20 17 2 7 4 15 15 10
t1=7

3 20 20 10 t3=9 10 t2=8 5 s3=6 9 1 5 6 1 2 2 3 3 4 4 5 5 6 6 7 8

Bng 1 3 7 8 9 2 3 4 7 9 3 6 1 4 7 8 8 9 17 15 7 20 20 10 15 10 20 10 5 10 10

10

Hnh 1

File d liu u vo tng ng cho bng 1, trong - Dng 1: s nh, s hng ha - 3 dng tip theo: 3 cp ngun-ch tng ng - Mi dng cn li: nh i, nh j, cap[i][j] Chn t l gn ng l 1.02, chng trnh cho kt qu cc hnh 2, 3 nh sau:

124

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

Hnh 2

Hnh 3

125

TP CH KHOA HC V CNG NGH, I HC NNG - S 3(44).2011

5. Kt lun

Thut ton tm lung cc i a hng ha trnh by trn c th p dng gii quyt nhiu vn thc t m c th a v dng bi ton ti u trn mng a hng ha. Nh bi ton phn lung giao thng, phn lung trn mng internet, vn chuyn hng ha, ...
DANH MC TI LIU THAM KHO

[1] PGS. TSKH Trn Quc Chin, Gio trnh l thuyt th v ng dng, i hc Nng, 2007. [2] Phan Quc Khnh, Trn Hu Nng, Gio trnh Quy hoch Tuyn tnh, Nh xut bn Gio dc, H Ni, 2003. [3] Naveen Garg, Jochen Knemann, Faster and Simpler Algorithms for Multicommodity Flow and Other Fractional Packing Problems, SIAM J. Comput, Canada, 37(2), 2007, pp. 630-652.
(BBT nhn bi: 22/03/2011, phn bin xong: 17/05/2011)

126

You might also like