Professional Documents
Culture Documents
2011
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
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 )
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
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)
(2)
. ( f j f j 1 ) ( j 1) . j =1
i
M (i) .n. e
. fi /
1 (t) .n. e
1 .n
(3)
e . ft /
ft
ln( .n) 1
ft . 1+
(4)
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
122
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+
B 3.2. Lung vi gi tr
t cc i vi t s xp x 1+
log1+
(0<<1).
Chng minh: Theo nh l i ngu yu [2], ta c
Ta thy lung ft =
log1+
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+
. Chn = (1+)((1+)n)-1/. Ta c
log1+
123
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+
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
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
Hnh 2
Hnh 3
125
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