Giáo trình Ôtômát và ngôn ngữ hình thức Trường ĐH Công nghiệp Vinh

101 0 0
Giáo trình Ôtômát và ngôn ngữ hình thức  Trường ĐH Công nghiệp Vinh

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ơtơmát ngơn ngữ hình thức TRƯỜNG ĐẠI HỌC CƠNG NGHIỆP VINH KHOA CÔNG NGHỆ NGÀNH CÔNG NGHỆ THÔNG TIN NGUYỄN NGỌC THUẦN ƠTƠMÁT VÀ NGƠN NGỮ HÌNH THỨC Vinh, 2016 Ơtơmát ngơn ngữ hình thức LỜI NĨI ĐẦU Ơtơmát ngơn ngữ hình thức lĩnh vực thuộc chuyên ngành Khoa học máy tính, chủ yếu dùng việc mơ tả, hình thức hóa dãy tính toán điều khiển tự động, phát sinh nhiều ngành khoa học khác từ hệ thống tính tốn, ngơn ngữ học đến sinh học, Ngày nay, ngơn ngữ lập trình, hệ thống máy tính, q trình xử lý thơng tin q trình tính tốn nói chung hình thức hố thành mơ hình tốn học mà lý thuyết ơtơmát ngơn ngữ hình thức cơng cụ Ơtơmát ngơn ngữ hình thức áp dụng rộng rãi nhiều lĩnh vực khoa học ứng dụng như: mơ hình hố, mơ hệ thống tính tốn, kỹ thuật dịch, thơng dịch, trí tuệ nhân tạo, công nghệ tri thức, Nhằm đáp ứng nhu cầu giảng dạy, học tập nghiên cứu cho sinh viên ngành Công nghệ thông tin trường Đại học Công nghiệp Vinh – trường Đại học hoạt động theo hướng thực hành, chúng tơi biên soạn giáo trình “Ơtơmát ngơn ngữ hình thức” theo hướng kết hợp ba mảng chính: lý thuyết ơtơmát, ngơn ngữ hình thức lý thuyết tính tốn gồm khái niệm, kiến thức với nhiều ví dụ minh hoạ, bỏ qua chứng minh lý thuyết không thực cần thiết, nhằm tập trung tối đa thời gian cho việc giải tập, ví dụ thực tiễn Giáo trình giới thiệu cách hệ thống khái niệm tính chất chung ơtơmát ngơn ngữ hình thức Chương mở đầu trình bày khái niệm bản, tính chất quan trọng cấu trúc đại số, logic mệnh đề, làm sở cho chương sau Chương 2, giới thiệu Văn phạm ngơn ngữ hình thức Lý thuyết Ơtơmát, khái niệm sở hoạt động Ơtơmát đề cập Chương Những vấn đề liên quan đến tập qui, ngơn ngữ qui ơtơmát hữu hạn trình bày chi tiết Chương Chương 5, nghiên cứu khái niệm sở, mối quan hệ lớp ngôn ngữ tính chất quan trọng ngơn ngữ phi ngữ cảnh, Ơtơmát đẩy xuống Sau Chương có tập hệ thống hố lại kiến thức thơng qua đó, học viên nắm bắt khái niệm bản, kiến thức chủ yếu Chương cuối để nâng cao hiểu biết ơtơmát ngơn ngữ hình thức, đồng thời phát triển khả ứng dụng chúng nghiên cứu triển khai ứng dụng Công nghệ thông tin Ơtơmát ngơn ngữ hình thức Mặc dù có nhiều cố gắng, tài liệu khơng tránh khỏi thiếu sót Chúng tơi mong nhận ý kiến, góp ý đồng nghiệp bạn đọc để hồn thiện giáo trình Ơtơmát ngơn ngữ hình thức Các ý kiến đóng góp xin gửi về: Bộ mơn CNTT, Khoa Cơng Nghệ, trường ĐHCN Vinh Số 26, Đường Nguyễn Thái Học, Phường Đội Cung, Tp Vinh, Tỉnh Nghệ An Chủ biên TS Nguyễn Ngọc Thuần Ơtơmát ngơn ngữ hình thức MỤC LỤC Nội dung Chương 1: Bổ túc – Các khái niệm Trang – 10 1.1 Tập hợp 1.2 Quan hệ Đồ thi.̣ 1.3 Đa ̣i cương về ngôn ngữ 1.4 Bài tâ ̣p: 10 Chương 2: Văn phạm ngôn ngữ hình thức 2.1 Văn phạm ngơn ngữ Định nghĩa Văn phạm: Bộ thành phần G = (∑,V, P, S) 11 – 37 11 12 2.2 Các dẫn xuất và ngôn ngữ sinh văn phạm 13 + Dẫn xuất 14 + Ngôn ngữ sinh 15 + Văn phạm tương đương 15 + Bài toán thuận Bài toán ngược 16 - 21 2.3 Phân loại ngôn ngữ (Văn pha ̣m) Chomsky 22 - 27 2.4 Tính đệ qui tập đệ qui 28 - 30 2.5 Các phép tốn ngơn ngữ 31 – 35 2.6 Các ví dụ tập 36 – 37 Chương 3: Lý thuyết Ơtơmát 38 - 57 3.1 Ơtơmát hữu hạn 38 3.1.1 Hàm chuyển trạng thái tính chất 40 3.1.2 Các phương pháp biểu diễn ôtômát 41 3.1.3 Ngôn ngữ đoán nhận ôtômát 42 3.2 Ơtơmát hữu hạn khơng đơn định 44 3.3 Sự tương đương ôtômát đơn định không đơn định 47 - 50 3.4 Cực tiểu hố ơtơmát hữu hạn 51 – 55 3.5 Các ví dụ Bài tập 56 – 57 Ơtơmát ngơn ngữ hình thức Chương4: Tập qui văn phạm qui 58 - 75 4.1 Các biểu thức qui 58 4.2 Sự tương đương biểu thức qui 59 Định lý (Định lý Arden) 4.3 Ơtơmát hữu hạn biểu thức qui 4.3.1 Phương pháp đại số ứng dụng định lý Arden 60 62 63 - 66 4.3.2 Thiết lập ôtômát hữu hạn tương đương với biểu thức qui 67 4.4 Bổ đề Bơm tập qui 67 4.5 Ứng dụng Bổ đề Bơm 68 4.6 Các tập qui văn phạm qui 69 4.6.1 Xây dựng VP qui tương đương với ÔTĐĐ cho trước 69 -70 4.6.2 Xây dựng ÔTĐĐ hữu hạn tương đương với VP qui G 70 - 71 4.5 Các ví dụ Bài tập 71 - 75 Chương 5: Ngôn ngữ phi ngữ cảnh và Ơtơmát đẩy xuống 5.1 Ngơn ngữ phi ngữ cảnh dẫn xuất 76 - 95 76 -81 5.2 Sự nhập nhằng văn phạm phi ngữ cảnh 82 5.3 Dạng chuẩn Chomsky 82 5.4 Bổ đề Bơm cho ngơn ngữ phi ngữ cảnh 83 -85 5.5 Ơtơmát đẩy xuống (PDA) ứng dụng 86 5.5.1 Cấ u ta ̣o và hoa ̣t đô ̣ng của PDA 87 5.5.2 Đoán nhâ ̣n xâu vào của PDA 88 5.5.3 Ngôn ngữ đoán nhâ ̣n của PDA 89 - 90 5.5.4 Mối quan hệ PDA Văn pha ̣m phi ngữ cành 91 - 93 5.6 Các ví dụ Bài tập 94 - 95 Ơtơmát ngơn ngữ hình thức CHƯƠNG BỔ TÚC – CÁC KHÁI NIỆM CƠ BẢN Chương mở đầu giới thiệu khái quát tóm lược lại khái niệm bản, tính chất ký hiệu sử dụng tất chương sau:  Tập hợp, quan ̣ và đồ thi.̣  Các phép toán tập hợp  Đa ̣i cương về ngơn ngữ tính chất 1.1 Tập hợp Tập hợp tập Tập hợp kết tập đối tượng có số thuộc tính giống Ví dụ: Tập tất sinh viên Khoa CNTT Mỗi sinh viên gọi mô ̣t phần tử tập hợp Ký hiê ̣u tâ ̣p hợp: Các chữ in hoa A, B, C, … Ký hiê ̣u phầ n tử của tâ ̣p: Các chữ thường a, b, c, … Phần tử a thuộc tập A, ký hiệu a  A Ngược lại, a phần tử A, (a A) Các mô tả của Tập hợp: (i) Đếm phần tử Ta liê ̣t kê phần tử tập hợp theo thứ tự đặt cặp dấu ngoặc {, } Ví dụ: Tập số tự nhiên chia hết cho nhỏ 50 viết {7, 14, 21, 28, 35, 42, 49} (ii) Mô tả tập hợp theo tính chất phần tử T = {x | P(x)}- Đây là tâ ̣p tấ t cả x thỏa mãn tân từ P(x) Ví dụ: Tập số tự nhiên chia hết cho nhỏ 50 viết: {n | n số nguyên dương chia hết cho nhỏ 50} Ở đây, P(x) là tân từ: P(x)= n là số nguyên dương chia hế t cho và nhỏ 50 (iii) Định nghĩa đệ qui Các phần tử tập hợp đươ ̣c xác đinh ̣ thông qua qui tắc tính tốn từ phần tử đã biết Ví dụ: Tập số giai thừa n đươ ̣c định nghĩa: n! ={fn | f0 = 1; fn = n * fn-1, n = 1, 2, …} Ơtơmát ngơn ngữ hình thức Tập phép toán tập hợp Tập A gọi tập B (viết A  B), phần tử A phần tử B Hai tập A B (viết A = B), chúng có tập phần tử Thông thường, để chứng minh A = B, cần chứng minh A  B B  A Một tập đặc biệt không chứa phần tử gọi tập trống (rỗng), ký hiệu  Trên tâ ̣p tập hợp xác định số phép toán: phép hợp , phép giao , phép trừ - tích Đề Các định nghĩa sau: A  B = {x | x  A x  B}, gọi hợp hai tập hợp, A  B = { x | x  A x  B}, gọi giao hai tập hợp, A - B = { x | x  A x  B}, gọi hiệu hai tập hợp C = U - A, với U tập vũ trụ tất phần tử xét, gọi phần bù A Tập tất tập A ký hiệu 2A = {B | B  A}, (A) A  B = {(a, b) | a A b B}, gọi tích Đề Các A B hay cịn gọi tích tự nhiên hai tập hợp Ví du ̣: Cho A = {1, 2}, B = {2, 3} Ta có: A  B = {1, 2, }; A  B = { 2}; A  B = {(1, 2), (1, 3), (2, 2), (2, 3)}; A - B = { 1}; 2A = {, { 1}, { 2}, {1, 2}}.; Lực lươṇ g của tâ ̣p hơ ̣p: +) Nế u các tâ ̣p A, B là hữu ̣n ( | A | = m, | B | = n ), thì |AB| = m x n; | 2A |=2 |A| = 2m +) S1 , S2 có cùng bản số (lực lươṇ g)   f (1-1, lên) f: S1 → S2 +) Nế u S1 , S2 hữu ̣n và S1 là tâ ̣p thực sự của S2 thì | S1| < | S2 | +) Nế u S1 , S2 là các tâ ̣p vô ̣n, thì khẳ ng đinh ̣ không đúng.( S2 = Z, S1 = Nguyên chẵ n; f(x) = 2x là ánh xa ̣ 1-1 từ Z lên S1) Ơtơmát ngơn ngữ hình thức Đinh ̣ nghĩa: Giả sử S tập hợp Một họ tập {A1, A2, … An} S gọi phân hoạch S nếu: (i) Ai  Aj = , i  j , tập khác rời nhau, (ii) S = A1  A2  …  An, hợp tập S Ví dụ: S = {1, 2, 3, … 10} phân hoạch thành hai tập A1 = {1, 3, 5, 7, 9}tập số lẻ tập số chẵn A2 = {2, 4, 6, 8, 10} 1.2 Quan hệ Đồ thi.̣ Quan hệ khái niệm sở quan trọng khoa học máy tính sống Khái niệm quan hệ xuất xem xét mố i quan ̣ cặp đối tượng so sánh đối tượng với đối tượng khác, ví dụ, quan hệ “anh em” hai người Chúng ta biểu diễn mối quan hệ a b cặp xếp (a, b) thể a anh b, chẳng hạn Trong khoa học máy tính, khái niệm quan hệ xuất cần nghiên cứu cấu trúc liệu Định nghĩa (hai ngôi): Quan hệ hai R tập S tập cặp phần tử S, R  S  S Khi x y có quan hệ R với ta viết x R y (x, y)  R Ví dụ: Trên tập Z, định nghĩa quan hệ R: x R y x = y + Định nghĩa tính chất: Quan hệ R tập S là: (i) Phản xạ Nếu xRx với x  S (ii) Đối xứng Với x, y  S, xRy yRx (iii) Bắc cầu Với x, y, z  S, xRy yRz xRz (iv) (Phản đố i xứng) Với x, y  S, xRy và yRx thì x = y Định nghĩa: +) Quan hệ R tập S gọi quan hệ tương đương có tính phản xạ, đối xứng bắc cầu +) Quan hệ R tập S gọi quan hệ thứ tự bộ phận  R thỏa mãn các tính chấ t (i), (iii), (iv) +) Quan hệ thứ tự bộ phận R S gọi thứ tự toàn phần S   x,y S, (x, y)  R (y, x)  R Ví dụ: Ơtơmát ngơn ngữ hình thức a/ Trên tập S, định nghĩa xRy  x = y Dễ kiểm tra ba tính chất quan hệ = thỏa mãn, = quan hệ tương đương b/ Trong tập sinh viên Khoa CNTT ta thiết lập quan hệ R: Sinh viên a quan hệ R với sinh viên b hai học lớp Hiển nhiên quan hệ quan hệ tương đương.(R = Quan ̣ cùng lớp) c/ Trên tập S, định nghĩa xRy  x > y Dễ kiểm tra tính đối xứng khơng thỏa mãn, quan hệ > khơng phải quan hệ tương đương d/ (R,  ), (2A, ) là quan ̣ thứ tự bô ̣ phâ ̣n (R, 1) Ta cần chứng minh với k, tức T A-cây dẫn xuất có đường dài nhỏ k kết sinh T có độ dài nhỏ 2k-1 Bởi k > nên đỉnh gốc T có hai A1 A2 có đường dài nhỏ k – 88 Ơtơmát ngơn ngữ hình thức Theo giả thiết qui nạp kết w1, w2 sinh hai dẫn xuất A1 A2 tương ứng thỏa mãn | w1|  2k-2, | w2|  2k-2 Kết sinh T w1w2 | w1w2|  2k-2 + 2k-2 = 2k-1 Đó điều cần phải chứng minh  Định lý Nếu L ngôn ngữ phi ngữ cảnh tồn số tự nhiên n cho: (i) z  L với |z|  n viết dạng: z = uvwxy, với u, v, x, y xâu (ii) |vx|  (iii) |vwx|  n (iv) uvkwxky  L với k  Chứng minh: Từ hệ 5.2 ta kiểm tra   L hay khơng Khi   L ta xây dựng văn phạm phi ngữ cảnh G = (VN, , P, S) dạng chuẩn Chomsky để sinh L – {} (trường hợp   L xây dựng văn phạm G = (VN , , P, S) dạng chuẩn Chomsky để sinh L) Giả sử |VN| = m đặt n = 2m Ta n số cần tìm bổ đề Với z  L, |z|  n ta xây dựng dẫn xuất cho z Nếu độ dài đường dài T nhiều m theo bổ đề 5.3, ta có |z|  2m-1 Nhưng |z|  n = 2m >2m-1 Vậy T có đường đi, ví dụ , có độ dài lớn m +  có m + đỉnh có đỉnh cuối Như  có m + đỉnh có nhãn biến Bởi |VN| = m nên số nhãn phải lặp lại Chúng ta chọn đỉnh có nhãn bị lặp lại sau: ngược lên đến gặp đỉnh có nhãn bị lặp lại, ví dụ nhãn B Giả sử v1 v2 hai đỉnh có nhãn B, với v1 gần gốc T Trên đoạn đường  từ v1 đến chứa đỉnh có nhãn B bị lặp lần, độ dài lớn đoạn m + Giả sử T1 T2 hai tương ứng với hai đỉnh gốc v1 v2, T1 sinh z1 T2 sinh w Theo bổ đề trên, suy |z1|  2m Bởi z xâu sinh T T1 thực T, nên viết z = uz1y Mặt khác, T2 lại thực T1, nên ta viết z1 = vwx | vwx| > |w| suy |vx|  Do vậy, z = uvwxy với |vwx|  n |vx|  Đến ta chứng minh điều (i) – (iii) 89 Ơtơmát ngơn ngữ hình thức Bởi T S-cây dẫn xuất T1, T2 hai B-cây dẫn xuất, nghĩa S B *  vBx uvkBxky B *  *  w Vì S *  uBy  uwy = uv0wx0y  L Với k  1, S *  uBy, * *  uBy  uvkwxky  L Điều chứng minh điều kiên (iv) bổ đề Bơm  Ví dụ 5.7 Chỉ L = {ap | p số nguyên tố} ngôn ngữ phi ngữ cảnh Giải: Giả sử L phi ngữ cảnh Theo bổ đề Bơm tìm số n để thoả mãn điều kiện định lý 5.10 z = ap, p số nguyên tố p  n Ta viết dạng z = uvwxy Chọn k = 0, theo bổ đề Bơm ta có uv0wx0y  L Suy |uwy| = q số nguyên tố Đặt |vx| = m xét tiếp dãy uvqwxqy  L Nó có độ dài |uvqwxqy| = q + q * m = q*(1 + m), lại số nguyên tố, mâu thuẫn với giả thiết Bổ đề Bơm sử dụng để ngôn ngữ phi ngữ cảnh Trước tiên, giả sử L ngôn ngữ phi ngữ cảnh Áp dụng bổ đề Bơm dẫn đến mâu thuẫn Thuật tốn áp dụng bổ đề Bơm để kiểm tra tính phi ngữ cảnh L Giả sử L phi ngữ cảnh n số tự nhiên nhận từ bổ đề Bơm Chọn z  L |z|  n Viết z = uvwxy theo bổ đề Tìm số k cho uvkwxky  L Điều mâu thuẫn, L phi ngữ cảnh Ví dụ 5.8 Hãy L = {anbncn | n  1} ngôn ngữ phi ngữ cảnh mà ngôn ngữ cảm ngữ cảnh Giải: Bước Giả sử L phi ngữ cảnh n số nguyên bổ đề Bơm nêu Bước Chọn z = anbncn Khi |z| = 3n > n Theo bổ đề ta viết z = uvwxy, |vx| > 1, suy v x khác rỗng Bước uvwxy = anbncn Vì |uwx|  n nên suy  |ux|  n Dễ dàng thấy rằng, v x chứa tất ba chữ a, b, c Khi ta có v x có dạng aibj (hoặc bicj) với i + j  n, i, j  90 Ơtơmát ngơn ngữ hình thức v x chứa ba chữ a, b, c Trường hợp Nếu v = aibj (hoặc x = aibj) v2 = aibj aibj (tương tự x2 = aibjaibj) với i + j  n Bởi v2, x2 hai xâu uv2wx2y, nên uaibjaibjwaibj aibjy viết thành dạng ambmcm được, nghĩa uv2wx2y  L Tương tự trường hợp v = bicj (hoặc x = bicj) Trường hợp Nếu v, x chứa ba chữ a, b, c ( ví dụ v = x = bj, v = bi x = cj với  i, j  n), xâu uwy chứa chữ thứ ba lại, gọi a1 Hiển nhiên a1n xâu uwy a1 khơng xuất v x Biết uvwxy = anbncn nên số hai chữ khác với a1 uwy nhỏ n, nghĩa uwy  L Mặt khác uv0wx0y = uwy  L Vậy L phi ngữ cảnh 5.5 Ơtơmát đẩy xuống (Push-Down Automata) ứng dụng Mơ hình tốn học hữu hạn nghiên cứu chương trước khơng có khả đốn nhận ngôn ngữ đơn giản L = {anbn | n  1} khơng thể đếm số chữ a đọc trước chữ b tính đến Khơng thể xây dựng ôtômát hữu hạn trạng thái để đoán nhận L xâu có dạng anbn với n tuỳ ý để sinh chúng phải có vơ hạn trạng thái Tuy nhiên, việc mở rộng trực tiếp ôtômát hữu hạn cách cho phép có vơ số trạng thái rõ ràng khơng phải mơ hình tính tốn phù hợp Vậy ơtơmát loại thích hợp để đốn nhận ngơn ngữ thế? Đó ơtơmát đẩy xuống Một ôtômát đẩy xuống ôtômát hữu hạn kèm theo băng đẩy xuống vơ hạn tiềm Ơtơmát đẩy xuống hoạt động sau: Nó đọc bảng chữ (ký hiệu) vào, có trạng thái điều khiển, trạng thái bắt đầu, kết thúc giống ơtơmát hữu hạn Ngồi ra, cịn có kho (bộ nhớ) đẩy xuống Mỗi lần thay đổi trạng thái đọc, lấy (từ đỉnh xuống đáy) ghi ký hiệu vào kho đẩy xuống Định nghĩa: Ơtơmát đẩy xuống (PDA) bảy: A = (Q, , , , q0, Z0, F), (i) Q tập hữu hạn khác rỗng trạng thái, (ii)  tập hữu hạn khác rỗng ký hiệu vào, bảng chữ cái, (iii)  tập hữu hạn khác rỗng ký hiệu ngăn xếp, 91 Ơtơmát ngơn ngữ hình thức (iv) q0 trạng thái bắt đầu, q0  Q, (v) Z0   gọi ký hiệu khởi đầu (đáy ngăn xế p), (vi) F  Q tập trạng thái kết thúc, (vii) :   Q  (  {ε})  X  *  Q Ví dụ 5.9 A = (Q, , , , q0, Z0, F), Q = {q0, q1, qf},  = {a, b},  = {a, Z0}, F = {qf}  xác định sau: ( Z0 , q0, a) = {(aZ0 ,q0)}, ( a, q1, b) = {( ε, q1)} ( a, q0, a) = {(aa, q0)}, ( Z0 , q1, ε ) = {( ε, q1)} ( a, q0, b) = {( ε , q1)} 5.5.1 Cấ u ta ̣o và hoa ̣t đô ̣ng của PDA: Ôtômát đẩy xuống (PDA) gồ m băng vào, ngăn xế p và bô ̣ điề u khiể n a1 a2 an a2 a3 q Z1 q´´ an Z2 Zm PDA cũng giớ ng FA: Có bơ ̣ điề u khiể n là tâ ̣p hữu ̣n tra ̣ng thái, đầ u đo ̣c cho phép đo ̣c lầ n lươ ̣t các ký hiê ̣u băng vào từ trái sang phải PDA khác FA : PDA có Stack hoa ̣t đô ̣ng theo nguyên tắ c LIFO, làm tăng khả nhớ của PDA 92 Ơtơmát ngơn ngữ hình thức Hoạt động Stack: Khi đưa ký tự vào Stack, thì ký hiê ̣u đó nằ m ở đầ u (đỉnh) của Stack; Ngược lại, đo ̣c đưa khỏi Stack: Ký hiê ̣u cùng đươ ̣c đo ̣c và ký hiê ̣u đó đã đươ ̣c đo ̣c xong thì nó bi ̣loa ̣i khỏi ngăn xế p Mô ̣t bước chuyể n của PDA: Khi thực bước chuyển, PDA cứ vào: + Tra ̣ng thái hiê ̣n thời của bô ̣ điề u khiể n (Q); + Ký hiê ̣u quan sát đươ ̣c băng vào; + Ký hiê ̣u đầ u (đỉnh) của Stack Để đưa hành động thích hợp sau: - Bộ điều khiển chuyể n sang mô ̣t tra ̣ng thái mới nào đó (Q); - Ghi mô ̣t xâu ký hiê ̣u nào đó vào đầ u Stack; - Đầ u đo ̣c có thể chuyể n sang ô bên phải (Nế u đầ u đo ̣c chủ n sang phải ơ, quá trình đươ ̣c go ̣i là mô ̣t bước chuyể n Ngươ ̣c la ̣i- Đầ u đo ̣c đứng yên, đươ ̣c go ̣i là bước chuyể n mù) 5.5.2 Đoán nhâ ̣n xâu vào của PDA: Có 02 cách đoán nhận xâu vào PDA +) Xâu vào đươ ̣c đo ̣c xong và PDA đế n đươ ̣c các tra ̣ng thái cuố i ( F); +) Xâu vào đươ ̣c đo ̣c xong và Stack trở thành rỗ ng Quy ước: Ký hiê ̣u vào: a, b, c,… ; Xâu vào: u,v, x, y,…; , , ,….  Khái niệm Bước chuyể n được nhìn dưới dạng hàm chuyể n: Có da ̣ng tương ứng với cách đoán nhâ ̣n: ( z ,q, a) = {(1 , q1), ( 2 ,q2),.…., (m , qm)}- Đa tri,̣ đó z ; q,qiQ; a; i  * Có nghiã là: Ở tra ̣ng thái q, z ở đỉnh Stack, nhìn lên ký hiê ̣u a (trên băng) thì PDA chuyể n sang tra ̣ng thái qi , thay z ở đỉnh Stack bằ ng i và đầ u đo ̣c chuyể n sang phải (Vẽ hình mơ tả) 93 Ơtơmát ngơn ngữ hình thức Nế u a = ε tức là: (z, q, ε) = {(1 , q1), ( 2 ,q2),.…., (m , qm)}, thì đươ ̣c gọi là bước chuyể n mù (bước chuyể n rỗ ng).Trong trường hơ ̣p này, ký hiê ̣u vào không ảnh hưởng tới bước chuyể n (trong bước chuyể n đó đầ u đo ̣c vẫn đứng yên ta ̣i chỗ ) Có nghiã là: Ở tra ̣ng thái q, z ở đin̉ h Stack, PDA chuyể n tra ̣ng thái q qi và thay z ở đin̉ h Stack bằ ng i, còn đầ u đo ̣c không dich ̣ chuyể n Khái niệm Hình tra ̣ng của PDA: Gồ m thành phần:  q x Trong đó qQ; x *- Đây là phầ n xâu chưa đươ ̣c đo ̣c;   * (Stack) – Kí hiệu trái nhấ t ở dưới Lúc đó, q nhin ̀ lên ký tự trái nhấ t của x băng vào Hình tra ̣ng đầ u của PDA: z0 q0 w Vâ ̣y, quá trình đoán nhâ ̣n xâu w bởi PDA là quá trình biế n đổ i các hình tra ̣ng Mô ̣t xâu w đươ ̣c đoán nhâ ̣n PDA, nế u tồ n ta ̣i mô ̣t quá trình đoán nhâ ̣n nó Chú ý: Khi đưa mô ̣t xâu  vào Stack, ký hiê ̣u bên trái nhấ t của  nằ m ở dưới, ký hiê ̣u phải nhấ t sẽ nằ m ở đỉnh Stack Nế u hiê ̣n thời z  và  = Y1Y2 …Yk thì viê ̣c đưa  vào mô tả như: Stack đươ ̣c Yk Yk-1 … Y1 z 5.5.3 Ngôn ngữ đoán nhâ ̣n của PDA: Ngôn ngữ đoán nhâ ̣n bởi PDA (M) theo kiể u tra ̣ng thái cuố i (kết thúc): L(M) = { w * | z0q0 w  * p với pF,   *} Ngôn ngữ đoán nhâ ̣n bởi PDA (M) theo kiể u Stack rỗ ng: N(M) = { w | z0q0 w  * p với pQ} 94 Ơtơmát ngơn ngữ hình thức Đinh ̣ lý: Tâ ̣p các xâu đoán nhâ ̣n đươ ̣c theo tra ̣ng thái cuố i của mô ̣t PDA(M) chin ́ h bằ ng tâ ̣p các xâu đoán nhân đươ ̣c bằ ng kiể u Stack rỗng (L(M) = N(M)) L(M) = {w * | ( Z0, q0, w)  * (, qf, Λ) với qf  F  *} Ví dụ 5.10 (Đoán nhận): Cho M = ({q0, q1, qf}, {a, b, c}, {a, b, Z0}, , q0, Z0,{qf}), với : ( Z0, q0, a) = {( Z0 a, q0)}, ( a, q0, a) = {( aa, q0)}, ( b, q0, a) = {( ba, q0)}, ( a, q0, c) = {( a, q1)}, ( Z0, q0, b) = {( Z0b, q0)}, ( a, q0, b) = {( ab, q0)}, ( b, q0, b) = {( bb, q0)}, (b, q0, c) = {(b, q1)}, ( Z0 ,q0, c) = {( Z0 ,q1)} ( a, q1, a) = ( b, q1, b) = {(ε, q1)} (Z0 ,q1, ε ) = {( Z0 , qf)} Xét viê ̣c đoán nhâ ̣n xâu w = bacab Quy trình : Đặt xâu cần đốn nhận vào Hình trạng đầu ; Hoạt động Hàm chuyển trạng thái ; Dựa vào Hình trạng cuối đạt để kết luận : thừa nhận không Hình tra ̣ng đầ u: Z0 q0 bacab (luôn Xem xét ký tự mà q ký tự ) Z0 q0 bacab  Z0 bq0 acab  Z0 ba q0 cab  Z0 b aq1 ab  Z0 bq1 b  Z0 q1 ε  Z0 qf ε Nghĩa Z0 q0 bacab * Z0 qf Λ , bacab L(M) (Stack rỗng) 95 Ơtơmát ngơn ngữ hình thức Tương tự chứng minh wcwT L(M) Vậy L = {wcwT | w  {a, b}*}  L(M) Để chứng minh chiều ngược lại, L(M)  L ta cần LC  L(M)C ( phần bù chúng bao nhau) Giả sử x  LC Xét tiếp hai trường hợp: Trường hợp 1: x không chứa ký tự c Khi PDA A khơng thể chuyển đổi từ trạng thái q0 đến q1 để đến qf Vậy x  L(M)C Trường hợp 2: x có chứa ký tự c, x = w1cw2, w1T  w2 ( Z0 ,q0, w1cw2) * (Z0w1T ,q0, cw2)  (Z0w1T ,q1, w2) Bởi w1T  w2 nên (Z0w1T ,q1, w2) chuyển (Z0 ,q1, Λ) để kết thúc (Z0 , qf, Λ) Từ suy x  L(M)C Kết luận L(M) = L 5.5.4 Mối quan hệ Ơtơmát đẩy xuống Văn pha ̣m phi ngữ cành Đinh ̣ lý: (Sự tương đương giữa PDA và Văn pha ̣m Phi ngữ cành G) L là mô ̣t ngôn ngữ phi ngữ cảnh   PDA(M) mà L = N(M) Nghĩa là, cho trước Văn phạm phi ngữ cảnh G, ln tìm Ơtơmát đẩy xuống M để L(G) = N(M) ngược lại Cho G = ( ∑ , V , P, S) là VP PNC sinh L(G)   PDA(M) mà L(G) = N(M) Chứng minh: (Chiều thuận: Có Văn phạm G, xây dựng PDA(M) tương ứng): Giả sử ta có: G = ( ∑ , V , P, S) là VP PNC sinh L(G) Ta xây dựng M sau: Đă ̣t M = (Q, , , , q0, Z0, F), đó ta lấ y:  = ∑G ; Q = {q} và q = q0 ; F =  ;  = ∑  V ; Z0 = S; Hàm chuyể n  được xác đinh ̣ sau: :   Q  (  { ε })  X  * x Q +)  A  V và (A  )  P G, thì (A, q, ε) = (R , q); 96 Ơtơmát ngơn ngữ hình thức +) (a, q, a) = (ε, q);  a  ∑ Ví du ̣ 5.11: Cho G = ( ∑ , V , P, S) với ∑ = {a,b}; V = {A, B}; S = A; P: A  B|AB; B ab|aBb Hãy mô tả dáng điê ̣u các xâu wL(G) Tìm dẫn xuấ t đố i với xâu w1 = aaabbb; w2 = abababab Xây dựng PDA(M) mà N(M) = L(G) Áp du ̣ng sự đoán nhâ ̣n của M đố i với aabb Giải (3): M = (Q, , , , q0, Z0, F) Với: Q = {q}; ∑ = {a,b};  = ∑  V = {a,b, A, B}; Z0 = A Hàm chuyển  xác định sau: (A, q, ε) = (B, q) | (BA, q); (B, q, ε) = (ba, q) | (bBa, q); (a, q, a) = (ε, q); (b, q, b) = (ε, q) Tim ̀ đường dẫn của w = aabb A  B  aBb  aabb = w L(G) Đoán nhâ ̣n của PDA (M): Aqaabb  Bqaabb  bBaqaabb  bBqabb  bbaqabb  bbqbb  bqb  q (Stack rỗng) Vâ ̣y, wN(M) Ví du ̣ 5.12: Cho ∑ = {x, y, z};V = {A, B}; S = A; P: A  zyz|Bz; B  Bxy|yz; Hãy lâ ̣p PDA(M) mà N(M) = L(G); Áp du ̣ng đoán nhâ ̣n cho: w1 = zyxyz; w2 = zyxyxyz 97 Ơtơmát ngơn ngữ hình thức Ví dụ 5.13: Xây dựng ơtơmát đẩy xuống M tương đương với văn phạm phi ngữ cảnh có luâ ̣t sinh: S  0BB, B  0S | 1S | Kiểm tra xem 0104  N(M)? Giải: Xây dựng PDA( M) sau: M = ({q}, {0, 1}, {S, B, 0, 1}, , q, S, )  định nghĩa sau: R1: ( S, q, ε ) = {( BB0, q)} R2: (B, q, ε ) = {(S0, q), (S1, q), (0, q)} R3: (0,q, 0) = {( ε , q)} R4: (1, q, 1) = {( ε , q)} Ta kiểm tra xem 0104  N(M)? Sq 0104  BB0q 0104 theo qui tắc R1  BBq 104 theo qui tắc R3  BS1q 104 theo qui tắc R2 (S1, q)  (B, q, ε )  BSq 04 theo qui tắc R4  BBB0q 04 theo qui tắc R1  BBBq 03 theo qui tắc R3  * 000q 03 theo qui tắc R2 (0,q)  (B, q, ε )  * ( ε, q ), theo qui tắc R3 Vậy, 0104  N(M) Ví dụ 5.14 Xây dựng PDA để đoán nhận tập xâu {a, b}, số chữ a số chữ b Giải: B = ({q}, {a, b}, {Z0, a, b},  , q, Z0, ),  (Z0 , q, a) = {(Z0 a, q)}, (a, q, a) = {(aa, q)}, (b, q, a) = {( ε, q)},  (Z0 , q, b) = {(Z0 b, q)}, (b, q, b) = {(bb, q)} (q, b, a) = {(ε, q)} 98 Ơtơmát ngơn ngữ hình thức ( Z0 , q, ε) = {(ε, q)} Chứng minh N(A) = L tập tất xâu {a, b} số chữ a số chữ b Bài tập 5.1 Cho văn phạm G có P: S  S + S | S * S, S  a | b Tìm dẫn xuất của xâu w = a * b + a * b thuộc L(G) 5.2 Cho văn phạm G có P : S  0S0 | 1S1 | A, A  2B3, B2B3 | Tìm L(G)? 5.3 Cho văn phạm G có P : S  aB | bA, A  aS | bAA | a, Đối với xâu w = aaabbabbba, tìm: BbS | aBB | b (i) Dẫn xuất trái w, (ii) Dẫn xuất phải w, (iii) Cây dẫn xuất w 5.4 Chỉ văn phạm G có P: S  SbS | a nhập nhằng 5.5 Chỉ văn phạm G có P: S  a | abS | aAb, A  bS | aAAb nhập nhằng 5.6 Xây dựng PDA để đoán nhận kho đẩy xuống rỗng ngôn ngữ sau: (a) {anbmcn | m, n  1} (b) {anb2n | n  1} (c) {ambmcn | m, n  1} (d) {ambn | m > n  1} 5.7 Xây dựng PDA để đốn nhận trạng thái kết thúc ngơn ngữ 5.6 5.8 Xây dựng văn phạm phi ngữ cảnh sinh ngôn ngữ sau sau xây dựng PDA để đốn nhận chúng kho đẩy xuống rỗng: (a) {anbn | n  1}  {amb2m | m  1} (b) {anbmcn | m, n  1}  {ancn | n  1} (c) {anbmcmdn | m, n  1} 99 Ơtơmát ngơn ngữ hình thức 5.9 Chỉ tập tất xâu {a, b} có số ký tự a số ký tự b, đoán nhận ôtômát đẩy xuống đơn định 5.10 Chỉ {anbn | n  1}  {amb2m | m  1} khơng thể đốn nhận ơtơmát đẩy xuống đơn định 5.11* Cho ngôn ngữ phi ngữ cảnh L = {ancbmcdk | n > m > 0, k > 0} (i) Tìm văn phạm phi ngữ cảnh G để sinh L (L(G) = L) (ii) Chỉ dẫn xuất chứng tỏ từ a3cb2cd2 sinh G mà anh (chị) (iii) Xây dựng cú pháp từ a3cb2cd2 (iv) Xây dựng ôtômát đẩy xuống M để đoán nhận L cho trước (v) Chỉ dẫn xuất chứng tỏ từ a3cb2cd2 đoán nhận M mà anh (chị) 5.12* Cho văn phạm phi ngữ cảnh G có tập qui tắc P = {S  aSa | bSb | cSc | d} (i) Tìm ngơn ngữ sinh L = L(G) (ii) Xây dựng ôtômát đẩy xuống M để đoán nhận L cho trước theo ngăn xếp rỗng, L(G) = L(M) (iii) Cho w1 = aababbccdccbbabaa w2 = ababbcccdbbabaa Chỉ w1  L(G) w1  L(M), w2  L(G) w2  L(M) (iv) Xây dựng cú pháp xâu w1 văn phạm G nêu 100 Ơtơmát ngơn ngữ hình thức TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Ba, Lý thuyết ngôn ngữ tính tốn, NXB ĐHQG Hà Nội 2006 [2] Đỗ Đức Giáo, Toán rời rạc, NXB ĐHQG Hà Nội 2002, 2004 [3] Hopcroft J and Ullman J., Formal languages and their relation to automata, Addison Wesley, London, 1969 [4] Mishra K and Chandrasekaran, Theory of Computer Science (Automata, Languages and Computation), Prentice Hall, 2001 [5] Rosen K H., Discrete Mathematics and Its Application, Mc Graw- Hill, NY 1994 101 ... chẵn 15 Ơtơmát ngơn ngữ hình thức CHƯƠNG 2: VĂN PHẠM VÀ CÁC NGƠN NGỮ HÌNH THỨC Nhiệm vụ lý thuyết ngơn ngữ hình thức nghiên cứu cách đặc tả hữu hạn ngơn ngữ vơ hạn Chương hai, trình bày khái niệm,... mong nhận ý kiến, góp ý đồng nghiệp bạn đọc để hồn thiện giáo trình Ơtơmát ngơn ngữ hình thức Các ý kiến đóng góp xin gửi về: Bộ môn CNTT, Khoa Công Nghệ, trường ĐHCN Vinh Số 26, Đường Nguyễn Thái... Văn phạm ngơn ngữ hình thức 2.1 Văn phạm ngôn ngữ Định nghĩa Văn phạm: Bộ thành phần G = (∑,V, P, S) 11 – 37 11 12 2.2 Các dẫn xuất và ngôn ngữ sinh văn phạm 13 + Dẫn xuất 14 + Ngôn ngữ sinh 15

Ngày đăng: 17/01/2023, 18:04

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

Tài liệu liên quan