Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 61 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
61
Dung lượng
296,51 KB
Nội dung
Header Page of 161 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN Phạm Thị Thu Hà VỀOTOMATĐẨYXUỐNGVÀNGÔN NGHỮ PHINGỮCẢNH KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Hà Nội – Năm 2016 Footer Page of 161 Header Page of 161 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN Phạm Thị Thu Hà VỀOTOMATĐẨYXUỐNGVÀNGÔNNGỮPHINGỮCẢNH Chuyên ngành: Toán học ứng dụng KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Kiều Văn Hưng Hà Nội – Năm 2016 Footer Page of 161 Header Page of 161 Lời cảm ơn Em xin bày tỏ lòng biết ơn chân thành tới TS Kiều Văn Hưng, người thầy truyền thụ kiến thức, tận tình giúp đỡ, hướng dẫn em suốt trình học tập, nghiên cứu hoàn thành khóa luận Em xin gửi lời cảm ơn tới thầy cô giáo trường Đại học Sư phạm Hà Nội 2, thầy cô giáo khoa Toán giúp đỡ em trình học tập trường tạo điều kiện cho em hoàn thành đề tài khóa luận tốt nghiệp Trong trình nghiên cứu, không tránh khỏi thiếu sót hạn chế Em kính mong nhận đóng góp ý kiến thầy giáo, cô giáo toàn thể bạn đọc để khóa luận hoàn thiện Hà Nội, ngày tháng 05 năm 2016 Sinh viên Phạm Thị Thu Hà Footer Page of 161 Header Page of 161 Lời cam đoan Em xin cam đoan hướng dẫn thầy giáo Kiều Văn Hưng khóa luận em hoàn thành không trùng với đề tài khác Em xin cam đoan giúp đỡ cho việc thực khóa luận cảm ơn thông tin thu trích dẫn khóa luận rõ nguồn gốc Hà Nội, tháng năm 2016 Sinh viên Phạm Thị Thu Hà Footer Page of 161 ii Header Page of 161 Mục lục Lời mở đầu ii Danh mục kí hiệu chữ viết tắt iv Văn phạm phingữcảnh 1.1 1.1.1 Định nghĩa 1.1.2 Ngônngữ sinh văn phạm phingữcảnh 1.1.3 Cây suy dẫn đầy đủ văn phạm phingữcảnh 1.1.4 Quan hệ dẫn xuất suy dẫn 1.1.5 Văn phạm phingữcảnh đa nghĩa 1.1.6 Rút gọn văn phạm phingữcảnh Chuẩn hóa văn phạm phingữcảnh 12 1.2.1 Dạng chuẩn Chomsky 13 1.2.2 Dạng chuẩn Greibach 16 1.3 Bổ đề Bơm cho ngônngữphicảnh 20 1.4 Bài tập 24 1.2 Văn phạm phingữcảnhOtomatđẩyxuống 2.1 32 Mô tả otomatđẩyxuống Footer Page of 161 i 33 Header Page of 161 2.2 Otomatđẩyxuống không đơn định 35 2.2.1 Định nghĩa 35 2.2.2 Hàm chuyển 36 2.2.3 Hình trạng 37 2.2.4 Ngônngữ đoán nhận otomatđẩyxuống không đơn định 2.2.5 Otomatđẩyxuống không đơn định ngônngữphingữcảnh 2.3 2.4 38 40 Otomatđẩyxuống đơn định ngônngữphingữcảnh đơn định 44 Bài tập 44 Kết luận 51 Tài liệu tham khảo 51 Footer Page of 161 ii Header Page of 161 Lời mở đầu Những năm gần đây, người đạt nhiều thành tựu khoa học rực rỡ, thành tựu bùng nổ ngành khoa học máy tính Sự phát triển kì diệu máy tính gắn liền với phát triển toán học đại, Toán rời rạc Toán học rời rạc nghiên cứu cấu trúc có tính chất rời rạc không liên tục Toán rời rạc bao gồm lĩnh vực quan hệ, lý thuyết đồ thị, ngônngữ hình thức otomat Lý thuyết ngônngữ hình thức lý thuyết tảng cho việc thấu hiểu khái niệm ngônngữ nói chung (cả ngônngữ lập trình lẫn ngônngữ tự nhiên), vấn đề ngônngữ cách xây dựng văn phạm sinh ngônngữ (xây dựng văn phạm cho ngônngữ lập trình, cho trình phân tích cú pháp), dịch từ ngônngữ lập trình cấp cao sang ngônngữ máy Lý thuyết otomat lý thuyết cho việc nghiên cứu mô hình tự động để làm tiền đề cho phát triển đến dạng máy tính số Ngônngữphingữcảnh chủ đề quan trọng lý thuyết ngônngữ hình thức, áp dụng cho ngônngữ lập trình Mục đích khóa luận nhằm tìm hiểu rõ ngônngữphingữcảnh với chế để sinh lớp ngônngữ này, văn phạm phingữcảnhotomat có nhớ đẩyxuống Khóa luận chia thành hai chương: Chương trình bày văn phạm phingữcảnhngônngữphingữcảnh Chương trình bày khái niệm otomatđẩyxuống liên kết otomatđẩyxuốngngônngữphingữcảnh Footer Page of 161 iii Header Page of 161 Hà Nội, ngày 04/05/2016 Tác giả khóa luận Phạm Thị Thu Hà Footer Page of 161 iv Header Page of 161 Danh mục kí hiệu chữ viết tắt ∅ tập rỗng x∈M x thuộc tập M x∈ /M x không thuộc tập M ∀ x ∈ M với x thuộc tập M ∃x tồn x M ∩N giao hai tập hợp M N M ∪N hợp hai tập hợp M N Σ∗ tập từ bảng chữ Σ Footer Page of 161 v Header Page 10 of 161 Chương Văn phạm phingữcảnh 1.1 Văn phạm phingữcảnh 1.1.1 Định nghĩa Văn phạm phingữcảnh thứ tự gồm thành phần: G = , đó: + Σ bảng chữ cái, gọi bảng chữ (hay bảng chữ kết thúc), phần tử gọi ký hiệu kết thúc hay ký hiệu + ∆ bảng chữ cái, ∆ ∩ Σ = ∅, gọi bảng ký hiệu phụ (hay bảng chữ không kết thúc), phần tử gọi ký hiệu không kết thúc hay ký hiệu phụ + S ∈ ∆ gọi ký hiệu xuất phát hay tiên đề + P tập hợp quy tắc sinh có dạng A → ω, A ∈ ∆, ω ∈(Σ ∪ ∆) Như vậy, quy tắc văn phạm phingữcảnh có vế trái chứa ký hiệu phụ vế phải tùy ý, gọi quy tắc phingữ Footer Page 10 of 161 Khóa luận tốt nghiệp Đại học Header Page 47 of 161 Phạm Thị Thu Hà sang hình trạng khác theo nguyên tắc sau: 1/ Nếu ∈ δ(q, a1 , xm ) hình trạng chuyển sang hình trạng ký hiệu: ⊢ 2/ Nếu ∈ δ(q, ε, xm ) hình trạng chuyển sang hình trạng ký hiệu: ⊢ Như vậy, thời điểm, tình trạng otomatđẩyxuống xác định ba yếu tố sau: - Xâu γ ∈ ∆∗ ngăn xếp (với quy ước ký hiệu bên trái γ nằm đáy xếp) - Trạng thái q ∈ Q - Phần xâu vào x ∈ Σ∗ chưa đọc đến băng vào (với quy ước ký hiệu bên trái x ký hiệu đọc tiếp) 2.2.4 Ngônngữ đoán nhận otomatđẩyxuống không đơn định Định nghĩa 2.4 Cho otomatđẩyxuống M = ω ∈ Σ∗ Ta nói otomat M đoán nhận từ ω theo tập trạng thái kết thúc tồn dãy hữu hạn hình trạng K0 , K1 , , Kn cho: 1/ K0 =< q0 , ω, z0 >, gọi hình trạng đầu 2/ Kn =< p, ε, γ >, p ∈ F , gọi hình trạng kết thúc 3/ K0 ⊢ K1 ⊢ K2 ⊢ ⊢ Kn Footer Page 47 of 161 38 Khóa luận tốt nghiệp Đại học Header Page 48 of 161 Phạm Thị Thu Hà Ký hiệu T(M) = {ω ∈ Σ∗ | ω đoán nhận M theo tập trạng thái kết thúc} T(M) gọi ngônngữ đoán nhận otomatđẩyxuống M theo tập trạng thái kết thúc Định nghĩa 2.5 Cho otomatđẩyxuống M = ω ∈ Σ∗ Ta nói otomat M đoán nhận từ ω theo ngăn xếp rỗng tồn dãy hữu hạn hình trạng K0 , K1 , , Kn cho: 1/ K0 =< q0 , ω, z0 >, gọi hình trạng đầu 2/ Kn =< p, ε, ε >, p tùy ý thuộc Q, gọi hình trạng kết thúc 3/ K0 ⊢ K1 ⊢ K2 ⊢ ⊢ Kn Ký hiệu N(M) = {ω ∈ Σ∗ | ω đoán nhận M theo ngăn xếp rỗng} N(M) gọi ngônngữ đoán nhận otomatđẩyxuống M theo ngăn xếp rỗng Định lý 2.1 Cho otomatđẩyxuống M Khi tồn otomatđẩyxuống M’ cho N(M’) = T(M) Chứng minh Giả sử M = otomatđẩyxuống Ta xây dựng otomatđẩyxuống M’ = cho N(M’) = T(M) Muốn ta đưa thêm vào ký hiệu trạng thái q1 , q2 ∈ / Q ký hiệu ngăn xếp % ∈ / Γ đặt Σ′ = Σ, Q′ = Q ∪ {q1 , q2 }, Γ′ = Γ ∪ {%}, q0′ = q1 , z0′ = %, F ′ = ∅, δ ′ : Q′ × (Σ ∪ {ε}) × Γ′ → P (Q′ × Γ′∗ ) định nghĩa sau: 1/ δ ′ (q1 , ε, %) = {} 2/ δ ′ (q, x, z) = δ(q, x, z) với x ∈ Σ, q ∈ Q, z ∈ Γ 3/ δ ′ (q, ε, z) = δ(q, ε, z) q ∈ Q\F , z ∈ Γ δ ′ (q1 , ε, z) = δ(q, ε, z) ∪ {< q2 , ε >} q ∈ F , z ∈ Γ 4/ δ ′ (q, ε, %) = {} với q ∈ F Footer Page 48 of 161 39 Khóa luận tốt nghiệp Đại học Header Page 49 of 161 Phạm Thị Thu Hà 5/ δ ′ (q2 , ε, z) = {} với z ∈ Γ ∪ {%} Bây ta N(M’) = T(M) Giả sử w ∈ N (M ′ ) Khi theo cách làm việc M’ ta có dãy hình trạng sau: < q0′ , w, z0′ > = < q1 , w, % >⊢ K1 ⊢ K2 ⊢ ⊢ Kt = q, ε, ε, với t ≥ 2, Ki =< qi , wi , zi >, wi ∈ Σ∗ , qi ∈ Q′ , zi ∈ Γ′∗ (i = 1, 2, , t) Theo cách xây dựng M’ K1 =< q0 , w, %z0 >, Kt =< q2 , ε, ε > w ∈ N (M ′ ) Từ ∃i < t ′ ′ cho Ki =< qi , ε, %zi′ >⊢< q2 , ε, %zi+1 >, qi ∈ F, zi′ , zi+1 ∈ Γ∗ ′ Kj =< qj , wj , %zj′ >⊢< qj+1 , wj+1 , %zj+1 >, wj ∈ Σ∗ , qj ∈ Q, zj′ ∈ Γ∗ , (1 ≤ j ≤ i) Cũng Kj =< q2 , ε, %zj′ >, zj′ ∈ Γ∗ , (1 ≤ j ≤ t) Từ < q0 , w, z0 >⊢< qi , ε, %zi > qi ∈ F suy w ∈ T (M ) Tóm lại ta có bao hàm thức N (M ′ ) ⊂ T (M ) Bao hàm thức ngược lại T (M ) ⊂ N (M ′ ) suy diễn trực tiếp từ cách xây dựng M’ từ M Vậy tồn otomatđẩyxuống M’ cho N(M’) = T(M) 2.2.5 Otomatđẩyxuống không đơn định ngônngữphingữcảnh Định lý 2.2 Cho L ngônngữphingữcảnh Khi tồn otomatđẩyxuống M đoán nhận L theo tập trạng thái kết thúc Chứng minh Giả sử G = văn phạm phingữcảnh sinh ngônngữ L Ta xây dựng otomatđẩyxuống M = đoán nhận L với: + Q = {q0, , q1 , q2 } tập trạng thái, Footer Page 49 of 161 40 Khóa luận tốt nghiệp Đại học Header Page 50 of 161 Phạm Thị Thu Hà + Γ = Σ ∪ ∆ ∪ {%} tập ký hiệu ngăn xếp, ký hiệu % không thuộc Σ ∪ ∆, + z0 = S ký hiệu đầu ngăn xếp, + q0 ∈ Q trạng thái đầu, + F = {q2 } tập trạng thái kết thúc, + Hàm chuyển δ: Q × (Σ ∪ {ε}) × Γ → P (Q × Γ∗ ) định nghĩa qua biểu thức sau: 1/ δ(q1 , ε, z) = {|z → α ∈ P , z ∈ ∆, α ∈ Γ∗ } 2/ δ(q1 , a, a) = {}, với a ∈ Σ 3/ δ(q1 , ε, %) = {} 4/ δ(q0 , ε, S) = {} Ta chứng minh L(G) = T(M) Giả sử ω ∈ L(G), tồn dãy suy dẫn đầy đủ G là: D = (S, u1 z1 v1 , u2 z2 v2 , , u1 un−1 zn−1 vn−1 , u1 u2 un = ω), zi ∈ ∆, ui ∈ Σ, vi ∈ Σ ∪ ∆ (1 ≤ i ≤ n − 1) un ∈ Σ∗ Dựa vào quy tắc G sử dụng dãy suy dẫn đầy đủ D xâu ω, otomatđẩyxuống M đoán nhận ω theo nguyên tắc sau: Áp dụng hàm chuyển xây dựng trên, biểu thức 4, 1, ta có ⊢ < q1 , ω, %S > ⊢ < q1 , u1 u2 un , %v1R z1 uR > ⊢ < q1 , u2 u3 un , %v1R z1 > Giả sử quy tắc (sau quy tắc S → u1 z1 v1 ) D zi → xi ∈ P (i=1, 2, , n-2) với zi ∈ ∆, xi ∈ Σ ∪ ∆ cho xi vi = ui+1 zi+1 vi+1 Khi M sau thời điểm thực quy tắc S → u1 z1 v1 có hình trạng Hình trạng M áp dụng quy tắc zi → xi biến đổi sau ⊢ = Footer Page 50 of 161 41 Khóa luận tốt nghiệp Đại học Header Page 51 of 161 Phạm Thị Thu Hà R ⊢ ⊢ ⊢ R Trong D, sử dụng quy tắc zn−1 → xn−1 ∈ P với xn−1 vn−1 = un , ta có: R R ⊢ ⊢ ⊢ Từ ta có dãy suy dẫn hình trạng M: ⊢ mà q2 ∈ F nên M đoán nhận xâu ω theo tập trạng thái kết thúc Ví dụ 2.3 Cho văn phạm phingữcảnh G = Theo chứng minh định lý 2.2, ta xây dựng otomatđẩyxuống đoán nhận L(G) sau: M = , δ xác định sau: δ(q1 , ε, S) = {< q1 , a >, < q1 , Asb >, < q1 , Ab>} δ(q1 , ε, A) = {< q1 , b >, < q1 , Sa >} δ(q1 , a, a) = {< q1 , ε >} δ(q1 , b, b) = {< q1 , ε>} δ(q1 , ε, %) = {< q2 , %>} δ(q0 , ε, S) = {< q1 , %S>} Định lý 2.3 Cho M otomatđẩyxuống Khi tồn văn phạm phingữcảnh G cho L(G) = N(M) Chứng minh Giả sử M = otomatđẩyxuống theo định lý 2.1, ta cần có văn phạm phingữcảnh G = Footer Page 51 of 161 42 Khóa luận tốt nghiệp Đại học Header Page 52 of 161 Phạm Thị Thu Hà cho L(G) = N(M) Không tính tổng quát, giả sử ε∈ / N (M ) Ta xây dựng văn phạm G sau: + ∆ = {S} ∪ {[q1 , z, q2 ] | q1 , q2 ∈ Q, z ∈ Γ ∪ Σ}, + P = P1 ∪ P2 ∪ P3 Ở P1 = {S → [q0 , z, q]|q ∈ Q, z ∈ Γ}, P2 = {[t1 , z, t2 ] → x[t3 , zn , qn−1 ][qn−1 , zn−1 , qn−2 ] [q2 , z2 , q1 ][q1 , z1 , t2 ] | n ≥ 1, qi ∈ Q, (1 ≤ i ≤ n), t1 , t2 , t3 ∈ Q, x ∈ Σ ∪ {ε}, < t3 , z1 z2 zn >∈ δ(t1 , x, z)}, P3 = {[t1 , z, t2 ] → x| < t2 , ε >∈ δ(t1 , x, z) với z ∈ Γ, t1 , t2 ∈ Q, x ∈ Σ ∪ {ε}} G định nghĩa văn phạm phingữcảnh mà L(G) = N(M) Nếu ta gọi P1 , P2 , P3 lớp ngônngữphingữ cảnh, lớp ngônngữ đoán nhận otomatđẩyxuống theo tập trạng thái kết thúc, lớp ngônngữ đoán nhận otomatđẩyxuống theo ngăn xếp rỗng, ta có: •P1 ⊂ P2 (theo định lý 2.2) •P2 ⊂ P3 (theo định lý 2.1) •P3 ⊂ P1 (theo định lý 2.3) Vì vậy, P1 = P2 = P3 tức lớp ngônngữphicảnh trùng với lớp ngônngữ đoán nhận otomatđẩyxuống theo tập trạng thái kết thúc hay theo ngăn xếp rỗng Footer Page 52 of 161 43 Khóa luận tốt nghiệp Đại học Header Page 53 of 161 2.3 Phạm Thị Thu Hà Otomatđẩyxuống đơn định ngônngữphingữcảnh đơn định Định nghĩa 2.2 Một otomatđẩyxuống M = gọi đơn định otomat định nghĩa định nghĩa 2.1, phải có giới hạn rằng, với q ∈ Q, a ∈ Σ ∪ {ε} b ∈ ∆ 1) δ(q, a, b) chứa phần tử 2) Nếu δ(q, ε, b) không rỗng, δ(q, c, b) phải rỗng, với c ∈ Σ Định nghĩa 2.3 Mọi ngônngữ L gọi ngônngữphingữcảnh đơn định tồn otomatđẩyxuống đơn định M cho L = L(M) Ví dụ 2.4 Ngônngữ L = {an bn : n ≥ 0} ngônngữphingữcảnh đơn định Một otomatđẩyxuống M = với hàm chuyển sau: 1.δ(q0 , a, o) = {< q1 , 10 >} 2.δ(q1 , a, 1) = {< q1 , 11 >} 3.δ(q1 , b, 1) = {< q2 , ε >} 4.δ(q2 , b, 1) = {< q2 , ε >} 5.δ(q2 , ε, 0) = {< q0 , ε >} chấp nhận ngônngữ cho Nó thỏa mãn định nghĩa 2.3 đơn định 2.4 Bài tập Footer Page 53 of 161 44 Khóa luận tốt nghiệp Đại học Header Page 54 of 161 Phạm Thị Thu Hà Bài tập 2.1 Xây dựng otomatđẩyxuống tương đương với văn phạm phingữcảnh G = tương đương với G + Q = {q} tập trạng thái + Γ = {S, A, B} tập ký hiệu ngăn xếp + z0 = S ký hiệu đầu ngăn xếp + q ∈ Q trạng thái đầu + F = ∅ tập trạng thái kết thúc + Hàm chuyển δ: Q × (Σ ∪ {ε}) × Γ → P (Q × Γ∗ ) định nghĩa qua biểu thức sau: 1/ δ(q, 0, S) = {, } 2/ δ(q, 1, S) = {, } 3/ δ(q, 0, A) = {, } 4/ δ(q, 1, B) = {, } Bài tập 2.2 Xây dựng otomatđẩyxuống đoán nhận theo ngăn xếp rỗng ngôn ngữ: a, {an bm cn | m, n ≥ 1} b, {an b2n | n ≥ 1} c, {an bn+1 | n ≥ 1} Lời giải Footer Page 54 of 161 45 Khóa luận tốt nghiệp Đại học Header Page 55 of 161 Phạm Thị Thu Hà a, Otomat đoán nhận {an bm cn | m, n ≥ 1} định nghĩa sau: A = δ xác định sau: 1/ δ(q0 , a, Z0 ) = {} 2/ δ(q0 , a, a) = {} 3/ δ(q0 , b, a) = {} 4/ δ(q1 , b, a) = {} 5/ δ(q1 , a, a) = {} 6/ δ(q1 , ε, Z0 ) = {} Bắt đầu từ việc xếp ký hiệu a vào ngăn xếp gặp b (1/, 2/) Khi b xuất hiện, otomat thay đổi trạng thái không thay đổi ngăn xếp (3/) Khi ký hiệu b đọc hết (4/) xóa ký hiệu a(5/) Vậy (q0 , an bm cn , Z0 ) ⊢ (q1 , ε, Z0 ) ⊢ (q1 , ε, ε) nghĩa an bm cn ∈ N(A) Chiều ngược lại suy từ tính chất quy tắc từ 1-6 b, Otomat đoán nhận {an b2n | n ≥ 1} định nghĩa sau: B = δ xác định sau: 1/ δ(q0 , a, Z0 ) = {} 2/ δ(q1 , a, a) = {} 3/ δ(q1 , b, a) = {} 4/ δ(q2 , b, a) = {} 5/ δ(q1 , ε, Z0 ) = {} Vậy (q0 , an b2n , Z0 ) ⊢ (q1 , ε, Z0 ) ⊢ (q1 , ε, ε) nghĩa an b2n ∈ N(A) Chiều ngược lại suy từ tính chất quy tắc từ 1-5 Footer Page 55 of 161 46 Khóa luận tốt nghiệp Đại học Header Page 56 of 161 Phạm Thị Thu Hà c, Otomat đoán nhận {an bn+1 | n ≥ 1} định nghĩa sau: C = δ xác định sau: 1/ δ(q0 , a, Z) = {} 2/ δ(q0 , a, a) = {} 3/ δ(q0 , ε, a) = {} 4/ δ(q1 , b, a) = {} 5/ δ(q1 , b, Z) = {} 6/ δ(q1 , ε, Z) = {} Vậy (q0 , an bn+1 , Z) ⊢ (q1 , ε, Z) ⊢ (q2 , ε, ε) nghĩa an bn+1 ∈ N(A) Chiều ngược lại suy từ tính chất quy tắc từ 1-6 Bài tập 2.3 Xây dựng văn phạm phingữcảnh G để sinh N(M), M = δ xác định sau: 1/ δ(q0 , a, Z0 ) = {} 2/ δ(q0 , ε, Z0 ) = {} 3/ δ(q0 , b, Z) = {} 4/ δ(q0 , a, Z) = {} 5/ δ(q1 , b, Z) = {} 6/ δ(q1 , a, Z0 ) = {} Lời giải Xây dựng G = ∆ = {[q0 , Z0 , q0 ], [q0 , Z0 , q1 ], [q0 , Z, q0 ], [q0 , Z, q1 ], [q1 , Z0 , q0 ], [q1 , Z0 , q1 ], [q1 , Z, q0 ], [q1 , Z, q1 ]} P bao gồm quy tắc: P1 : S → [q0 , Z0 , q0 ], P2 : S → [q0 , Z0 , q1 ] Vì δ(q0 , b, Z) = {< q0 , ZZ >} nên Footer Page 56 of 161 47 Khóa luận tốt nghiệp Đại học Header Page 57 of 161 Phạm Thị Thu Hà P3 : [q0 , Z0 , q0 ] → b[q0 , Z, q0 ][q0 , Z0 , q0 ] P4 : [q0 , Z0 , q0 ] → b[q0 , Z, q1 ][q1 , Z0 , q0 ] P5 : [q0 , Z0 , q1 ] → b[q0 , Z, q0 ][q0 , Z0 , q1 ] P6 : [q0 , Z0 , q1 ] → b[q0 , Z, q1 ][q1 , Z0 , q1 ] Vì δ(q0 , ε, Z0 ) = {} nên P7 : [q0 , Z0 , q0 ] → ε Vì δ(q0 , b, Z) = {} nên P8 : [q0 , Z, q0 ] → b[q0 , Z, q0 ][q0 , Z, q0 ] P9 : [q0 , Z, q0 ] → b[q0 , Z, q1 ][q1 , Z, q0 ] P10 : [q0 , Z, q1 ] → b[q0 , Z, q0 ][q0 , Z, q01 ] P11 : [q0 , Z, q1 ] → b[q0 , Z, q1 ][q1 , Z, q1 ] Vì δ(q0 , a, Z) = {} nên P12 : [q0 , Z, q0 ] → a[q1 , Z, q0 ] P13 : [q0 , Z, q1 ] → a[q1 , Z, q1 ] Vì δ(q1 , b, Z) = {} nên P14 : [q1 , Z, q1 ] → b Vì δ(q1 , a, Z0 ) = {} nên P15 : [q1 , Z0 , q0 ] → a[q0 , Z0 , q0 ] P16 : [q1 , Z0 , q1 ] → a[q0 , Z0 , q1 ] Bài tập 2.4 Cho văn phạm phingữcảnh G = a, Tìm ngônngữ sinh L = L(G) b, Xây dựng otomatđẩyxuống M đoán nhận L theo ngăn xếp rỗng Footer Page 57 of 161 48 Khóa luận tốt nghiệp Đại học Header Page 58 of 161 Phạm Thị Thu Hà Lời giải a, Ta có S ⊢ aSa |= abSba |= abcScba |= abcdcba Vậy L(G) = {ωdω R | ω ∈ {a, b, c, d}∗ , ω R đảo ngược ω} b, Otomat đoán nhận {ωdω R | ω ∈ {a, b, c, d}∗ , ω R đảo ngược ω} định nghĩa sau: M = δ xác định sau: δ(q0 , ε, S) = {, , , } δ(q0 , a, a) = {} δ(q0 , b, b) = {} δ(q0 , c, c) = {} δ(q0 , d, d) = {} Bài tập 2.5 Xây dựng văn phạm phingữcảnh sinh ngônngữ {an bn | n ≥ 1} ∪ {am b2m | m ≥ 1} xây dựng otomatđẩyxuống đoán nhận chúng theo ngăn xếp rỗng Lời giải G = để sinh L(G) = {an bn | n ≥ 1} ∪ {am b2m | m ≥ 1}, P có quy tắc: S → S1 | S2 , S1 → aS1 b | ab, S2 → aS2 bb | abb Otomat để đoán nhận L(G) định nghĩa sau: M = , δ xác định bởi: δ(q, ε, S) = {< q, S1 >, < q, S2 >} δ(q, ε, S1 ) = {< q, aS1 b >, < q, ab >} Footer Page 58 of 161 49 Khóa luận tốt nghiệp Đại học Header Page 59 of 161 Phạm Thị Thu Hà δ(q, ε, S2 ) = {< q, aS2 bb >, < q, abb >} Footer Page 59 of 161 50 Header Page 60 of 161 Kết luận Khóa luận trình bày kiến thức văn phạm phingữcảnh dẫn xuất, tính nhập nhằng rút gọn văn phạm phingữ cảnh, dạng chuẩn: dạng chuẩn Chomsky dạng chuẩn Greibach, bổ đề Bơm cho ngônngữphingữcảnh Tiếp nghiên cứu lớp otomat nhận biết ngônngữphicảnhotomatđẩy xuống, từ rút liên kết otomatđẩyxuốngngônngữphingữcảnh Hy vọng khóa luận tài liệu tham khảo cho bạn đọc quan tâm đến vấn đề Footer Page 60 of 161 51 Header Page 61 of 161 Tài liệu tham khảo [A] Tài liệu Tiếng Việt [1] TS Nguyễn Văn Định, Bài giảng Otomatngônngữ hình thức [2] Đoàn Văn Ban (2007), Otomatngônngữ hình thức, Đại học Thái Nguyên [3] Nguyễn Văn Ba (1997), Ngônngữ hình thức, Đại học Bách Khoa Hà Nội [B] Tài liệu Tiếng Anh [4] John E Hopcroft - Rajeev Motwani - Jeffrey D Ullman, Introduction to Automata Theory, Languages, and Computation Footer Page 61 of 161 52 ... cho ngôn ngữ phi cảnh Để chứng minh ngôn ngữ cho trước phi ngữ cảnh có nhiều cách Một cách xây dựng văn phạm phi ngữ cảnh để đoán nhận ngôn ngữ đó.Tuy nhiên, muốn chứng minh ngôn ngữ phi ngữ cảnh. .. phạm phi ngữ cảnh otomat có nhớ đẩy xuống Khóa luận chia thành hai chương: Chương trình bày văn phạm phi ngữ cảnh ngôn ngữ phi ngữ cảnh Chương trình bày khái niệm otomat đẩy xuống liên kết otomat. .. nhận otomat đẩy xuống không đơn định 2.2.5 Otomat đẩy xuống không đơn định ngôn ngữ phi ngữ cảnh 2.3 2.4 38 40 Otomat đẩy xuống đơn định ngôn ngữ phi ngữ