Ngôn ngữ hình thức và ôtômat chương 1

7 227 0
Ngôn ngữ hình thức và ôtômat   chương 1

Đang tải... (xem toàn văn)

Thông tin tài liệu

Chà m i ng Ch Chào Ngôn ng hình th c Ôtômat (Formal Language & Automata) i! Hello Everyone! Bonjour Tout le Monde ! PGS.TS Phan Huy Khá Khánh khanhph@vnn.vn, khanhph@vnn.vn, phk@ud.edu.vn Ch ng ! M đ u K ! 2/38 2/38 Ta s h c nh ng bu i mô ? Tr ng HSP : 05CTT12 (Hai l p tr ng quy t đ nh) : Chi u th Hai hà hàng tu n, t i A5A5-104, 13H30 Nh ng bu i đ u : Chi u th Hai 14/01 To Start… Sáng th B y, 26/01/2008, 7H00 Sau T t, t.29, 13H30, 25/02/08 “One picture is worth more than ten thousand words” Chinese Proverb 4/38 4/38 M t vài “chuy n nh ” b t đ u môn h c Ghi ché chép nh th ? Có nên ghi bà gi ng l p vào s , v h c trò ? Th t c “chà chào h i” : H c b ng slide c n có có TLTK+ cá cách ghi h p lý N u không s x y hi n t ng “TH A TAY” TAY”, “đ tay nhà” nhà” Vào l p mu n, ho c kh i l p, không c n xin phé phép Khi Gi ng viên (GV) h i, c n : Nói rõ và to gi ng đ c l p cù nghe đ c Khi tr l i, c n th c hi n : T ch i, không bi t, ho c tr l i tr c ti p vào câu h i Ghi bà gi ng l p vào gi y r i A4 M i môn h c m t t p gi y A4, có có màu đá đánh d u phân bi t Chu n b h c : Nguyên t c thao tá tác ti p th tri th c và ng d ng : L p s ch s (m i ngh a), s n sà sàng cho bu i d y Ng i t p trung g n tôi, không ng i ki u “gió gió đ a ao bè bèo ” ” Giú Giúp GV chu n b hì hình, đè đèn chi u, c m n Thu nh t, li t kê, vun x i Phân lo i, s p x p Khoanh vù vùng, gi i h n Ch đ nh, l a ch n, tì tìm ki m V n d ng, hoà hoàn thi n, làm già giàu tri th c K t thú thúc môn h c : Giú Giúp GV d n d p mà hì hình, đè đèn chi u, c m n Tìm ki m ph ng phá pháp h c t p hi u qu Phá Phát huy cá giá giác quan : m tn, tain, mi ngn, m in, tayn 5/38 5/38 6/38 6/38 M c đí đích môn h c có th “t c ký” ký” Dùng S d ng b ng vi t t t (BVT) : t đ nh ngh a ch vi t t t c a riêng mì H c ph n cung c p c s toá toán h c c a cá ph ng phá pháp hình th c vi c xây d ng cá ngôn ng l p trì trình Giú Giúp sinh viên hi u đ c nh ng y u t c b n c a m t ngôn ng hình th c nh b ng ch , t v ng, cú cú phá pháp và ng ngh a Ví d : ql = qu n lý pp = ph ng phá pháp pp+ = phân ph i = ng ng H c ph n trì trình bà bày cá công c ch y u đ làm vi c v i ngôn ng hình th c là v n ph m và ôtômat, phân lo i ngôn ng c a Chomsky : i Luôn mang BVT theo mì mình, m i lú lúc m i n i Ch ch n ghi cá ý chí chính, hay t khoá khoá Ngôn ng chí quy Không nh t thi t ghi c câu Ngôn ng phi ng c nh Tìm m i cá cách đ v , thay vì ch vi t ! Ngôn ng c m ng c nh Ngôn ng lo i (g n g i v i ngôn ng t nhiên) 7/38 7/38 8/38 8/38 Ki n th c yêu c u ánh giá giá k t qu h c t p Môn h c yêu c u ki n th c tiên quy t : Toá Toán cho Tin h c Lý thuy t Yêu c u : Hi u n i dung trì trình bà bày l p Th c hi n cá t p v nhà nhà T ph p th Kh n ng th c hà hành K thu t ch ng minh Tinh th n thá thái đ n ng l c h c t p Qui n p Ph n ch ng K thu t mô ph ng Các ki n th c c n thi t khác : C s L p trì trình Georg Cantor (1845–1918) Founder of Modern Set Theory Môn h c đòi h i m t s k n ng : Nghe gi ng, ghi ché chép Tr l i và đ t câu h i Tham kh o tà tài li u, truy c p internet Tham gia h c nhó nhóm, t p th o lu n và thuy t trì trình … Ki m tra gi a k : Bà Bài thi vi t 1515-30 phú phút Ki m tra cu i k : Bà Bài thi vi t 6060-75 phú phút Kh n ng đ c hi u v n đ Trì Trình bà bày di n đ t v n đ (ngh thu t !) Kh n ng th o lu n, làm vi c theo nhó nhóm 9/38 9/38 N i dung môn h c Ch ng M đ u Ch ng Ôtômat h u h n (ôhh/ôh2/ô2h) Ch ng V n ph m chí qui (VPCQ) Ch ng Ôtômat đ y xu ng (ôđx (ôđx)) Ch ng Máy Turing (MT) 10/38 10/38 Tài li u tham kh o Giá Giáo trì trình + Bà Bài gi ng l p Tài li u G p cô H ng, v n th khoa CNTT (chúng ?) Nguy n V n Ba, Ba, Ngôn ng hình th c, NXBKH&KT, 2002 SM D Davis, E J Weyuker, Computability, Computability, Complexity and languages, Academic Press, 1983 J E Hopcroft, J D Ulman, Introduction to Automata Theory, Theory, Languages and Computation, Addison - Wesley, 1979 Phan Huy Khá Khánh Lý thuy t ngôn ng hình th c ôtômá ôtômát Tài li u l u hà hành n i b H V n Quân Quân Giá Giáo trì trình lý thuy t ôtômá ôtômát và ngôn ng hình th c NXB HQG HCM, HCM, 2002 A Salomaa, Nh p môn tin h c, lý thuy t tí tính toá toán ôtômat NXB Khoa h c K thu t, Hà Hà n i 1992 Internet: tì tìm ki m Google.com.vn, wikipedia 11/38 11/38 12/38 12/38 Vài dòng l ch s Cantor (1845-1918) Lý thuy t t p h p Hilbert (1862-1943) Ch “N “N uu tôi có có m m tt ss thành thành công công nh nh tt đđ nh nh trong toán toán hh cc thì đó là vì tôi luôn th th yy nó rr tt khó” khó” Hilbert Hilbert Toán h c ch t ch ng M đ u☺ M t s khái ni m B ng ch (Σ) Câu (xâu) Ngôn ng Gödel (1906-1978) Mô t ngôn ng Lý thuy t v tính không đ y đ Các phé phép toá toán (θ (θ) ngôn ng (ng2) Church, Kleene, Post, Markov, von Neumann, Turing CM t đlý mô (Preuves de quels théorèmes)? “T “T m m nhìn nhìn ta ta th th tt ng ng nn CM v i thtoán mô (Avec quels algorithmes)? mà mà đã th th yy bao bao th th đđ làm” làm” Turing (1912-1954) Bi u th c chí qui (BTCQ) Các ngôn ng phi chí qui Alan Alan Turing Turing V n đ bi u di n ngôn ng Máy Turing McCulloch, Pitts M ng n -ron nhân t o Chomsky 13/38 13/38 14/38 14/38 Mô hình toán h c mô t ngôn ng - hình th c hoá ngôn ng Câu b ng ch Σ B ng ch câu B ng ch (alphabet) : Cho tr m t t p h u h n cá ký t (characters), (characters), hay ký t ng/ ký hi u (symbol), ký hi u b i ch Hy l p Σ Kích th c c a b ng ch s ph n t c a b ng ch đó, ký hi u |Σ |Σ|, hay Card(Σ Card(Σ) (Cardinality) M t câu (phrase, word), hay xâu (string), Σ : m t dãy h u h n cá ph n t c a Σ, ký hi u b i w (hay x, y, u, v ) Ví d m t s b ng ch Σ : {#} { 0, } { ♣, ♠, ♦, ♥ } {0, 1, 2, , 9} {I, V, X, L, C, D, M} {aA, bB, cC, , zZ} {αΑ, βΒ, χΧ, , ζΖ} B ng mã ASCII c m t b ng ch Σ đó dài c a m t câu là s ký t có m t câu, ký hi u là |w| hay length(w) |=1 |Σ| = |Σ| = Ch s th p phân, |Σ| = 10 Ch s La Mã Ch La tinh ch Hi L p dài câu là h u h n, nh ng không h n ch có ký t M t câu có có th có t đ n n ký t tu ý Câu có có đ dài b ng đ c g i là câu r ng (empty word), ký hi u ε, ho c e, ho c λ ho c ω 15/38 15/38 Ví d v câu b ng ch Σ Phé Phép ghé ghép ti p cá câu Cho hai câu u và v Σ Ví d B ng ch Σ { 0, } 16/38 16/38 Câu Σ Phé Phép ghé ghép ti p (Concatenation) c a u và v là câu w = uv ε, 0, 1, 00, 01, 10, 11, 100 Ngh a là câu w g m hai ph n : { a z } a, ab, zt, computer { 0, , 7, ♠, ♣, ♦, ♥ } 4♣3♦2♠, 1234, ♣♠ ASCII M t ch u đgl là ti n t (prefix) r i đ n v là h u t (postfix) c a w ng trì trình C, Pascal, Java, VB Cho m t câu w có có có |w|=n, |w|=n, ng i ta có có th trí trích t w m t ký t đó có v trí trí xác đ nh ph m vi n Ví d câu w=aaabbaabbba có có |w|=11, có th trí trích cá ký t : Tr ng h p câu w = xuy là ghé ghép ti p c a ba câu x, u, u, y, y, u đgl trung t (infix) c a w Ng i ta g i câu r ng ε câu đ n v có εw = wε wε = w v i w là m t câu b t k Σ w(1) = a, , w(4) = b, , w(11) = a Returning 17/38 17/38 18/38 18/38 Các phé phép toá toán khác xâu Khá Khái ni m ngôn ng M t ngôn ng hình th c (nó (nói g n ngôn ng ) : Cho cá câu w Σ o ng c (Reversion) m t câu w, ký hi u Là câu w đ c vi t theo th t ng c l i Phé Phép wR t p h p cá câu đ c xây d ng cù m t b ng ch cho Σ : Ví d : Rõ rà ràng εR = ε Σ* ngôn ng g m t p t t c xâu b ng ch Σ k c xâu r ng Σ+ ngôn ng g m t p t t c xâu b ng ch Σ KHÔNG CÓ CÓ xâu r ng wR = w đgl câu đ i x ng : OMO, akitOMOtika akitOMOtika Phé Phép L y th a (power) xâu wn = ww… ww…w (n l n) Quy w0 = ε v i m i w c ch đ nh m t câu (denotation) Σ+ = Σ* - ε ∅ ngôn ng tr ng (t p tr ng) Chú ý {ε} Ví d L1 = {a, ab, abb, bba, bbb} là ngôn ng h u h n {a, b} L2 = {(ab)n | n > 0} là ngôn ng vô h n {a, b} 19/38 19/38 20/38 20/38 Các phé phép toá toán ngôn ng Các phé phép toá toán ngôn ng Ngôn ng m t t p h p đó có th áp d ng cá phé phép toá toán Phé Phép ghé ghép n i : t p h p : i v i cá ph n t : i v i ngôn ng : Phé Phép ngh ch đ o : ∈∉ ∩∪⊂⊆⊄⊃⊇ Cho L1, L2 và L là ngôn ng , cá phé phép toá toán: Phé Phép h p L1 ∪ L2 = {w | w ∈ L1 ho c w ∈ L2} Phé Phép giao L1 ∩ L2 = {w | w ∈ L1 và w ∈ L2} Phé Phép hi u L1 – L2 = {w | w ∈ L1 và w ∉ L2} Phé Phép bù bù L’ = {w | w ∉ L} ho c L’ L’ = Σ* - L L1L2 = = {w | w = uv, u ∈ L1 và v ∈ L2} LR = {w | wR ∈ L} Phé Phép l y th a : L1 Ln = LL… LL…L (n l n) Li = LLi-1 = Li-1L v i i>0 L0 = {ε {ε} L2 Ghép n i L1 có m câu, L2 có n câu, đ c ngng có m.n ??? câu Là Là b b n n ss cc aa tích tích êCac êCac (Cartesian (Cartesian Product) Product) Ví d : Cho L = { tic, tic, tac, tac, toe toe } : L2 = LL = { tictic, tictac, tictoe, tactic, tactac, tactoe, toetic, toetac, toetac, toetoe } L 21/38 21/38 Các phé phép toá toán ngôn ng Phé Phép bao đóng (closure) : L* = L ∪ L ∪ … ∪ Ln ∪ … = Phé Phép bao đóng d ng : L + = L1 ∪ L ∪ … ∪ L n ∪ … = Nh n xé xét : 22/38 22/38 Các ngôn ng chí quy (NNCQ) ℜ t p h p cá ngôn ng chí quy (Regular Languages) Σ : ∞ UL i i=0 c đ nh ngh a d a cá ngôn ng s c p phé phép toá toán h i, ghé ghép và đóng l p * ∞ UL i i=1 Là t p h p nh nh t (ch a ph n t nh t) cá ngôn ng thõa mãn cá u ki n sau : L+ = LL* = L*L L * = L+ ∪ { ε } ∅ ∈ ℜ, {ε {ε}∈ℜ { a } ∈ ℜ v i ∀a ∈ Σ Ví d : N u A, B ∈ ℜ, thì A∪B, A.B và A* ∈ ℜ Cho L = { tic, tic, tac, tac, toe toe } : L* = { ε, tic, tac, toe, tictic, tictac, tictoe, tactic, tactac, tactoe, toetic, toetac, toetoe, tictictic, tictictac, } 23/38 23/38 Rõ rà ràng ℜ t p h p bé bé nh t đ c xây d ng t t p s c p ∅, { ε } và { a } b i cá phé phép h i, ghé ghép và bao đóng 24/38 24/38 Bi u th c chí quy (BTCQ) Bi u di n ngôn ng b i bi u th c chí qui Ng i ta s d ng cá bi u th c chí quy (Regular (Regular Expressions) đ bi u di n cá ngôn ng chí qui Σ Ngôn ng L(ξ) đ c bi u di n (hay (hay đ c ch đ nh) b i BTCQ ξ theo cá b c quy n p nh sau : Qui t c xây d ng BTCQ Σ bi u th c đ thành theo cá b c quy n p nh sau : ∅, ε a, v i m i ph n t a c a Σ L(∅ L(∅) = ∅, L(ε L(ε) = { ε }, L(a) = { a } cho ∀a ∈Σ ct o L((α L((α ∪ β)) = L(α L(α) ∪ L(β L(β) (1) N u α β hai BTCQ , ), (α (α∪β), α∪β), (αβ (αβ), (α)* c ng là nh ng BTCQ (2) L((αβ )) = L(α L((αβ)) L(α)L(β )L(β) đ u là nh ng BTCQ Chú ác d u ngo c đ n Chú ý : Khi vi t m t BTCQ, có có th th b ccác theo m c u tiên gi m d n : ch ng h n vi t a* thay vì ((a)* Chú ó th vi t a+b thay Chú ý : CCó vvìì vi thay vi t a∪b VVíí d , bi u th c ((0 (1*)) ó th ccó (1*)) + + 0) 0) có th vi t 01*+ L((α L((α)*) = L(α L(α)* T (1) và (2) ta có có tính ch t sau : M t ngôn ng chí qui n u và ch n u ngôn ng đó đ c ch đ nh b i m t bi u th c chí qui Nh n xé xét : Các BTCQ c ng t o thành m t ngôn ng chúng là nh ng xâu ký t b ng ch Σ 25/38 25/38 26/38 26/38 Bao đóng c a b ng ch Σ M t s ví d _ Cho b ng ch Σ, khi đó, L = { a | ∀a ∈ Σ } là m t NNCQ Bao đóng c a L là L* = Σ* là m t NNCQ có có vô h n câu Có th li t kê h t (đ m đ Ví d Σ* = (a+ b)* c) t t c câu c a Σ* ε ab ba bb L2 g m cá câu có có đ dài ≤ L5 = { w ∈ Σ* | w = wR } = {ε {ε, aa, aa, bb, aba, bab, abba, baab, } L5 g m cá câu đ i x ng (palindrome) aaa aab aba abb baa bab bba bbb L1 có câu L2 = { w ∈ Σ* | |w| ≤ } L4 = { w ∈ Σ* | na(w) = nb(w) } = {ε {ε, ab, ab, ba, aabb, abab, baab, } L4 g m cá câu có có s ch a đú b ng s ch b b L1 = {ε {ε, a, aa, aab } L3 = { w ∈ Σ* | |w| là m t s l } L3 g m cá câu có có đ dài l a aa Cho b ng ch Σ = { a, b }, có th xây d ng đ c m t s NNCQ Σ nh sau : 27/38 27/38 28/38 28/38 M t s ví d _ M t s tính ch t Cho b ng ch Σ, a ∈ Σ, w ∈ Σ* và L ⊆ Σ* V i quy Khi đó : Khi đó : ak = aa a L(α L(α) = L(β L(β) và ch α = β wk = ww w ghé ghép liên ti p k câu w Ngh a là : Σk = ΣΣ Σ = { w ∈ Σ* | |w| = k } Hai BTCQ b ng cù bi u di n m t NNCQ Lk = LL L Tr k ch a liên ti p c L(α L(α) là NNCQ đbdb BTCQ α ngôn ng g m cá câu là ghé ghép k câu tu ý c a L ng h p đ c bi t k = : ch ng minh r ng hai t p h p A và B cho là b ng a0 = w0 = ε A=B Σ0 = L0 = { ε } c n ch A⊂ A⊂B và B⊂A Chú Chú ý { ε } ≠ ∅ : Ngh a c n CM hai chi u “⊂” “⊃” { ε } có có m t câu là ε ∅ có câu nà ! 29/38 29/38 30/38 30/38 Ch ng minh w ∈ (a*b)*∪(b*a)* M t s ví d _ Ch ng minh r ng : Gi s w = w1w2 wn ∈ Σ* X y b n tr ng h p nh sau : L((a*b)* ∪ (b*a)*) = L((a ∪ b)*) = Σ* v i Σ = { a, b } Ngh a là BTCQ : (a*b)* ∪ (b*a)* và Σ* ch đ nh m t ngôn ng chí qui w = an, w ∈ ( εa )* ⊂ ( b*a )* ⊂ (a*b)*∪(b*a)* w = bn, w ∈ ( εb )* ⊂ ( a*b )* ⊂ (a*b)*∪(b*a)* T v sau đ đ n gi n, ta vi t w ∈ α thay vì w ∈ L(α L(α) w ch a a và b, k t thú thúc b i b Ta có có : w = a ab b b a ab ab b b a*b L i gi i là CM hai chi u “⊂” “⊃” : Do đó, w ∈ “⊂” : Rõ rà ràng (a*b)*∪ (a*b)*∪(b*a)* ⊂ Σ* vì Σ* là bao đóng “⊃” : ch ng minh u ng c l i, ta xé xét m t câu : w = w1w2 wn ∈ Σ* C n ch ng minh w ∈ (a*b)*∪ (a*b)*∪(b*a)* (a*b)* a*b (a*b)* (a*b)*∪(b*a)* w ch a a và b và k t thú thúc b i a T ng t tr ng h p 3, ta c ng có có : w ∈ L((a*b)*∪(b*a)*) 31/38 31/38 32/38 32/38 Có vô h n không đ m đ Các ngôn ng phi chí qui c ngôn ng Σ = { a, b } Nh n xé xét : Các BTCQ là vô h n đ m đ c Các BTCQ ch bi u di n t p vô h n đ m đ nh ng không bi u di n h t m i ngôn ng Các ngôn ng phi CQ c NNCQ, T n t i nh ng ngôn ng phi chí qui có đ BTCQ đ bi u di n m i ngôn ng T p cá NNCQ ℜ M i ngôn ng không th chinh qui : T p h p cá ngôn ng t p h p cá t p h p c a m t t p h p đ m đ c (t p h p cá câu) là không đ m đ c T p h p cá NNCQ là đ m đ c vì m i NNCQ đ c bi u di n b i m t BTCQ và t p h p cá BTCQ là đ m đ c S có nhi u ngôn ng khác v i NNCQ Σ* = { a, b }* CCó ó 22nn tt pp hh pp ó nn ph ccó cc aa m m tt tt pp hh pp AA có ph nn tt N ó vô ó vô ccó th N uu AA có vô hh nn đđ m m đđ cc ph ph nn tt thìì 22AA ccó vô hh nn không không đđ m m đđ cc ph ph nn tt 33/38 33/38 V n đ bi u di n ngôn ng 34/38 34/38 Ví d bi u di n ngôn ng M t ngôn ng b ng ch Σ t p h p c a Σ+ Ngôn ng có vô h n câu : Cho L⊆Σ L⊆Σ+, đ bi u di n h t m i câu w∈ w∈L ? L1 = { ⏐ i là m t s nguyên t }, hay = { a2, a3, a5, a7, …, a11, a13, … } Khi L có có h u h n câu, ch vi c li t kê cá câu Khi L có có vô h n câu, không th li t kê h t cá câu c a L, mà ph i tì tìm cá cách bi u di n h u h n : N u L g m cá câu có có m t s tính ch t nh t quán P nà đó, dùng tân t đ bi u di n tính ch t P đó L2 = { aibj ⏐ i ≥ j ≥ }, hay = { ε, a, ab, aab, aabb, … } ngôn ng g m cá câu có có m t dãy a r i đ n m t dãy b, L = { w∈Σ * | P(w) } w∈Σ* đó s a bên trá trái nhi u h n ho c b ng s b bên ph i N u L là NNCQ, s d ng BTCQ α ch đ nh L : L3 = (ab)* = { ε, ab, abab, ababab, … } ngôn ng g m cá câu có có c p ab tu ý (0 n c p) L = L(α L(α) L tu ý, không ph i là NNCQ : s d ng ôtômat và v n ph m - Ôtômat đoán nh n câu c a m t ngôn ng - v n ph m s n sinh câu cho m t ngôn ng 35/38 35/38 36/38 36/38 Ví d đoán nh n m t câu c a ngôn ng Ví d s n sinh câu c a ngôn ng Cho L là ngôn ng { a, a, b } đ c đ nh ngh a nh sau : ε ∈ L Có th thu g n w v câu r ng ε : w ⇒ ε N u w ∈ L thì awb ∈ L Thu g n b ng cá cách thay th d n cá xâu ab c a w b i ε L không câu nà khác n a (ngoà (ngoài và 2) Ví d : w = ab ∈ L vì Qui lu t s n sinh cá câu c a L nh sau : T (1), L = { ε } Coi ε w, t (2), ta có có câu awb = aε aεb = ab, L = { ε, ab } L i (2), ta có có L = { ε, ab, aabb, aaabbb, } : ab ⇒ ε w = aabbab ∈ L vì : aabbab ⇒ abab ⇒ ab ⇒ ε Coi a, b l n l t là c p d u ngo c đ n ( và ) : L g m cá c p d u ngo c đ n cân b ng không cà cài thu đ c t m t bi u th c toá toán h c nà đó C th , ta có có m i câu c a L có có d ng aibi ⏐ ∀i ≥ Có th bi u di n L d Gi s đ nh ngh a ngôn ng L g m cá câu w∈ w∈Σ∗ : Ví d , t bi u th c (3*(x − y)) / (x + 1), 1), th c hi n b h t cá ký hi u toá toán t toá toán h ng, ta nh n đ c câu ngo c đ n cân b ng (())(), (())(), là câu aabbab i d ng : L = { aibi ⏐ ∀i ≥ } 37/38 37/38 38/38 38/38 ... toán ôtômat NXB Khoa h c K thu t, Hà Hà n i 19 92 Internet: tì tìm ki m Google.com.vn, wikipedia 11 /38 11 /38 12 /38 12 /38 Vài dòng l ch s Cantor (18 45 -19 18) Lý thuy t t p h p Hilbert (18 62 -19 43)... m t câu b t k Σ w (1) = a, , w(4) = b, , w (11 ) = a Returning 17 /38 17 /38 18 /38 18 /38 Các phé phép toá toán khác xâu Khá Khái ni m ngôn ng M t ngôn ng hình th c (nó (nói g n ngôn ng ) : Cho cá... Turing (19 12 -19 54) Bi u th c chí qui (BTCQ) Các ngôn ng phi chí qui Alan Alan Turing Turing V n đ bi u di n ngôn ng Máy Turing McCulloch, Pitts M ng n -ron nhân t o Chomsky 13 /38 13 /38 14 /38 14 /38

Ngày đăng: 04/12/2015, 00:34

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan