Thuật toán mới xác định độ trễ giải mã của ngôn ngữ chính quy
Tóm tắt Thuật toán mới xác định độ trễ giải mã của ngôn ngữ chính quy: ...A1 = (Q1,Σ, E1, s1, f1) v A2 = (Q2,Σ, E2, s2, f2). Khi õ, tẵch cừa A1 v A2 l ε-ổtổmat kỵ hiằu Prod(A1,A2) = (Q,Σ, E, (s1, s2), (f1, f2)), trong õ Q ⊆ Q1 ìQ2, E ữủc xĂc ành theo quy tưc sau: i) ∀(q1, a, p1) ∈ E1,∀(q2, a, p2) ∈ E2, a ∈ Σ thẳ ((q1, q2), a, (p1, p2)) ∈ E; ii) ∀(q1, ε, p1) ∈ E...chữa ữủc thôm. + Tổ m u mởt ¿nh ang x²t: Náu nõ l ¿nh dÔng (u, 1) thẳ ữủc tổ m u BLUE, ngữủc lÔi thẳ ữủc tổ m u GRAY. ffi°c biằt khi mởt ¿nh ang ữủc x²t (u, 1) ữủc tổ m u BLUE thẳ ¿nh ỗng bở tữỡng ựng (u, 2) cụng ữủc tổ m u BLUE. Trản con ữớng duyằt ỗ thà G′, khði Ưu tứ ¿nh (s,...p fG vợi A2 = Ex(Trim(D(A))) v Prod(A1,A2) xĂc ành mởt ỗ thà G nhữ ð trản. i) L cõ ở trạ giÊi m vổ hÔn khi v ch¿ khi trản G cõ chu trẳnh hủp lằ. ii) L cõ ở trạ giÊi m d ≥ 0 khi v ch¿ khi trản G cõ ữớng i tứ ¿nh khði Ưu án ¿nh kát thúc vợi trồng số lợn nhĐt l d. Chựng minh. i) (⇒...
t½ch Prod(A1,A2), nh¢n cõa ÷íng i giúa hai tr¤ng th¡i k¸ ti¸p (fG, qi) v (fG, qj) (ho°c (pi, f2) v (pj , f2), ho°c (s1, qi) v (fG, qj), ho°c (pi, s2) v (pj , f2)) l tø thuëc L. 4. XC ffiÀNH ffiË TR GII M CÕA NGÆN NGÚ CHNH QUY Cho ngæn ngú ch½nh quy L ÷ñc o¡n nhªn bði ætæmat húu h¤n A, º x¡c ành ë tr¹ gi£i m¢ cõa L, tr÷îc h¸t ta gi£i quy¸t b i to¡n bê trñ tr¶n ç thà nh÷ d÷îi ¥y. 4.1. B i to¡n v· chu tr¼nh hñp l» tr¶n ç thà Cho ç thà húu h¤n câ h÷îng (câ thº câ khuy¶n) G = (V,E) vîi hai ¿nh °c bi»t l ¿nh khði ¦u s v ¿nh k¸t thóc f(s 6= f), tªp U ⊆ V gåi l tªp ¿nh khâa (¿nh s v f khæng thuëc tªp U), c¡c ¿nh cán l¤i gåi l ¿nh khæng khâa. Cho ÷íng i pi gçm d¢y ¿nh v1, . . . , vj , . . . , vi, . . . , vk (vîi s = v1) tr¶n ç thà G. N¸u câ 1 < i < k sao cho vi ∈ U, vk = vj , 1 ≤ j ≤ i th¼ pi gåi l chu tr¼nh hñp l» tr¶n ç thà G. ffi¿nh vl, j ≤ l ≤ k gåi l ¿nh trong cõa chu tr¼nh hñp l». ffi÷íng i pi gåi l i qua ¿nh v, n¸u v l mët trong c¡c ¿nh vl, 2 ≤ l ≤ k. pi công ÷ñc gåi l chùa ¿nh v, n¸u v l mët trong c¡c ¿nh vl, 1 ≤ l ≤ k. B i to¡n 1. Cho ç thà húu h¤n câ h÷îng G = (V,E) nh÷ ð tr¶n. Cho bi¸t tr¶n G câ tçn t¤i chu tr¼nh hñp l» hay khæng. ffiº gi£i b i to¡n tr¶n, tr÷îc h¸t ta x¥y düng ç thà sao ch²p G′ = (V ′, E′) tø ç thà G = (V,E) nhí kß thuªt sao ch²p ç thà nh÷ sau: i) Vîi v ∈ V sao ch²p th nh hai ¿nh (v, 1), (v, 2) cõa V ′. ii) Vîi (u, v) ∈ E: + Sao ch²p th nh hai cung ((u, 1), (v, 1)), ((u, 2), (v, 2)) cõa E′; + N¸u u ∈ U th¼ bê sung cung ((u, 1), (v, 2)) v o E′; H m x¥y düng ç thà sao ch²p G′ kþ hi»u l XCopy(G), d÷îi ¥y l gi£i thuªt: Function XCopy(G) 146 ffiNG QUYT THNG, NGUYN ffiNH H N, PHAN TRUNG HUY Input: ffiç thà húu h¤n câ h÷îng G. Output: ffiç thà sao ch²p G′ tø ç thà G. {Gi£i thuªt dòng m£ng: key[q] = 1 khi v ch¿ khi ¿nh q ∈ U} 1. V ′ = ∅;E′ = ∅; 2. for each u in V do V ′ = V ′ ∪ {(u, 1), (u, 2)}; 3. for each u in V do 4. for each v in Next(u) do E′ = E′ ∪ {((u, 1), (v, 1)), ((u, 2), (v, 2))}; if key[u] = 1 then E′ = E′ ∪ {((u, 1), (v, 2))}; 5. return G′. Nhªn x²t 4.1. i) ffiç thà sao ch²p G′ câ |V ′| = 2|V |, |E′| ≤ 3|E|. ii) Tªp c¡c ¿nh d¤ng (v, k) c£m sinh trong G′ ç thà con Gk, k = 1, 2. Méi ç thà con Gk ·u ¯ng c§u vîi G. G′ thüc ch§t l sü k¸t nèi câ chån låc cõa hai ç thà con G1, G2, ch¿ câ c¡c cung i tø G1 ¸n G2 m khæng câ chi·u ng÷ñc l¤i. Hiºn nhi¶n ta câ bê · sau: Bê · 4.1. Gi£i thuªt XCopy câ ë phùc t¤p thíi gian O(|V |+ |E|). Vai trá cõa ç thà sao ch²p G′ trong vi»c x¡c ành chu tr¼nh hñp l» tr¶n G, ÷ñc cho bði ành lþ sau: ffiành lþ 4.1. Cho ç thà húu h¤n G = (V,E), câ ¿nh khði ¦u s ∈ V , ¿nh k¸t thóc f ∈ V (s 6= f), vîi tªp ¿nh khâa U (¿nh s v f khæng thuëc tªp U) v G′ = XCopy(G). Tr¶n G tçn t¤i chu tr¼nh hñp l» khi v ch¿ khi tr¶n G′ tçn t¤i ÷íng i pi tø ¿nh (s, 1) ¸n ¿nh (v, 2) v (v, 1) thuëc pi. Chùng minh. (⇒) Tr¶n G tçn t¤i chu tr¼nh hñp l»: u1, . . . , uj , . . . , ui, . . . , uk, (vîi s = u1), ta câ 1 < i < k sao cho ui ∈ U v uj = uk, 1 ≤ j ≤ i. Theo c¡ch x¥y düng ç thà sao ch²p G′, tr¶n nâ tçn t¤i ÷íng i pi sau: (u1, 1), . . . , (uj , 1), . . . , (ui, 1), (ui+1, 2), . . . , (uk, 2), ð â (s, 1) = (u1, 1), (uk, 2) = (v, 2). Do uj = v, 1 ≤ j ≤ i suy ra (v, 1) ∈ pi. (⇐) Tr¶n G′ tçn t¤i ÷íng i pi tø ¿nh (s, 1) ¸n ¿nh (v, 2) v (v, 1) ∈ pi. Theo c¡ch x¥y düng ç thà sao ch²p G′, khi â ÷íng i pi câ d¤ng sau: (u1, 1), . . . , (uj , 1), . . . , (ui, 1), (ui+1, 2), . . . , (uk, 2), ð â (s, 1) = (u1, 1), (uk, 2) = (v, 2) v ui ∈ U vîi 1 < i < k. Do (v, 1) ∈ pi, n¶n v = uj vîi 1 ≤ j ≤ i. T÷ìng ùng vîi ÷íng i pi, tr¶n G câ ÷íng i sau ¥y: u1, . . . , uj , . . . , ui, ui+1, . . . , uk, ð â s = u1, uk = v, ui ∈ U vîi 1 < i < k, v uk = uj vîi 1 ≤ j ≤ i. Hay tr¶n G câ chu tr¼nh hñp l». ffiành lþ 4.1 l cì sð cho ta x¥y düng gi£i thuªt x¡c ành câ chu tr¼nh hñp l» tr¶n G hay khæng. Ta thüc hi»n tæ m u c¡c ¿nh tr¶n ç thà sao ch²p G′. Trong kß thuªt tæ m u, méi THUŁT TON MÎI XC ffiÀNH ffiË TR GII M CÕA NGÆN NGÚ CHNH QUY 147 ¿nh câ thuëc t½nh mark º cho bi¸t ¿nh â ÷ñc tæ m u g¼, ta sû döng 4 m u nh÷ sau: + ffi¿nh (u, i) ÷ñc tæ m u WHITE (hay mark[(u, i)] = WHITE) º biºu di¹n ¿nh (u, i) ch÷a ÷ñc th«m. + Tæ m u mët ¿nh ang x²t: N¸u nâ l ¿nh d¤ng (u, 1) th¼ ÷ñc tæ m u BLUE, ng÷ñc l¤i th¼ ÷ñc tæ m u GRAY. ffi°c bi»t khi mët ¿nh ang ÷ñc x²t (u, 1) ÷ñc tæ m u BLUE th¼ ¿nh çng bë t÷ìng ùng (u, 2) công ÷ñc tæ m u BLUE. Tr¶n con ÷íng duy»t ç thà G′, khði ¦u tø ¿nh (s, 1), n¸u ¸n ÷ñc ¿nh (u, 2) tæ m u BLUE th¼ theo ffiành lþ 4.1 tr¶n G câ chu tr¼nh hñp l». + ffi¿nh ÷ñc tæ m u BLACK cho bi¸t ¿nh bà lo¤i. Gi£i thuªt câ thº ÷ñc mæ t£ nh÷ sau: i) Ban ¦u c¡c ¿nh tr¶n G′ ÷ñc tæ m u WHITE. ii) Sau â ta gåi ¸n gi£i thuªt Visit tø mët ¿nh cho tr÷îc (s, 1), gi£i thuªt Visit ÷ñc c£i ti¸n tø gi£i thuªt DFS (Depth First Search) (xem [15]) º tæ m u tr¶n G′. Function Visit(graphG′, vertex (u, i)) 1. if i = 1 then mark[(u, 1)] = mark[(u, 2)] = BLUE else mark[(u, i)] = GREY 2. for each (v, j) in Next((u, i)) do if mark[(v, j)] = BLUE and j = 2 then return TRUE; if mark[(v, j)]= WHITE then if V isit(G′, (v, j)) then return TRUE 3. mark[(u, i)] = BLACK if i = 1 and mark[(u, 2)] = BLUE then mark[(u, 2)] = WHITE 4. return FALSE Function ContainsCycle(graphG′, vertex (u, i)) 1. for each (u, 1) in V ′ do mark[(u, 1)] = mark[(u, 2)] = WHITE 2. return V isit(G′, (u, i)); Nhªn x²t 4.2. i) Gi£i thuªt Visit ph¡t hi»n chu tr¼nh hñp l» (n¸u câ) tr¶n G. ii) B÷îc thüc hi»n gi£i thuªt Visit ch¿ l c£i ti¸n gi£i thuªt DFS, n¶n gi£i thuªt Contain- sCycle câ ë phùc t¤p thíi gian l O(|V ′|+ |E′|) = O(2|V |+ 3|E|) = O(|V |+ |E|). 4.2. Gi£i thuªt x¡c ành ë tr¹ gi£i m¢ B i to¡n 2. Cho ngæn ngú ch½nh quy L ⊆ Σ∗ ÷ñc o¡n nhªn bði ætæmat húu h¤n A. H¢y x¥y düng gi£i thuªt x¡c ành ë tr¹ gi£i m¢ cõa L. Gi£ sû A = (Q,Σ, E, I, F ) v L = L(A). Ta x²t c¡c tr÷íng hñp sau: 148 ffiNG QUYT THNG, NGUYN ffiNH H N, PHAN TRUNG HUY a) N¸u L khæng l m¢ th¼ k¸t thóc: Vi»c kiºm tra L câ l m¢ hay khæng câ thº ¡p döng gi£i thuªt cõa R. McCloskey (xem [1]). Ta kþ hi»u h m thüc hi»n kiºm tra l CodeAlgo(A), tr£ l¤i gi¡ trà TRUE n¸u L = L(A) l m¢, ng÷ñc l¤i h m tr£ l¤i gi¡ trà FALSE, gi£i thuªt câ ë phùc t¤p thíi gian O((|Q|+ |E|)2). b) N¸u L l m¢ th¼ L ⊆ Σ+: Ta x¥y düng A2 =Ex(Trim(D(A))) = (Q2,Σ, E2, s2, f2), A1 =Graft(A2) = (Q1,Σ, E1, s1, f1) câ tr¤ng th¡i gh²p fG (ð â ta êi t¶n tr¤ng th¡i gh²p tø f2 th nh fG, tr¤ng th¡i ¦u tø s2 th nh s1). L§y t½ch A1 vîi A2 ta câ Prod(A1,A2). Ta xem ε-ætæmat Prod(A1,A2) nh÷ mët ç thà húu h¤n câ h÷îng G(Prod(A1,A2) x¡c ành mët ç thà câ h÷îng G), c¡c tr¤ng th¡i l c¡c ¿nh cõa ç thà, câ ¿nh khði ¦u (s1, s2), ¿nh k¸t thóc (f1, f2), ¿nh (fG, f2) gåi l ¿nh gh²p t½ch tr¶n ç thà G, tªp ¿nh khâa U = {(fG, q) ∈ Q1 × Q2 | q 6= f2, s2}, mët cung cõa Prod(A1,A2) x¡c ành mët cung cõa ç thà, cung i ¸n ¿nh khâa ÷ñc g¡n trång sè 1 c¡c cung cán l¤i ÷ñc g¡n trång sè 0. H¼nh 4.1. T½nh ë tr¹ gi£i m¢ cõa L Ph÷ìng ph¡p t½nh ë tr¹ gi£i m¢ câ thº mæ t£ nh÷ sau: L câ ë tr¹ gi£i m¢ d ≥ 0, khi â d l sè nguy¶n nhä nh§t sao cho: ∀x, x′ ∈ L,∀y ∈ Ld, ∀u ∈ Σ∗, xyu ∈ x′L∗ ⇒ x = x′ (hay d l sè nguy¶n lîn nh§t m : ∃x, x′ ∈ L, x 6= x′, ∃y = y1y2 · · · yd−1 ∈ Ld−1, yi ∈ L,∃u ∈ Σ∗ sao cho xyu ∈ x′L∗ (ta công câ xyu = x′y′ vîi y′ = y′1y′2 . . . y′n ∈ L∗, y′i ∈ L)). Khi â, ta thüc hi»n t½ch ε-ætæmat A1 o¡n nhªn L+Σ∗ vîi ε-ætæmat A2 o¡n nhªn L+. Tr¶n ç thà G x¡c ành bði ε-ætæmat t½ch cõa A1 vîi A2, ta x¡c ành ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc câ nhi·u ¿nh khâa (fG, qi) nh§t. Sè ¿nh khâa t¼m ÷ñc ch½nh l ë tr¹ gi£i m¢ d cõa L, nh÷ mæ t£ bði H¼nh 4.1. Trong tr÷íng hñp L l m¢, ta thi¸t lªp c¡c k¸t qu£ d÷îi ¥y: Bê · 4.2. Cho ç thà G x¡c ành nh÷ ð tr¶n. N¸u tr¶n G câ chu tr¼nh hñp l» th¼ tçn t¤i chu tr¼nh hñp l» thäa m¢n: i) Khæng chùa ¿nh gh²p t½ch v khæng i qua ¿nh khði ¦u. ii) Tçn t¤i ¿nh trong ¸n ÷ñc ¿nh k¸t thóc. Chùng minh. Tr¶n G câ chu tr¼nh hñp l» pi gçm d¢y ¿nh v1, . . . , vj , . . . , vi, . . . , vk vîi 1 < i < k, vi ∈ U, vk = vj , 1 ≤ j ≤ i, hay pi câ d¤ng: (p1, q1), . . . , (pj , qj), . . . , (fG, qi), . . . , (pk, qk), vîi v1 = (p1, q1) = (s1, s2), vj = (pj , qj), vi = (fG, qi), vk = (pk, qk). i) Khi â chu tr¼nh hñp l» pi khæng chùa ¿nh gh²p t½ch (fG, f2) v khæng i qua ¿nh khði ¦u (s1, s2), thªt vªy: + Gi£ sû pi i qua ¿nh khði ¦u vl = v1 vîi 1 < l ≤ j, khi â ta x²t chu tr¼nh hñp l» pi bt ¦u tø ¿nh khði ¦u vl. THUŁT TON MÎI XC ffiÀNH ffiË TR GII M CÕA NGÆN NGÚ CHNH QUY 149 + Gi£ sû pi chùa ¿nh gh²p t½ch vl = (fG, f2) vîi 1 ≤ l ≤ j, tr¶n cì sð x¥y düng c¡c ε-ætæmat A1, A2 v ph²p t½ch ætæmat, ¿nh k¸ ti¸p câ thº i ¸n tø ¿nh gh²p t½ch (fG, f2) tr¶n G, ch¿ câ thº l ¿nh (f1, s2) ho°c ¿nh khði ¦u (s1, s2). ffi¿nh (f1, s2) khæng thº l ¿nh k¸ ti¸p cõa ¿nh gh²p t½ch (fG, f2), v¼ tr¶n pi câ ¿nh khâa (fG, qi), m tø ¿nh (f1, s2) khæng thº ¸n ÷ñc ¿nh khâa (fG, qi). Vªy, k¸ ti¸p ¿nh gh²p t½ch (fG, f2) ch¿ câ thº l ¿nh (s1, s2), ta x²t chu tr¼nh hñp l» pi bt ¦u tø ¿nh (s1, s2) n y. + Gi£ sû pi chùa ¿nh gh²p t½ch vl = (fG, f2) vîi j ≤ l ≤ k, khi â ta câ ÷íng i tr¶n chu tr¼nh l : (fG, f2) x1−→ (fG, qi) x2−→ (pk, qk) x3−→ (fG, f2), (ho°c (fG, f2) x1−→ (pk, qk) x2−→ (fG, qi) x3−→ (fG, f2)) v¼ (fG, qi) l ¿nh khâa n¶n qi 6= f2, s2. Tø Nhªn x²t 3.2 th¼ x1, x2x3 ∈ L+ (ho°c x1x2, x3 ∈ L+), suy ra, x¥u x1x2x3 câ hai ph¥n t½ch kh¡c nhau trong L, khi â L khæng l m¢, i·u n y tr¡i vîi gi£ thi¸t L l m¢. + Gi£ sû pi i qua ¿nh khði ¦u vl = (s1, s2) vîi j ≤ l ≤ k, khi â ¿nh vl câ cung i ¸n nâ, tr¶n cì sð x¥y düng c¡c ε-ætæmat A1, A2 v ph²p t½ch ætæmat th¼ ¿nh k¸ tr÷îc vl trong chu tr¼nh pi l ¿nh (fG, f2), nh÷ ph¥n t½ch ð tr¶n, i·u n y l m¥u thu¨n. ii) Chu tr¼nh pi câ ½t nh§t mët ¿nh trong ¸n ÷ñc ¿nh k¸t thóc (f1, f2) tr¶n G. Thªt vªy, tr¶n pi câ ¿nh trong vl = (fG, qi) vîi j ≤ l ≤ k, qi 6= f2, s2, tr¶n cì sð x¥y düng c¡c ε-ætæmat A1, A2 v ph²p t½ch ætæmat, tø ¿nh (fG, qi) ta ¸n ÷ñc ¿nh (f1, qi) b¬ng mët cung vîi nh¢n ε. Do A2 =Ex(Trim(D(A))), n¶n tø tr¤ng th¡i b§t ký qi tr¶n A2 ·u ¸n ÷ñc tr¤ng th¡i f2, v tø f1 tr¶n A1 ch¿ câ c¡c cung ¸n ch½nh nâ vîi nh¢n l kþ tü thuëc Σ ∪ {ε}, vªy theo t½ch ætæmat th¼ tr¶n G ph£i câ ÷íng i tø (fG, qi) ¸n (f1, f2). ffiành lþ 4.2. Cho ngæn ngú ch½nh quy L ⊆ Σ+ l m¢ ÷ñc o¡n nhªn bði ætæmat húu h¤n A. Cho A1 = Graft(A2) câ tr¤ng th¡i gh²p fG vîi A2 = Ex(Trim(D(A))) v Prod(A1,A2) x¡c ành mët ç thà G nh÷ ð tr¶n. i) L câ ë tr¹ gi£i m¢ væ h¤n khi v ch¿ khi tr¶n G câ chu tr¼nh hñp l». ii) L câ ë tr¹ gi£i m¢ d ≥ 0 khi v ch¿ khi tr¶n G câ ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc vîi trång sè lîn nh§t l d. Chùng minh. i) (⇒) L câ ë tr¹ gi£i m¢ væ h¤n, khi â x²t vîi mët sè nguy¶n khæng ¥m b§t ký d, ta câ ∃x, x′ ∈ L, x 6= x′,∃y = y1y2 · · · yd ∈ Ld, yi ∈ L,∃u = u1u2 · · ·ul ∈ Σ∗, ui ∈ Σ sao cho xyu ∈ x′L∗. Vîi tø xyu, trong A1 câ ÷íng i pi nh¢n xyu: s1 x−→ fG ε−→ s1 y1−→ fG ε−→ s1 · · · s1 yd−→ fG ε−→ f1 u1−→ f1 · · · f1 ul−→ f1. T÷ìng tü vªy, vîi xyu = x′y′1y′2 · · · y′n ∈ x′L∗, y′i ∈ L trong A2 câ ÷íng i θ nh¢n xyu: s2 x′−→ f2 ε−→ s2 y ′ 1−→ f2 ε−→ s2 · · · s2 y ′ n−→ f2. Khi â, tr¶n ç thà G câ ÷íng i ρ ÷ñc t¤o n¶n tø pi v θ, khði ¦u tø (s1, s2) v k¸t thóc l (f1, f2) nh÷ sau: (s1, s2), . . . , (fG, qi), . . . , (pj , f2), . . . , (f1, f2), 150 ffiNG QUYT THNG, NGUYN ffiNH H N, PHAN TRUNG HUY do L l m¢ n¶n qi 6= f2, s2 v pj 6= fG, s1, do ta câ thº chån d tòy þ õ lîn (ch¯ng h¤n d lîn hìn sè tr¤ng th¡i cõa A1), sè tr¤ng th¡i cõa A1 l húu h¤n, n¶n trong ρ ph£i tçn t¤i hai ¿nh (fG, qi) tròng nhau, hay nâi c¡ch kh¡c trong G câ chu tr¼nh hñp l». (⇐) Tr¶n G câ chu tr¼nh hñp l» pi gçm d¢y ¿nh v1, . . . , vj , . . . , vi, . . . , vk vîi 1 < i < k, vi ∈ U, vk = vj , 1 ≤ j ≤ i, hay pi l ÷íng i câ nh¢n nh÷ sau: (p1, q1) x1−→ (pj , qj) x2−→ (fG, qi) x3−→ (pk, qk) vîi v1 = (p1, q1) = (s1, s2), vj = (pj , qj), vi = (fG, qi) ∈ U, vk = (pk, qk). Theo Bê · 4.2 ta câ pi khæng chùa ¿nh gh²p t½ch (fG, f2), khæng i qua ¿nh khði ¦u (s1, s2) v tçn t¤i ¿nh trong (fG, qi) ¸n ÷ñc ¿nh k¸t thóc (f1, f2) tr¶n G. Khi â tr¶n G câ ÷íng i ρ câ nh¢n sau ¥y: (s1, s2) x1−→ (pj , qj) x2−→ (fG, qi) x3−→ (pj , qj) x2−→ (fG, qi) x3−→ · · · · · · x2−→ (fG, qi) x3−→ (pj , qj) x2−→ (fG, qi) ε−→ (f1, qi) u−→ (f1, f2), ta công câ tr¶n ρ khæng chùa ¿nh (fG, f2), khæng i qua ¿nh (s1, s2). Khæng l m m§t t½nh têng qu¡t, ta gi£ sû (fG, qi) l ¿nh khâa ¦u ti¶n tr¶n ρ. Theo Nhªn x²t 3.2 th¼ ta câ x3x2 ∈ L+. Vªy, vîi d lîn tòy þ, ∃x = x1x2, x 6= x′ ∈ L,∃y = (x3x2)d ∈ L+,∃u ∈ Σ∗ sao cho xyu ∈ x′L∗, hay nâi c¡ch kh¡c L câ ë tr¹ gi£i m¢ væ h¤n. ii) (⇒) N¸u L câ ë tr¹ gi£i m¢ d + Ta x²t vîi d = 0 th¼ ∀x, x′ ∈ L,∀u ∈ Σ∗, xu ∈ x′L∗ ⇒ x = x′. Tr¶n cì sð x¥y düng c¡c ε-ætæmat A1, A2 v ph²p t½ch ætæmat. N¸u d = 0 th¼ tr¶n G, måi ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc khæng câ ¿nh khâa, khi â måi cung tr¶n c¡c ÷íng i n y ·u câ trång sè 0, vªy ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc câ trång sè lîn nh§t l d = 0. + Ta x²t vîi d > 0 ∀x, x′ ∈ L,∀y ∈ Ld, ∀u ∈ Σ∗, xyu ∈ x′L∗ ⇒ x = x′, hay d l lîn nh§t thäa m¢n: ∃x, x′ ∈ L, x 6= x′,∃y = y1y2 · · · yd−1 ∈ Ld−1, yi ∈ L,∃u = u1u2 · · ·ul ∈ Σ∗, uj ∈ Σ sao cho xyu ∈ x′L∗ (ta công câ xyu = x′y′ vîi y′ = y′1y′2 · · · y′n ∈ L∗, y′i ∈ L). (4.2) Vîi x¥u xyu trong A1 tçn t¤i ÷íng i pi nh÷ sau: s1 x−→ fG ε−→ s1 y1−→ fG ε−→ s1 · · · s1 yd−1−−−→ fG ε−→ f1 u1−→ f1 · · · f1 ul−→ f1. T÷ìng tü vªy, vîi x¥u x′y′ trong A2 tçn t¤i ÷íng i θ: s2 x′−→ f2 ε−→ s2 y ′ 1−→ f2 ε−→ s2 · · · s2 y ′ n−→ f2. Khi â, theo t½ch ætæmat, trong ç thà G câ ÷íng i ρ ÷ñc t¤o l¶n tø pi v θ, khði ¦u tø (s1, s2) v k¸t thóc l (f1, f2) nh÷ sau: (s1, s2) x−→ (fG, q1) ε−→ (s1, q1) y1−→ (fG, q2) ε−→ (s1, q2) · · · (s1, qd−1) yd−1−−−→ (fG, qd) ε−→ (f1, p1) u1−→ (f1, p2) · · · (f1, pl) ul−→ (f1, f2) THUŁT TON MÎI XC ffiÀNH ffiË TR GII M CÕA NGÆN NGÚ CHNH QUY 151 do x 6= x′ v L l m¢ n¶n qi 6= f2, s2, vîi måi i = 1, . . . , d. V¼ d l lîn nh§t thäa m¢n 4.2 n¶n ÷íng i ρ tr¶n G tø ¿nh khði ¦u (s1, s2) ¸n ¿nh k¸t thóc (f1, f2) câ trång sè lîn nh§t l d. (⇐) N¸u tr¶n G câ ÷íng i ρ tø ¿nh khði ¦u ¸n ¿nh k¸t thóc câ trång sè lîn nh§t d. + Tr÷íng hñp d = 0. Khi â, tr¶n b§t ký mët ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc khæng câ ¿nh khâa. Ta câ ∀x, x′ ∈ L,∀u ∈ Σ∗, xu ∈ x′L∗ ⇒ x = x′. Hay ë tr¹ gi£i m¢ cõa L l b¬ng 0. + Tr÷íng hñp d > 0. Khi â ÷íng i ρ câ d¤ng: (s1, s2) x−→ (fG, q1) y1−→ (fG, q2) y2−→ (fG, q3) · · · (fG, qd−1) yd−1−−−→ (fG, qd) ε−→ (f1, p1) u−→ (f1, f2) ð â qi 6= f2, s2, vîi i = 1, . . . , d v x, y1, . . . , yd−1 ∈ L, u ∈ Σ∗. T÷ìng ùng vîi ÷íng i ρ tr¶n G th¼ tr¶n A1 tçn t¤i ÷íng i pi vîi nh¢n xyu = xy1 · · · yd−1u: s1 x−→ fG y1−→ fG y2−→ fG · · · fG yd−1−−−→ fG ε−→ f1 u−→ f1 v tr¶n A2 công tçn t¤i ÷íng i θ vîi nh¢n x′y′, x′ ∈ L, y′ ∈ L∗ sao cho xyu = x′y′: s2 x′−→ f2 y ′ −→ f2. Vªy d l lîn nh§t m ∃x, x′ ∈ L, x 6= x′, ∃y ∈ Ld−1,∃u ∈ Σ∗ sao cho xyu ∈ x′L∗, hay d l nhä nh§t sao cho: ∀x, x′ ∈ L,∀y ∈ Ld, ∀u ∈ Σ∗, xyu ∈ x′L∗ ⇒ x = x′, suy ra L câ ë tr¹ gi£i m¢ d. D÷îi ¥y l gi£i thuªt x¡c ành ë tr¹ gi£i m¢ cõa ngæn ngú ch½nh quy L ⊆ Σ∗. Gi£i thuªt DecipheringDelay(A) Input: Ætæmat húu h¤n A v L = L(A) ⊆ Σ∗. Output: Thæng b¡o trong tr÷íng hñp L khæng l m¢ ho°c câ ë tr¹ gi£i m¢ væ h¤n, ng÷ñc l¤i gi£i thuªt tr£ l¤i ë tr¹ gi£i m¢ cõa L. 1. if not CodeAlgo(A) then Return (L khæng l m¢); 2. A2 = Ex(Trim(D(A))) = (Q2,Σ, E2, s2, f2); A1 = Graft(A2) = (Q1,Σ, E1, s1, f1); 3. G = Prod(A1,A2); {cï |Q|2 tr¤ng th¡i v |E|2 cung} 4. G′ = XCopy(G); {cï 2|Q|2 ¿nh v 3|E|2 cung} 5. if ContainsCycle(G′, ((s1, s2), 1)) then Return ("ffië tr¹ gi£i m¢ væ h¤n") 6. T¼m trång sè d i nh§t d cõa ÷íng i tø ¿nh (s1, s2) ¸n ¿nh (f1, f2) tr¶n G 7. Return d. ffi¡nh gi¡ ë phùc t¤p thíi gian cõa gi£i thuªt: ffië phùc t¤p thíi gian cõa b÷îc 1 l O((|Q| + |E|)2), b÷îc 2 èi vîi h m D(A) l O(|Q| + |E|), h m Trim l O(|Q| + |E|), c¡c h m Ex v Graft l O(1), b÷îc 3 l O((|Q|+ |E|)2), b÷îc 4 v b÷îc 5 l O(|Q|2 + |E|2). Ð b÷îc 6, G x¡c ành mët ç thà câ chu tr¼nh, c¡c cung i ¸n ¿nh khâa câ trång sè l 1, c¡c cung cán l¤i câ trång sè l 0, do ç thà x¡c ành bði G khæng câ chu tr¼nh hñp l», cho n¶n mët chu tr¼nh b§t ký l khæng câ ¿nh khâa, vªy c¡c cung tham gia v o chu tr¼nh ·u câ 152 ffiNG QUYT THNG, NGUYN ffiNH H N, PHAN TRUNG HUY trång sè 0. ffiº thüc hi»n t¼m trång sè d i nh§t cõa ÷íng i tø ¿nh khði ¦u ¸n ¿nh k¸t thóc ta g¡n c¡c cung câ trång sè l 1 th nh -1, rçi ¡p döng gi£i thuªt Bellman Ford (xem [15]) t¼m ÷íng i ngn nh§t tr¶n ç thà trång sè câ thº ¥m v câ chu tr¼nh khæng ¥m, khi â d l gi¡ trà nhä nh§t t¼m ÷ñc th¼ d l trång sè d i nh§t cõa ÷íng i tø ¿nh (s1, s2) ¸n ¿nh (f1, f2) tr¶n G. Thüc hi»n to n bë b÷îc 6 câ ë phùc t¤p thíi gian l O(|Q|2|E|2). Têng hñp l¤i gi£i thuªt câ ë phùc t¤p thíi gian O(|Q|2|E|2) = O(|E|3) = O((|E| + |Q|)3) = O(n3), vîi n = |Q| + |E|, ð ¥y ta xem O(|E|) = O(|Q|2) (khi ætæmat d y cung nh§t). 5. KT LUŁN Nghi¶n cùu c¡c mæ h¼nh ætæmat n¥ng cao v ùng döng cõa nâ l mët trong c¡c xu h÷îng nghi¶n cùu hi»n ¤i ÷ñc nhi·u nh khoa håc - cæng ngh» quan t¥m. B i b¡o · xu§t gi£i thuªt mîi x¡c ành ë tr¹ gi£i m¢ cõa ngæn ngú ch½nh quy, ÷ñc o¡n nhªn bði ætæmat húu h¤n. ffi¥y l b i to¡n câ þ ngh¾a v· lþ thuy¸t công nh÷ ùng döng thüc ti¹n. TI LIU THAM KHO [1] R. McCloskey, An O(n2) Time algorithm for deciding whether a regular language is a code, Journal of Computing and Information 2 (1) (1996) 7989. [2] J. Berstel, D. Perrin, Theory of Codes, Academic Press Inc., NewYork, 1985. [3] J. Devolder, M. Latteux, I. Litovsky, L. Staiger, Codes and infinite words, Acta Cybernetica 11 (4) (1994) 241-256. [4] G. Lallement, Semigroups and Combinational Applications, John Wiley & Sons, Inc, 1979. [5] L. Staiger, On infinitary finite length codes, Informatique Theorique et Applications 20 (4) (1986) 483494. [6] M. Mohri, Edit-Distance of Weighted Automata: General Definitions and Algorithms, Interna- tional Journal of Foundations of Computer Science 14 (6) (2003) 957982. [7] M. Mohri, F. Pereira, M. Riley, Speech recognition with weighted finite-state transducers, Springer Handbook of Speech Processing, Springer, 2007. [8] K. Stavros, Transducers and the properties of errordetection, error-correction, and finite-delay decodability. Journal of Universal Computer Science 8 (2) (2002) 278291. [9] E. N. Gilbert, E. F. Moore, Variable length binary encodings, Bell System Technical Journal 38 (1959) 933967. [10] V. I. Levenshtein, Some properties of coding and self-adjusting automata for decoding messages, Problemy Kirbernet 11 (1964) 63121. [11] M.-P. Schutzenberger, On a question concerning certain free submonoids, J. Combin. Theory 1 (1966) 437422. THUŁT TON MÎI XC ffiÀNH ffiË TR GII M CÕA NGÆN NGÚ CHNH QUY 153 [12] A. A. Markov, On alphabet coding Soviet. Phys. Dokl. 6 (1962) 553-554. [13] C. Choffrut. Une caract²risation des codes d²lai born² par leur fonction de d²codage. LITP, 1979 (4756). [14] Phan Trung Huy, Vô Th nh Nam, Mët sè ë o nhªp nh¬ng cõa m¢, T¤p ch½ Tin håc v ffii·u khiºn håc 18 (3) (2002) 253261. [15] T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein, Introduction to Algorithms, (3rd ed.), MIT Press and McGraw-Hill, 2009. [16] Nguy¹n ffi¼nh H¥n, ffi°ng Quy¸t Thng, Hç Ngåc Vinh, T½nh to¡n ë tr¹ gi£i m¢ cõa ngæn ngú b¬ng otomat, Kff y¸u Hëi th£o Quèc gia: Mët sè v§n · chån låc cõa cæng ngh» thæng tin v truy·n thæng, 8/2010 (321332). [17] D.L. Van and I. Litovsky, On a family of code with bounded deciphering delay, Lecture Notes of Computer Science 2450 (2003) 369380. Ng y nhªn b i 28 - 3 - 2012 Nhªn l¤i sau sûa 20 - 8 - 2012
File đính kèm:
- thuat_toan_moi_xac_dinh_do_tre_giai_ma_cua_ngon_ngu_chinh_qu.pdf