Bài giảng Ngôn ngữ hình thức: Chương 4 Ôtômat đẩy xuống, cung cấp cho người học những kiến thức như: Ô tô mát đẩy xuống; Sự tương đương giữa các loại ô tô mát đẩy xuống; Mối quan hệ giữa ô tô mát đẩy xuống và văn phạm phi ngữ cảnh; Ngôn ngữ phi ngữ cảnh. Mời các bạn cùng tham khảo!
Chương 4 Ơtơmat đẩy xuống GV: Ngũn Thi Hơ ̣ ̀ng Email: nguyenhong@hnue.edu.vn Nội dung Ơ tơ mát đẩy xuống Sự tương đương giữa các loại ơ tơ mát đẩy xuống Mối quan hệ giữa ơ tơ mát đẩy xuống và văn phạm phi ngữ cảnh Ngơn ngữ phi ngữ cảnh Ơ tơ mát đẩy xuống (ODX) Mơ tả trực quan: Ơ tơ mát đẩy xuống Cấu tạo: Một băng vào chứa các kí hiệu của xâu vào Một đầu đọc duyệt băng từ trái qua phải Một bộ điều khiển các trạng thái hữu hạn Một stack có khả năng nhớ vơ hạn, lúc đầu là rỗng (lúc đầu stack chứa một kí hiệu đặc biệt để đánh dấu đáy stack) Hoạt động của Ơ tơ mát đẩy xuống Ban đầu, stack là rỗng Q trình thực hiện của ơ tơ mát đẩy xuống tương tự như ơ tơ mát hữu hạn khơng tiền định Mỗi bước thực hiện của Ơ tơ mát đẩy xuống căn cứ vào ba yếu tố: Kí hiệu ở đỉnh stack Trạng thái của ơ tơ mát Kí hiệu đọc được trên băng vào Hoạt động của Ơ tơ mát đẩy xuống Mỗi dịch chuyển gồm các hành động: Thay đổi nội dung stack (đỉnh stack) Thay đổi trạng thái Đầu đọc dịch sang phải một ơ Chú ý: tồn tại dịch chuyển nghĩa là kí hiệu trên băng khơng được tham khảo (đầu đọc khơng dịch chuyển sang phải) Sự đốn nhận của ODX Có hai cách thừa nhận xâu: Xâu vào được thừa nhận khi ơ tơ mát đọc hết xâu và đến một trạng thái thừa nhận Xâu vào được thừa nhận khi ơ tơ mát đọc hết xâu và lúc đó stack rỗng Ơ tơ mát đẩy xuống Định nghĩa IV.1 Ơ tơ mát đẩy xuống khơng tiền định là một bộ 7 thành phần: M (Σ, Q, Γ, δ, q0, Z0, F) Q : tập hữu hạn các trạng thái Σ : bộ chữ vào Γ : bộ chữ cái Stack, Q Γ= Ø δ : hàm chuyển Γ x Q x (Σ {ε}) → tập con của Q x Γ* q0 : trạng thái khởi đầu Z0 : ký hiệu bắt đầu trên Stack(đáy stack) F Q : tập các trạng thái kết thúc Ơ tơ mát đẩy xuống Ta gọi hình trạng của ơ tơ mát đẩy xuống là mọi xâu có dạng qw trong đó Γ*, q Q, w * Hình trạng có dạng Z0q0x được gọi là hình trạng ban đầu Hệ viết lại ngầm định trong M là W=(V, P): V=Q Γ P: ( ,p) δ(z,q,a) hay zqa p là một quy tắc trong P Ơ tơ mát đẩy xuống Ngơn ngữ được thừa nhận theo trạng thái cuối bởi ODX M là: L(M)={w *| Z0q0w=>*M p, Γ*, p F} Ngơn ngữ được thừa nhận theo stack rỗng bởi ODX M là: N(M)={w *| Z0q0w=>*M p, p Q} Sự tương đương giữa các ODX Định lý IV.4: Cho L=L(M) trong đó M là một ODX. Tồn tại một ODX M’ sao cho L=N(M’) ( Nghĩa là Nếu L được đốn nhận bởi ODX theo kiểu trạng thái cuối thì L cũng được đốn nhận bởi một ODX theo kiểu stack rỗng) Sự tương đương giữa các ODX Giả sử M=( , Q, , , q0, Z0, F) Xây dựng ơ tơ mát M’: Thêm hai trạng thái mới q ’ và q và một kí hiệu đáy stack e mới X0: M’=( , Q {q0’, qe}, {X0}, ’, q0’, X0, ) Hàm dịch chuyển ’ được xác định như sau: (1) ’(X0, q0’, ) = {(X0Z0, q0)} (2) ’(Z, q, a) = (Z, q, a) (với mọi q Q\F, a { }, Z ) (3) ’(Z, q, a) = (Z, q, a), ’(Z, q, ) = (Z, q, ) {( , qe)} (với mọi q F, a và Z ) (4) ’(X0, q, ) ={( , qe)} (với mọi q F) Sự tương đương giữa các ODX Ví dụ: Ngơn ngữ L={anbn|n≥0} được đốn nhận theo trạng thái cuối của ODX M: M=({a,b}, {q ,q ,q },{Z,a}, , q , Z, {q }) 0 Với : (Z,q ,a)={(Za,q )} nạp a và stack (a,q1,a)={(aa,q1)} nạp tiếp a vào stack (a,q1,b)={( ,q2)} xóa a khỏi stack (a,q2,b)={( ,q2)} tiếp tục xóa a khỏi stack (Z,q2, )={( ,q0)} về trạng thái thừa nhận M đốn nhận ngơn ngữ trên theo trạng thái cuối Xây dựng M’ cũng đốn nhận ngơn ngữ trên theo stack rỗng Sự tương đương giữa các ODX Xây dựng M’=({a,b}, {q0,q1,q2,q0’,qe},{Z,a,X}, ’, q0’, X, ) trong đó ’ gồm các sản xuất sau: Quy tắc (1): ’(X,q ’, )={XZ,q } 0 Quy tắc (2): ’(a,q ,a)={aa,q }, ’(a,q ,b)={( ,q )}, 1 ’(a,q2,b)={( ,q2)}, ’(Z,q2, )={( ,q0)} Quy tắc (3): ’(Z,q ,a)={(Za,q )}, ’(Z,q , )={( ,q )}, e ’(a,q0, )={( ,qe)} Quy tắc (4): ’(X,q , )={( ,q )} e Quy tắc (5): ’(Z,q , )={( ,q )}, ’(a,q , )={( ,q )}, e e e e ’(X,qe, )={( ,qe)} Một suy dẫn Sự tương đương giữa các ODX Với xâu đầu vào aabb, chuỗi suy dẫn như sau: Như vậy quá trình suy dẫn kết thúc khi đọc hết xâu, trạng thái là qe và stack rỗng => xâu aabb được ơ tơ mát thừa nhận theo hình thức stack rỗng Sự tương đương giữa các ODX Định lý IV.5: Cho L=N(M) trong đó M là một ODX. Tồn tại một ODX M’ sao cho L=L(M’) Chứng minh: Giả sử M=( , Q, , , q , Z , ) 0 Xây dựng ơ tơ mát M’: thêm hai trạng thái mới q0’ và qf , và một kí hiệu đáy stack mới X0: M’=( , Q {q0’, qf}, {X0}, ’, q0’, X0, {qf}) Sự tương đương giữa các ODX Hàm dịch chuyển ’ như sau: (1) ’(X0, q0’, ) = {(X0Z0, q0)} (2) ’(Z, q, a) = (Z, q, a) (với mọi q Q, a (3) ’(X0, q, ) = {( , qf)} (với mọi q Q) { }, Z ) Ví dụ: Cho ơ tơ mát đẩy xuống M đốn nhận theo stack rỗng: M=({+,a}, {q}, {E,+,a}, , q, E, ) trong đó gồm các dịch chuyển: (E, q, ) = {(a+E, q), (a,q)} (+, q, +) = {( ,q)} (a, q, a) = {( ,q)} Sự tương đương giữa các ODX Xây dựng ơ tơ mát M’ đốn nhận theo trạng thái cuối tương đương với M: M’=({+,a}, {q,q0,qf}, {E,+,a,X}, ’, q0, X, {qf}) trong đó hàm dịch chuyển ’ gồm các sản xuất sau: Quy tắc (1): ’(X, q0, ) = {(XE, q)} Quy tắc (2): ’(E, q, ) = {(a+E, q), (a,q)}, ’(+, q, +) = {( ,q)} ’(a, q, a) = {( ,q)} Quy tắc (3): ’(X, q, ) = {( , q )} f Sự tương đương giữa các ODX Với xâu đầu vào a+a, chuỗi suy dẫn như sau: Như vậy chuỗi suy dẫn có một nhánh đọc hết xâu và trạng thái là qf là trạng thái thừa nhận => xâu được thừa nhận theo trạng thái cuối. Sự tương đương giữa ODX và văn phạm phi ngữ cảnh Định lý IV.6: Nếu L là một ngơn ngữ phi ngữ cảnh, thì tồn tại một ơ tơ mát đẩy xuống M mà L=N(M) Xây dựng ODX: M=( ,{q}, , ,q, S, ) trong đó hàm được xác định: Nếu đỉnh stack là một kí hiệu khơng kết thúc A (1) với mọi A : (A,q, )={( R,q)|A P} Nếu đỉnh stack là một kí hiệu kết thúc a (2) với mọi a : (a,q,a)={( ,q)} Ví dụ Cho văn phạm phi ngữ cảnh G: SaAA AaS|bS|a Xây dựng ODX: M=({a,b},{q},{S,A,a,b}, ,q, S, ) Hàm dịch chuyển : (S,q, )={AAa,q} (A,q, )={(Sa,q),(Sb,q),(a,q)} (a,q,a)={ ,q} (b,q,b)={ ,q} Sự tương đương giữa ODX và văn phạm phi ngữ cảnh Định lý IV.7: Cho L=N(M) với M là một ơ tơ mát đẩy xuống, thì L là ngơn ngữ phi ngữ cảnh Xây dựng Văn phạm PNC G=( , , P, S) M=( , Q, Γ, , q , Z , ) là ODX thừa nhận L theo stack 0 rỗng Đặt E={[Z,p,q]|Z Γ và p,q Q} =E {S} Sự tương đương giữa ODX và văn phạm phi ngữ cảnh Tập các quy tắc P được thiết lập như sau: (1) với mọi q Q, S[Z0,q0,q] là một quy tắc (2) nếu (Xk…X2X1,p) (Z,q,a) trong đó k≥1 và X1,X2, …,Xk Γ thì với mọi s1,s2,…,sk Q [Z,q,sk]a[X1,p,s1][X2,s1,s2]…[Xk,sk1,sk] là mơt quy tắc (3)Nếu ( ,r) (Z,q,a) thì [Z,q,r]a là một quy tắc Ngơn ngữ phi ngữ cảnh Ngơn ngữ phi ngữ cảnh được xác định bởi văn phạm phi ngữ cảnh và ơ tơ mát đẩy xuống Các tính chất đóng của ngơn ngữ phi ngữ cảnh: Định lý IV.8: Cho L và L là các ngơn ngữ phi ngữ cảnh. Thế thì L1 L2, L1.L2 và L1* đều là các ngơn ngữ phi ngữ cảnh Định lý IV.9: Lớp các ngơn ngữ phi ngữ cảnh là khơng đóng đối với phép giao và phép lấy bổ sung Định lý IV.10: Nếu ngơn ngữ R là chính quy, ngơn ngữ L là phi ngữ cảnh thì ngơn ngữ R L là phi ngữ cảnh Các bài tốn quyết định trên ngơn ngữ phi ngữ cảnh Bài tốn ngơn ngữ rỗng: Phải chăng L= Bài tốn xâu rỗng: Phải chăng L Bài tốn về tính hữu hạn: Cho ngơn ngữ phi ngữ cảnh L. Vấn đề là xác định xem L là hữu hạn hay vơ hạn Bài tốn thành viên: Cho ngơn ngữ phi ngữ cảnh G và một xâu w. Xác định phải chăng w G ... Định lý IV.10: Nếu ngơn? ?ngữ? ?R là chính quy, ngơn? ?ngữ? ?L là phi? ?ngữ? ?cảnh thì ngơn? ?ngữ? ?R L là phi? ?ngữ? ?cảnh Các? ?bài? ?tốn quyết định trên ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh Bài? ?tốn ngơn? ?ngữ? ?rỗng: Phải chăng L= Bài? ?tốn xâu rỗng: Phải chăng ... (Z,q,a) thì [Z,q,r]a là một quy tắc Ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh Ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh được xác định bởi văn phạm phi? ?ngữ? ? cảnh và ơ tơ mát đẩy xuống Các tính chất đóng của ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh: Định lý IV.8: Cho L... Định lý IV.8: Cho L và L là các ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh. Thế thì L1 L2, L1.L2 và L1* đều là các ngơn? ?ngữ? ?phi? ?ngữ? ? cảnh Định lý IV.9: Lớp các ngơn? ?ngữ? ?phi? ?ngữ? ?cảnh là khơng đóng đối với phép giao và phép lấy bổ sung