Trang 224 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Chng 7 Ôtômát đy xung ̈ Có hay không lp ôtômát tng ng vi lp NNPNC? ̈ Nh đã bit, ôtômát hu hn không th nhn bit tt c NNPNC, chng hn L = {a n b n : n ≥ 0}, vì nó có mt b nh hu hn. Vì vy chúng ta mun có mt máy mà đm không gii hn . ̈ T ví d ngôn ng {ww R }, chúng ta cn thêm kh nng lu và so trùng mt dãy kí hiu trong th t ngc li. ̈ iu này đ ngh chúng ta th mt stack nh mt c ch lu tr. óchính là lp ôtômát đy xung (P ushDown A utomata - PDA) Trang 225 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Chng 7 Ôtômát đy xung 7.1 PDA không đn đnh 7.2 NPDA và NNPNC 7.3 PDA đn đnh và NNPNC đn đnh 7.4 Vn phm cho NNPNC đn đnh Trang 226 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Ôtômat đy xung không đn đnh ̈ Mi di chuyn ca đn v điu khin đc mt kí hiu nhp, trong cùng thi đim đó thay đi ni dung ca stack. ̈ Mi di chuyn đc xác đnh bng kí hiu nhp hin ti, kí hiu hin ti trên đnh ca stack . Kt qu là mt trng thái mi ca đn v điu khin và mt s thay đi trên đnh ca stack. ̈ Chúng ta s ch nghiên cu các PDA thuc loi accepter. Control unit Stack Input file Trang 227 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin nh ngha ôtômát đy xung ̈ nh ngha 7.1 Mt accepter đy xung không đn đnh (npda) đc đnh ngha bng b by M = (Q, Σ, Γ, δ, q 0 , z, F), trong đó ̈ Q là tp hu hn các trng thái ni ca đn v điu khin, ̈ Σ là bng ch cái ngõ nhp (input alphabet), ̈ Γ là bng ch cái stack (stack alphabet), ̈ q 0 ∈ Q là trng thái khi đu ca đn v điu khin, ̈ z ∈Γlà kí hiu khi đu stack (stack start symbol), ̈ F ⊆ Q là tp các trng thái kt thúc. ̈ Hàm chuyn trng thái δ là mt ánh x δ : Q × (Σ∪{λ}) ×Γ→tp con hu hn ca Q ×Γ*, Trang 228 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Ví d ̈ δ(q, a, b) = {(p, cd)} ̈ Ví d ̈ Xét mt npda vi ̈ Q = {q 0 , q 1 , q 2 , q f }, ̈ Σ = {a, b}, ̈ Γ = {0, 1, z}, ̈ F = {q f }, Stack a b c d Input file Control unit qp Trang 229 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Nhn xét ̈ δ (q 0 , a, z) = {(q 1 ,1z), (q f , λ)}, δ (q 0 , λ, z) = {(q f , λ)}, ̈ δ (q 1 , a, 1) = {(q 1 , 11)}, δ (q 1 , b, 1) = {(q 2 , λ)}, ̈ δ (q 2 , b, 1) = {(q 2 , λ)}, δ (q 2 , λ, z) = {(q f , λ)}. ̈ δ (q 0 , b, 0) không đc đnh ngha tng đng vi cu hình cht mà ta đã hc. ̈ δ (q 1 , a, 1) = {(q 1 , 11)} thêm mt kí hiu 1 vào stack khi a đc đc. ̈ δ (q 2 , b, 1) = {(q 2 , λ)} xóa mt kí hiu 1 khi stack khi b đc đc. ̈ L(M) = {a n b n : n ≥ 0} ∪ {a} Trang 230 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Mt s khái nim ̈ Hình trng tc thi ̈ Là b ba (q, w, u), trong đó q là trng thái ca đn v điu khin, w là phn cha đc ca chui nhp, còn u là ni dung ca stack (vi kí hiu trái nht là kí hiu đnh ca stack). ̈ Di chuyn, ̈ Mt di chuyn t mt hình trng tc thi này đn mt hình trng tc thi khác s đc kí hiu bng . ̈ (q 1 , aw, bx)(q 2 , w, yx) là có kh nng ⇔ (q 2 , y) ∈δ(q 1 , a, b). ̈ , , ̈ Du * ch ra có ≥ 0 bc di chuyn đc thc hin còn du + ch ra ≥ 1 bc di chuyn. Ch M ch ra di chuyn ca ôtômát nào. _ | _ | _ | * _ | + _ | M _ | Trang 231 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Ngôn ng đc chp nhn bi mt npda ̈ nh ngha 7.2 ̈ Cho M = (Q, Σ, Γ, δ, q 0 , z, F)làmt npda. Ngôn ng đc chp nhn bi M là tp L(M) = {w ∈Σ*: (q 0 , w, z)(q f , λ, u), q f ∈ F, u ∈Γ*}. ̈ Ví d ̈ Xây dng mt npda cho ngôn ng L = {w ∈ {a, b}*: n a (w) = n b (w)} * _ | Trang 232 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Ví d ̈ Xây dng npda cho ngôn ng này nh sau. ̈ M = ({q 0 , q f }, {a, b}, {0, 1, z}, δ, q 0 , z, {q f }). δ(q 0 , λ, z) = {(q f , z)}, δ(q 0 , a, z) = {(q 0 , 0z)}, δ(q 0 , b, z) = {(q 0 , 1z)}, δ(q 0 , a, 0) = {(q 0 , 00)}, δ(q 0 , b, 0) = {(q 0 , λ)}, δ(q 0 , a, 1) = {(q 0 , λ)}, δ(q 0 , b, 1) = {(q 0 , 11)}, ̈ Trong qúa trình x lý chui baab, npda thc hin các di chuyn sau. ̈ (q 0 , baab, z) (q 0 , aab, 1z) (q 0 , ab, z) (q 0 , b, 0z) (q 0 , λ, z) (q f , λ, z) _ | _ | _ | _ | _ | Trang 233 Lý thuyt Ôtômát & NNHT - Khoa Công Ngh Thông Tin Ví d (tt) ̈ Xây dng npda cho ngôn ng L = {ww R : w ∈ {a, b} + } ̈ M = ({q 0 , q 1 , q f }, {a, b}, {a, b, z}, δ, q 0 , z, {q f }). δ(q 0 , a, z) = {(q 0 , az)}, δ(q 0 , b, z) = {(q 0 , bz)}, δ(q 0 , a, a) = {(q 0 , aa)}, δ(q 0 , b, a) = {(q 0 , ba)}, δ(q 0 , a, b) = {(q 0 , ab)}, δ(q 0 , b, b) = {(q 0 , bb)}. δ(q 0 , λ, a) = {(q 1 , a)}, δ(q 0 , λ, b) = {(q 1 , b)}, δ(q 1 , a, a) = {(q 1 , λ)}, δ(q 1 , b, b) = {(q 1 , λ)}, δ(q 1 , λ, z) = {(q f , z)}.