intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Báo cáo nghiên cứu khoa học: "THUẬT TOÁN ĐÍCH HƯỚNG NGUỒN TÌM LUỒNG CỰC ĐẠI"

Chia sẻ: Nguyễn Phương Hà Linh Linh | Ngày: | Loại File: PDF | Số trang:6

48
lượt xem
2
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Báo cáo nghiên cứu bài toán tìm luồng cực đại trên mạng. Trên cơ sở các kết quả trong công trình [15,16], Thuật toán đích hướng nguồn tìm luồng cực đại được đề xuất. Ý tưởng thuật toán là tìm đường đi tăng luồng từ đỉnh đích đến đỉnh nguồn (thuật toán Ford-Fulkerson tìm đường đi tăng luồng chỉ từ đỉnh nguồn đến đỉnh đích).

Chủ đề:
Lưu

Nội dung Text: Báo cáo nghiên cứu khoa học: "THUẬT TOÁN ĐÍCH HƯỚNG NGUỒN TÌM LUỒNG CỰC ĐẠI"

  1. THUẬT TOÁN ĐÍCH HƯỚNG NGUỒN TÌM LUỒNG CỰC ĐẠI SINK TOWARD SOURCE ALGORITHM TO FIND MAXIMAL FLOW TRẦN QUỐC CHIẾN Trường Đại học Sư phạm, Đại học Đà nẵng TÓM TẮT Báo cáo nghiên cứu bài toán tìm luồng cực đại trên mạng. Trên cơ sở các kết quả trong công trình [15,16], Thuật toán đích hướng nguồn tìm luồng cực đại được đề xuất. Ý tưởng thuật toán là tìm đường đi tăng luồng từ đỉnh đích đến đỉnh nguồn (thuật toán Ford-Fulkerson tìm đường đi tăng luồng chỉ từ đỉ nh nguồn đến đỉnh đích). Trong ví dụ minh hoạ, kết quả tính toán cho thấy thuật toán đích hướng nguồn thực sự hi ệu quả hơn hẳn thuật toán Ford- Fulkerson. ABSTRACT This paper deals with the maximal flow problem. On the basics of results of [15,16], The sink towards source algorithm is proposed. The idea of the algorithm is to find augmented paths from the sink vertex toward the source vertex (the Ford-Fulkerson algorithm finds augmented paths only from the source vertex towards the sink vertex). In case of the illustrated example, calculus shows that the proposed algorithm is absolutely more effective than the Ford- Fulkerson algorithm. Key word: graph, network, flow Tr­íc tiªn ta nh¾c l¹i c¸c kh¸i niÖm vµ kÕt qu¶ c¬ b¶n vÒ bµi to¸n t×m luång cùc ®¹i. §éc gi¶ cã thÓ xem chi tiÕt trong [15, 16].  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è cij 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 cij, (i,j)G. TËp c¸c gi¸ trÞ {fij  (i,j)G} gäi lµ luång trªn m¹ng G nÕu tho¶ m·n 0  fij  cij (i,j)G (i) (ii) Víi mäi ®Ønh k kh«ng ph¶i nguån hoÆc ®Ých f f = kj ik ( k , j )G ( i , k )G §Þnh lý sau cho phÐp ta ®Þnh nghÜa kh¸i niÖm gi¸ trÞ cña luång.  §Þnh lý 1. Cho fij,(i,j)G, lµ luång trªn m¹ng G víi nguån a vµ ®Ých z. Khi ®ã f f f f   = ia iz zi ai ( i , a )G ( i , z )G ( z , i )G ( a ,i )G Chøng minh: xem [15], ®Þnh lý 1. 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
  2. f f f f   v(f) = = ia iz zi ai ( i , a )G ( i , z )G ( z , i )G ( a ,i )G  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 cij, (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.  §Þ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.  Luång cùc ®¹i vµ l¸t c¾t cùc tiÓu. Cho m¹ng G =(V,E,c) víi nguån a vµ ®Ých z. Víi mäi S, T  V, ký hiÖu tËp c¸c cung ®i tõ S vµo T lµ (S,T), tøc (S,T) = {(i, j)  E  i  S & j  T} NÕu S, T  V lµ ph©n ho¹ch cña V ( ST = V & ST =  ) vµ a S, zT, th× tËp (S,T) gäi lµ l¸t c¾t (nguån-®Ønh). Kh¶ n¨ng th«ng qua cña l¸t c¾t (S, T) lµ gi¸ trÞ c C(S, T) = ij i S j T Cho luång f vµ l¸t c¾t (S,T) trªn m¹ng G. Víi mäi S, T  V, ký hiÖu f f(S,T) = ij ( i , j )( S ,T )  §Þnh lý 3 Cho m¹ng G=(V,E,c) víi nguån a vµ ®Ých z, f = {fij  (i,j)G} lµ luång trªn m¹ng G, (S,T) lµ l¸t c¾t cña G. Khi ®ã v(f) = f(S,T)  f(T,S) Chøng minh (xem [16], ®Þnh lý 5)  §Þnh lý 4 Cho m¹ng G=(V,E,c) víi nguån a vµ ®Ých z, f = {fij  (i,j)G} lµ luång trªn m¹ng G, (S,T) lµ l¸t c¾t cña G. Khi ®ã kh¶ n¨ng th«ng qua cña l¸t c¾t (S,T) kh«ng nhá h¬n gi¸ trÞ cña luång f, tøc lµ C(S, T)  v(f) Chøng minh (xem [16], ®Þnh lý 6)  §Þnh lý 5 Cho m¹ng G víi nguån a vµ ®Ých z, f = {fij  (i,j)G} lµ luång trªn m¹ng G, (S,T) lµ l¸t c¾t cña G. Khi ®ã, (a) NÕu C(S, T) = v(f) th× luång f ®¹t gi¸ trÞ cùc ®¹i vµ l¸t c¾t (S,T) ®¹t kh¶ n¨ng th«ng qua cùc tiÓu. (b) §¼ng thøc C(S, T) = v(f) xÈy ra khi vµ chØ khi fij = cij  (i,j)  (S, T) (i) fij = 0  (i,j)  (T,S) (ii) Chøng minh (xem [16], ®Þnh lý 7) ý 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+.
  3. TËp c¸c cung ng­îc h­íng víi P ký hiÖu lµ P. §­êng ®i P gäi lµ ®­êng ®i t¨ng luång. C¬ së cña c¸c thuËt gi¶i lµ ®Þnh lý sau.  §Þnh lý 6. 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 fij < cij (ii) Víi mçi cung (i,j) ng­îc h­íng víi P 0 < fij §Æt := min{ x  x  M} > 0, trong ®ã M lµ tËp c¸c gi¸ trÞ cij  fij, (i,j)P+ vµ fij, (i,j)P. Ta x©y dùng luång f’ nh­ sau (i,j)P fij fij +  (i,j)P+ f’ij:= fij   (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: xem [15], ®Þnh lý 3. FordFulkerson ®· x©y dùng thuËt to¸n næi tiÕng t×m luång cùc ®¹i (xem [15]). §iÓm mÊu chèt cña thuËt to¸n Ford-Fulkerson lµ t×m ®­êng ®i t¨ng tr­ëng, xuÊt ph¸t tõ ®Ønh nguån h­íng tíi ®Ønh ®Ých. C«ng viÖc nµy ®ßi hái tiªu tèn nhiÒu thêi gian trong qu¸ tr×nh gi¶i. V× vËy viÖc gi¶m khèi l­îng tÝnh to¸n ë cung ®o¹n nµy sÏ lµm t¨ng ®¸ng kÓ hiÖu qu¶ thuËt to¸n. ThuËt to¸n ho¸n chuyÓn nguån ®Ých tr×nh bµy trong [16] lµm gi¶m ®¸ng kÓ khèi l­îng tÝnh to¸n so víi thuËt to¸n Ford-Fulkerson. ý t­ëng cña ph­¬ng ph¸p trong b¸o c¸o nµy lµ g¸n nh·n c¸c ®Ønh xuÊt ph¸t tõ ®Ønh ®Ých h­íng ®Õn ®Ønh nguån. KÕt qu¶ tÝnh to¸n trong vÝ dô minh ho¹ cho thÊy víi mét sè d¹ng m¹ng, thuËt to¸n nµy hiÖu qu¶ h¬n c¶ thuËt to¸n ho¸n chuyÓn nguån ®Ých.  ThuËt to¸n ®Ých h­íng nguån: + §Çu vµo. M¹ng G = (V, E) víi nguån a, ®Ých z, kh¶ n¨ng th«ng qua C = (cij), (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 = (fij), (i,j)G + C¸c b­íc. 1. Khëi t¹o Luång xuÊt ph¸t: fij:= 0 (i,j)G §Æt nh·n cho ®Ønh ®Ých z( , ) T¹o lËp tËp T gåm c¸c ®Ønh ®· cã nh·n nh­ng ch­a ®­îc dïng ®Ó sinh nh·n, T’ lµ tËp ®Ønh ®­îc g¸n nh·n nhê c¸c ®Ønh cña tËp S T: = { z }, T’:=  2. Sinh nh·n 2.1. Chän ®Ønh sinh nh·n  Tr­êng hîp T  : Chän ®Ønh v  T nhá nhÊt (theo thø tù). Lo¹i v khái T, T:= T \ { v }. Ký hiÖu nh·n cña v lµ (q,  ) vµ B lµ tËp c¸c ®Ønh ch­a cã nh·n lïi vµ kÒ ®Ønh sinh nh·n lïi v.
  4. Sang b­íc 2.2.  Tr­êng hîp T =  vµ T’  : G¸n T:= T’ vµ T’:= . Quay l¹i b­íc 2.1.  Tr­êng hîp T =  vµ T’ = , th× k Õt thóc, luång F lµ cùc ®¹i. 2.2. G¸n nh·n cho ®Ønh ch­a cã nh·n vµ kÒ ®Ønh sinh nh·n  Tr­êng hîp B =  : Quay l¹i b­íc 2.1.  Tr­êng hîp B  : Chän t  B nhá nhÊt (theo thø tù). Lo¹i t khái B, B:= B \ { t }. G¸n nh·n cho t nh­ sau: NÕu (t, v)E vµ ft,v < ct,v, ®Æt nh·n ®Ønh t lµ (v, min{ , ct,v  ft,v}). NÕu (v, t)E vµ fv,t > 0, ®Æt nh·n ®Ønh t lµ (v, min{, fv,t}). 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 = a th× sang b­íc hiÖu chØnh t¨ng luång 3. NÕu t ®­îc g¸n nh·n vµ t  a, th× bæ sung t vµo T’, T’:= T’  { t }, vµ quay l¹i b­íc 2.2. 3. HiÖu chØnh t¨ng luång Gi¶ sö a cã nh·n (p, ). Ta hiÖu chØnh luång f nh­ sau. 3.1. Khëi t¹o i:= a, j:= p 3.2. HiÖu chØnh NÕu cung (i, j)  G, th× hiÖu chØnh fij = fij + . NÕu cung (j, i)  G, th× hiÖu chØnh fji = fji  . 3.3. TÞnh tiÕn NÕu j = z th× xo¸ tÊt c¶ nh·n cña c¸c ®Ønh trªn m¹ng, trõ ®Ønh ®Ých z, vµ quay l¹i b­íc 2. NÕu j  z, th× ®Æt i:= j vµ j:= p, víi p lµ thµnh phÇn thø nhÊt cña nh·n ®Ønh i. Sau ®ã quay l¹i b­íc 3.2.  §Þnh lý 7. NÕu c¸c gi¸ trÞ th«ng qua cij 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 cij 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 h¹n b­íc qu¸ tr×nh gi¶i ph¶i kÕt thóc.  HÖ qu¶. NÕu gi¸ trÞ th«ng qua cij 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 cij. 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.  §Þnh lý 8 Cho m¹ng G=(V,E,c) víi nguån a vµ ®Ých z, f = {fij  (i,j)G} lµ luång nhËn ®­îc khi kÕt thóc thuËt to¸n t×m luång cùc ®¹i. Khi ®ã, f lµ luång cùc ®¹i. H¬n n÷a, nÕu T lµ tËp c¸c ®Ønh mang nh·n th× (V \ T, T) lµ l¸t c¾t cùc tiÓu. Chøng minh Gäi T lµ tËp c¸c ®Ønh mang nh·n khi kÕt thóc thuËt gi¶i.
  5. XÐt cung (i,j) víi iV \ T, jT. V× j mang nh·n nªn ta cã fij = cij, nÕu kh«ng ë b­íc 2.2 cña thuËt to¸n ta ®· ®Æt nh·n ®Ønh i. XÐt cung (j,i) víi iV \ T, jT. V× j cã nh·n ta ph¶i cã fij = 0, nÕu kh«ng ë b­íc 2.2 cña thuËt to¸n ta ®· ®Æt nh·n cho i. Theo ®Þnh lý 5, luång f lµ cùc ®¹i vµ l¸t c¾t (V \ T, T) lµ cùc tiÓu. + VÝ dô. Cho m¹ng G sau a z2 1 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. ¸p 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 (a12... nz) víi gi¸ trÞ luång b»ng 1. ¸p dông thuËt to¸n ®Ých h­íng nguån t×m luång cùc ®¹i cña G ta còng nhËn ®­îc Luång cùc ®¹i lµ luång trªn ®­êng ®i (a12... nz) víi gi¸ trÞ luång b»ng 1. Tuy nhiªn, ta chØ ph¶i duyÖt qua 3n ®Ønh ®Ó xÐt g¸n nh·n lïi. Nh­ vËy khèi l­îng tÝnh to¸n chỉ b»ng kho¶ng 1/n khèi l­îng tÝnh to¸n theo thuËt to¸n Ford- Fulkerson.  KÕt luËn Bµi b¸o ®Ò xuÊt thuËt to¸n ®Ých h­íng nguån t×m luång cùc ®¹i trªn m¹ng. ThuËt to¸n cã thÓ ¸p dông mét c¸ch hiÖu qu¶ cho nh÷ng m¹ng cã sè cung l©n cËn ®Ých Ýt h¬n sè cung l©n cËn nguån. Khèi l­îng tÝnh to¸n cã thÓ gi¶m nhiÒu lÇn so víi thuËt to¸n Ford Fulkerson truyÒn thèng.
  6. TÀI LIỆU THAM KHẢO [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. 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. [3] [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. A.V.Goldberg, R.E.Tarjan, Expected performance of Dijkstra’s shortest path algorithm, [12] Technical Report 96-070, NEC Research Institute Inc, 1996. 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, [13] T¹p chÝ Khoa häc & C«ng nghÖ, §¹i häc §µ N½ng, 3(7)/ 2004. TrÇn Quèc ChiÕn – NguyÔn Thanh TuÊn, Đường kÝnh hai tập đỉnh đồ thị  Kh¸i niệm, Giải [14] thuật và Chương tr×nh”, Hội nghị khoa học lần thứ 3 – Đại học Đà Nẵng 11/2004. TrÇn Quèc ChiÕn, Thuật toán hoán chuyển nguồn đích tìm luồng cực đại (1), T¹p chÝ Khoa häc [15] & c«ng nghÖ - Đại học Đà Nẵng (submitted). TrÇn Quèc ChiÕn, Thuật toán hoán chuyển nguồn đích tìm luồng cực đại (2), T¹p chÝ Khoa häc [16] & c«ng nghÖ - Đại học Đà Nẵng (submitted). TrÇn Quèc ChiÕn  NguyÔn Thanh TuÊn, Một số giải thuật tìm đường đi ngắn nhất giữa hai [17] tập đỉnh. Kỷ yếu Hội thảo quốc gia: Một số vấn đề chọn lọc của CNTT, Đà Nẵng 18-20 tháng 8 năm 2004, trang 53-59. NXB Khoa học và Kỹ t huật, Hà Nội 2005.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
4=>1