MỤC LỤC MỤC LỤC 2 LỜI MỞ ĐẦU 3 YÊU CẦU ĐỀ TÀI 4 PHẤN MỘT: LÝ THUYẾT 5 I. MỘT SỐ KHÁI NIỆM 5 I.1. Ngôn ngữ(Languages) 5 I.2. Văn phạm cấu trúc(Grammars): 5 I.3. Sự phân cấp Chomsky trên văn phạm 6 I.4. Ôtômát hữu hạn 6 I.5. Văn phạm không hạn chế. 7 II. VĂN PHẠM KHÔNG HẠN CHẾ VÀ CÁC MÁY TURING 8 III. VĂN PHẠM CHÍNH QUY 14 IV. VĂN PHẠM CẢM NGỮ CẢNH VÀ ÔTÔMÁT TUYẾN TÍNH GIỚI NỘI. 18 V. KẾT LUẬN 23 PHẦN HAI: BÀI TẬP 24 I. Giới thiệu RAM thô sơ. 24 II. Phân tích bài toán. 25 III. Chương trình giả ngữ. 28 IV. Chương trình RAM thô sơ. 32 V. Kết luận. 35 VI. Phụ lục mã nguồn cài đặt trên ngôn ngữ c. 35 VII. Một số kết quả 37 TÀI LIỆU THAM KHẢO 38 LỜI MỞ ĐẦU Lý thuyết tính toán là một ngành cơ bản trong lý thuyết, đóng vai trò quan trọng trong các phép tính toán, làm nền tảng xây dựng các máy và tính toán cơ bản của toán và tin học. Đây là một ngành khó, phức tạp nhưng đã ra đời khá lâu với các đóng góp của nhiều nhà khoa học. Văn phạm không hạn chế(Unregistricted grammar) là văn phạm loại không, trong phân cấp của Chomsky, đây là loại văn phạm không có ràng buộc giữa các thành phần trong tập quy tắc của nó. Văn phạm không hạn chế là tổng quát nhất trong các loại văn phạm, đây đồng thời cũng là văn phạm có ý nghĩa lớn trong việc biểu diễn ngôn ngữ, việc hiểu ý nghĩa của văn phạm không hạn chế sẽ giúp ta có cái nhìn tổng quát hơn về văn phạm và từ đó ta tìm hiểu về máy Turing chấp nhận nó đồng thời tìm hiểu thêm về văn phạm chính quy(Regular grammar) và văn phạm cảm ngữ cảnh(Context sensitive grammar) và Automat tuyến tính giới nội chấp nhận ngôn ngữ này. Máy RAM thô sơ là loại máy mà tập các lệnh của nó được rút gọn lại một cách tối thiểu nhất, nhằm chỉ sử dụng các lệnh thô sơ nhưng lại giải quyết được các bài toán con dễ dàng. Tìm hiểu máy RAM thô sơ sẽ giúp ta hiểu thêm được khả năng xử lý của các máy khi chỉ sử dụng các lệnh cơ bản để giải quyết các bài toán. Chúng tôi xin chân thành cảm ơn PGS TS Phan Huy Khánh đã giảng dạy, hướng dẫn tận tình và cung cấp tài liệu tham khảo quý báu để chúng tôi hoàn thành đề tài này. Mặc dù nhóm đã nhiệt tình tìm hiểu, nghiên cứu nhưng do thời gian có hạn, trình độ cũng còn hạn chế nên không tránh khỏi những thiếu sót. Kính mong thầy xem xét, góp ý để nhóm chúng tôi hoàn thiện, hiểu rõ hơn nữa về các bài toán này. Xin chân thành cám ơn.
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA BÁO CÁO MÔN HỌC LÝ THUYẾT TÍNH TOÁN ĐỀ TÀI: TÌM HIỂU MỘT SỐ VĂN PHẠM VÀ BÀI TẬP RAM THÔ SƠ Giáo viên giảng dạy: PGS TS. PHAN HUY KHÁNH Học viên thực hiện: Lê Ngọc Quang Thái Duy Quý Ngô Thị Hiền Trang Đà Nẵng, 5/2010 Báo cáo lý thuyết tính toán Nhóm 12 MỤC LỤC MỤC LỤC 2 LỜI MỞ ĐẦU 3 PHẤN MỘT: LÝ THUYẾT 5 !"#$%&"'%!!%( )*+"#,-!./$%01 ! 23$!4$ 5 !. "65 7893'9,:;,,<=>'? 789,@A=<2 789,B'C,B;33=<:@'D? :=E PHẦN HAI: BÀI TẬP 23 'FGF$FH>I$J) 8+K"LMF$-42 ,NJ$%OFP5 ,NJ$%O>I$J)Q 6$RS)) 8TRT"!UV"MFWX$$%0"Y)) Z$[.6$\P) TÀI LIỆU THAM KHẢO 37 Trang 2 Báo cáo lý thuyết tính toán Nhóm 12 LỜI MỞ ĐẦU Lý thuyết tính toán là một ngành cơ bản trong lý thuyết, đóng vai trò quan trọng trong các phép tính toán, làm nền tảng xây dựng các máy và tính toán cơ bản của toán và tin học. Đây là một ngành khó, phức tạp nhưng đã ra đời khá lâu với các đóng góp của nhiều nhà khoa học. Văn phạm không hạn chế(Unregistricted grammar) là văn phạm loại không, trong phân cấp của Chomsky, đây là loại văn phạm không có ràng buộc giữa các thành phần trong tập quy tắc của nó. Văn phạm không hạn chế là tổng quát nhất trong các loại văn phạm, đây đồng thời cũng là văn phạm có ý nghĩa lớn trong việc biểu diễn ngôn ngữ, việc hiểu ý nghĩa của văn phạm không hạn chế sẽ giúp ta có cái nhìn tổng quát hơn về văn phạm và từ đó ta tìm hiểu về máy Turing chấp nhận nó đồng thời tìm hiểu thêm về văn phạm chính quy(Regular grammar) và văn phạm cảm ngữ cảnh(Context - sensitive grammar) và Automat tuyến tính giới nội chấp nhận ngôn ngữ này. Máy RAM thô sơ là loại máy mà tập các lệnh của nó được rút gọn lại một cách tối thiểu nhất, nhằm chỉ sử dụng các lệnh thô sơ nhưng lại giải quyết được các bài toán con dễ dàng. Tìm hiểu máy RAM thô sơ sẽ giúp ta hiểu thêm được khả năng xử lý của các máy khi chỉ sử dụng các lệnh cơ bản để giải quyết các bài toán. Chúng tôi xin chân thành cảm ơn PGS TS Phan Huy Khánh đã giảng dạy, hướng dẫn tận tình và cung cấp tài liệu tham khảo quý báu để chúng tôi hoàn thành đề tài này. Mặc dù nhóm đã nhiệt tình tìm hiểu, nghiên cứu nhưng do thời gian có hạn, trình độ cũng còn hạn chế nên không tránh khỏi những thiếu sót. Kính mong thầy xem xét, góp ý để nhóm chúng tôi hoàn thiện, hiểu rõ hơn nữa về các bài toán này. Xin chân thành cám ơn. Trang 3 Báo cáo lý thuyết tính toán Nhóm 12 YÊU CẦU ĐỀ TÀI Phần lý thuyết: Trình bày các khái niệm theo gợi ý sau đây: - Văn phạm không hạn chế và máy Turing. - Văn phạm chính quy. - Văn phạm cảm ngữ cảnh và Automat tuyến tính giới nội. Phần bài tập: Bằng cách loại bỏ lệnh hoán đổi S <n, m> trong máy RAM thô sơ để chỉ còn lại các lệnh I <n>, D <n>, Z <n>, J <n> (i, j) và HALT, viết chương trình RAM thô sơ tính n^^p là hàm lũy thừa bậc hai (Double Exponent Function: n^^0 = 1 ; n^^p+1 = nn^^p) với các số nguyên n, p cho trước. Trang 4 Báo cáo lý thuyết tính toán Nhóm 12 PHẤN MỘT: LÝ THUYẾT . I MỘT SỐ KHÁI NIỆM Trước khi đi vào nội dung chính, ta tìm hiểu một số khái niệm liên quan như: ngôn ngữ, văn phạm, các phân cấp văn phạm của Chomsky,… Đây là các khái niệm ban đầu giúp làm nền tảng cho các kiến thức liên quan. I.I.1. Ngôn ngữ(Languages) Định nghĩa 1.1. Một ngôn ngữ (Languages) L là một tập hợp các chuỗi của các ký hiệu(symbols) từ một bộ chữ cái Σ nào đó. Tập hợp chứa chuỗi rỗng (ký hiệu {ε}) và tập hợp rỗng ∅ cũng được coi là ngôn ngữ. Tập hợp tất cả các chuỗi con kể cả chuỗi rỗng trên bộ chữ cái cố định Σ, ký hiệu là Σ * cũng là một ngôn ngữ. Mỗi ngôn ngữ trên bộ chữ cái Σ đều là tập con của Σ * . Ngoài ra tập hợp tất cả các chuỗi sinh ra từ bộ chữ cái Σ, ngoại trừ chuỗi rỗng ε, được ký hiệu là Σ + . Dễ thấy: Σ + = Σ * - {ε} hay Σ * = Σ + + {ε} I.I.2. Văn phạm cấu trúc(Grammars): Định nghĩa 1.2.Văn phạm cấu trúc G là một hệ thống gồm bốn thành phần xác định như sau G (V, T, P, S), trong đó: o V: tập hợp các biến (variables) hay các ký hiệu chưa kết thúc (non terminal) o T: tập hợp các ký hiệu kết thúc (terminal) (với V ∩ T = ∅) o P: tập hữu hạn các quy tắc ngữ pháp được gọi là các luật sinh (production), mỗi luật sinh được biểu diễn dưới dạng α → β, với α, β là các chuỗi ∈ (V ∪ T) * . o S ⊂ V: ký hiệu chưa kết thúc dùng làm ký hiệu bắt đầu (start) Người ta thường dùng các chữ cái Latinh viết hoa (A, B, C, ) để chỉ các ký hiệu trong tập biến V; các chữ cái Latinh đầu bảng viết thường (a, b, c, ) dùng chỉ các ký hiệu kết thúc thuộc tập T. Chuỗi các ký hiệu kết thúc thường được biểu diễn bằng các chữ cái Latinh cuối bảng viết thường (x, y, z, ). I.I.3. Sự phân cấp Chomsky trên văn phạm Dựa trên các kiểu văn phạm, Chomsky đã phân loại các văn phạm theo các cấp bậc như sau: o Văn phạm loại 0: Một văn phạm không cần thỏa ràng buộc nào trên tập các luật sinh được gọi là văn phạm loại 0 hay còn được gọi là văn phạm không hạn chế (Unrestricted Grammar). Trang 5 Báo cáo lý thuyết tính toán Nhóm 12 o Văn phạm loại 1: Nếu văn phạm G có các luật sinh dạng α → β và thỏa | β | ≥ | α | thì G là văn phạm loại 1 hoặc còn được gọi là văn phạm cảm ngữ cảnh CSG (Context-Sensitive Grammar).Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ cảm ngữ cảnh (CSL). o Văn phạm loại 2: Nếu văn phạm G có các luật sinh dạng A → α với A là một biến đơn và α là một chuỗi các ký hiệu ∈ (V ∪ T) * thì G là văn phạm loại 2 hoặc còn được gọi là văn phạm phi ngữ cảnh CFG (Context-Free Grammar). Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ phi ngữ cảnh (CFL). o Văn phạm loại 3: Nếu văn phạm G có mọi luật sinh dạng tuyến tính phải (right-linear): A → wB hoặc A → w với A, B là các biến đơn và w là chuỗi ký hiệu kết thúc (có thể rỗng); hoặc có dạng tuyến tính trái (left-linear): A → Bw hoặc A → w thì G là văn phạm loại 3 hay còn được gọi là văn phạm chính quy RG (Regular Grammar). Ngôn ngữ của lớp văn phạm này được gọi là ngôn ngữ chính quy (RL) I.I.4. Ôtômát hữu hạn Định nghĩa 1.3. Một cách hình thức ta định nghĩa ôtômát hữu hạn là bộ gồm năm thành phần (Q, Σ, δ, q 0 , F), trong đó : o Q là tập hợp hữu hạn các trạng thái. o Σ là bộ chữ cái nhập hữu hạn. o δ là hàm chuyển ánh xạ từ Q × Σ → Q, tức là δ(q, a) là một trạng thái được cho bởi phép chuyển từ trạng thái q trên ký hiệu nhập a. o q 0 ∈ Q là trạng thái bắt đầu. o F ⊆ Q là tập các trạng thái kết thúc. I.I.5. Văn phạm không hạn chế. Định nghĩa 1.4. Một văn phạm không hạn chế (unrestricted grammar) là một bộ 4 bao gồm gồm G = (V, Σ, S, P), với V và Σ tương ứng là tập rời rạc của các biến và ký tự kết thúc; S ⊆ V gọi là ký tự bắt đầu, và P là một tập hợp các quy tắc dạng α → β với α, β ∈ (V ∪ Σ)* và α chứa ít nhất một biến. Ngôn ngữ của văn phạm không hạn chế có dạng: L(G) = { x ∈ Σ* | S => G * x } Trang 6 Báo cáo lý thuyết tính toán Nhóm 12 Máy Turing: Định nghĩa 1.5. Máy Turing(Turing Machine – TM) là một hệ thống M (Q, Σ, Γ, δ, q 0 , B, F), trong đó: o Q : tập hữu hạn các trạng thái. o Σ: bộ ký hiệu nhập. o Γ : tập hữu hạn các ký tự được phép viết trên băng. o B : ký hiệu thuộc Γ dùng chỉ khoảng trống trên băng (Blank). o δ : hàm chuyển ánh xạ : Q × Γ → Q × Γ × {L, R, ∅} o (δ có thể không xác định với một vài đối số). o q 0 ∈ Q là trạng thái bắt đầu. o F ⊆ Q là tập các trạng thái kết thúc. Trang 7 Báo cáo lý thuyết tính toán Nhóm 12 . II VĂN PHẠM KHÔNG HẠN CHẾ VÀ CÁC MÁY TURING Như đã thấy ở chương trước văn phạm không hạn chế là tổng quát nhất trong phân cấp các của Chomsky, trong phần này chúng ta sẽ đi vào văn phạm loại 0 và cho thấy rằng ngôn ngữ thừa nhận chúng có thể được chấp nhận mởi máy Turing. Định lý 2.1. Nếu G = (V, Σ , S, P) là văn phạm không hạn chế thì có một máy Turing T = (Q, Σ, Γ, q 0 , δ ) với L(T) = L(G). Chứng minh: Chúng ta chứng minh định lý bởi việc xây dựng một máy Turing không đơn định(Nondeterministic Turing Machine – NTM) để chấp nhận L(G). Nó được tổ hợp từ nhiều thành phần: T = MovePastInput → Simulate → Equal Nơi thành phần đầu tiên di chuyển trên băng vào đến các ô trống cho phép chuỗi vào, thành phần thứ hai bắt chước một máy nhận trong G bắt đầu tại vị trí này và cho ra kết quả chuỗi trên băng, thành phần thứ ba so sánh kết quả này với đầu vào nguyên thủy, chỉ dừng nếu hai chuỗi được chấp nhận. Nếu chuỗi vào x chứa trong L(G), máy TM không đơn định có thể chọn dãy các di chuyển để bắt chước chuỗi nhận của x, và kết quả là T dừng; ngược lại, máy Turing hoặc phát sinh một chuỗi khác từ x hoặc không hoàn thành một đoán nhận tất cả và T sẽ hỏng và dừng. Bộ chữ cái của TM trên băng bao gồm tất cả các ký hiệu của V ∪ Σ và ký hiệu khác nếu có. Máy hoạt động bằng cách di chuyển một ô sang phía phải nơi nó bắt đầu và ghi ký hiệu bắt đầu S. Tại điểm này, nó lặp và vòng lặp này bị ngưng trước khi bất kỳ số nào của chuỗi lặp lại.Tại mỗi điểm bắt đầu của một dãy lặp, một phần băng TM được sử dụng như ∆γ, khi γ là chuỗi hiện tại trong máy bắt chước đoán nhận(simulated derivation). Chuỗi lặp tiếp theo tương ứng với quy tắc α → β của G, một sự lựa chọn không đơn định. Những bước lặp tiếp theo của chuỗi lặp như sau: Có gắng tìm kiếm một sự kiện của chuỗi α, nếu một trong chúng tìm thấy thì thay thế bởi β và sau đó trả lại băng vào để bắt đầu lại chuỗi kết quả. Khi TM chọn để kết thúc vòng lặp, nó sẽ trả lại băng vào về ô trống và dừng máy. Khả năng không đơn định được biểu diễn trong TM: Khi chọn lựa một quy tắc để sử dụng trong dãy lặp kế tiếp của vòng lặp, khi lựa chọn một sự kiện của ký hiệu đầu tiên α trên băng và khi quyết định để kết thúc vòng lặp. Những chọn lựa sai tại bất kỳ Trang 8 Báo cáo lý thuyết tính toán Nhóm 12 chỗ nào trong ba điểm trên có thể làm cho phần đầu bị hỏng hoặc một chuỗi trái trên băng vẫn còn chứa các biến, hoặc bị một chuỗi trong L(G) không nối được với chuỗi nguyên thủy trên băng vào T. Nó có thể bị xóa, tuy nhiên cho bất kỳ x ∈ L(G), tại ít nhất một lần chọn của di chuyển là nguyên nhân TM rời x trên băng và không có các chuỗi khác của ký tự kết thúc có thể làm ký tự cuối đầu ra của TM. Ví dụ 2.1. Cho văn phạm không hạn chế với tập các quy tắc: S → aBS | ∆ aB → Ba Ba → aB B → b Chúng sinh ra ngôn ngữ của của các chuỗi trong {a, b}* với số lượng a và b bằng nhau. Hình 2.1 cho thấy máy Turing biểu diễn như trong chứng minh ở Định lý 2.1 Lưu ý rằng trong ví dụ này chỉ những quy tắc mà chúng ở bên trái hoặc bên phải có độ dài khác nhau là những S quy tắc, và S xuất hiện cuối cùng bên trái nhất của chuỗi. Trong trường hợp tổng quát hơn, việc chấp nhận một luật sinh như S → aBS có thể hoàn thành bởi việc sử dụng một máy Turing chèn hai lần và một luật sinh khác S → ∆ yêu cầu một bộ xóa. Trang 9 Báo cáo lý thuyết tính toán Nhóm 12 Hình 2.1 Một bắt chước TM cho Ví dụ 2.1 Định lý 2.2. Nếu L ⊆ Σ * là bất kỳ một ngôn ngữ liệt kê đệ quy nào thì có một văn phạm không hạn chế G sinh ra L. Chứng minh: Cho M = (Q, Σ , Γ, q 0 ,δ) là một TM chấp nhận L. Văn phạm G mà ta xây dựng có ba kiểu tập các quy tắc: 1. Tập các quy tắc có thể sinh ra hai bản sao chép của một chuỗi bất kỳ trong Σ * thêm một vài ký tự đánh dấu để phân biệt hai chuỗi sao chép. 2. Tập các quy có thể bắt chước một dãy các chuyển động của M. Một trong hai bản sao chép của chuỗi nguyên thủy là giữ không thay đổi bên trái; cái còn lại biểu diễn băng vào cho M và thay đổi theo đó(Bởi vì bản sao chép thứ hai này chứa băng các ký hiệu của T, tất cả ký hiệu trong Γ ∪ {∆} - Σ bao gồm cả các biến trong văn phạm). 3. Tập các quy tắc có thể xóa đi mọi thứ nhưng không thay đổi sự sao chép của chuỗi, miễn là những di chuyển tương tự của M chấp nhận một sao chép khác là nguyên nhân làm M dừng. Hai bản sao chép của chuỗi nguyên thủy a 1 a 2 … a k có dạng (a 1 a 1 ) (a 2 a 2 )… (a k a k ) Trang 10 \ Q \ ∆/∆, R ∆/S, S \ B/b, L \ ] ∆/ ∆, R ∆/∆, L a/a, L b/b, L a/a, L b/b, L \ ? ∆/∆, L \ ^ h ∆/∆, S a/a, R b/b,R B/B,R a/ B, L B/ a, R q 6 B/ a, L a/ B, R q 5 S/ ∆, L S/ a, R q 3 q 3 ∆/ B, R ∆/ S, L a/a, L b/b,L B/B,L [...]... b/∆, R b/∆, Hình 4.1 Một LBA chấp nhận ngôn ngữ đối xứng L q ∆/∆, L 〉 /〉 , L 5 ∆/∆, R q 6 a/a, R b/b, R Trang a/a, L b/b, L 21 ∆/∆, L 〉 /〉 , L Báo cáo lý thuyết tính toán Nhóm 12 V KẾT LUẬN Với yêu cầu tìm hiểu và xây dựng báo cáo với hai phần, lý thuyết và thực hành, nhóm đã tìm hiểu về một số kiểu văn phạm trên cơ sở lý thuyết, từ đó phân tích vài ví dụ cơ bản dựa trên nên tảng lý thuyết đó Các vấn... nên tảng lý thuyết đó Các vấn đề đã thực hiện như sau: 1 Tìm hiểu các khái niệm lý thuyết về văn phạm không hạn chế, các định nghĩa, định lý 2 Tìm hiểu về máy Turing chấp nhận ngôn ngữ không hạn chế 3 Tìm hiểu các khái niệm, định lý, định nghĩa về văn phạm chính quy, phân tích ví dụ cụ thể 4 Tìm hiểu về văn phạm cảm ngữ cảnh và Ô tô mát tuyến tính giới nội, có ví dụ minh họa cụ thể Các vấn đề chưa thực... 2 Trình bày lý thuyết và các ví dụ một cách mạch lạc, rõ ràng hơn Trang 22 Báo cáo lý thuyết tính toán Nhóm 12 PHẦN HAI: BÀI TẬP Đề bài: Bằng cách loại bỏ lệnh hoán đổi S trong máy RAM thô sơ để chỉ còn lại các lệnh I , D , Z , J (i, j) và HALT, viết chương trình RAM thô sơ tính n^^p là hàm lũy thừa bậc hai (Double Exponent Function: n^^0 = 1 ; n^^p+1 = nn^^p) với các số nguyên n,... sinh ra bởi văn phạm G Định lý 11.5 Nếu có một Automat tuyến tính giới nội M = (Q, Σ, Γ, q0, δ) chấp nhận ngôn ngữ L ⊆ Σ* thì có một văn phạm cảm ngữ cảnh phát sinh L – {∆} Chứng minh: Trang 19 Báo cáo lý thuyết tính toán Nhóm 12 Ta xây dựng một CSG G thực hiện 3 giai đoạn: oGiai đoạn 1: Văn phạm cho phép sinh ra một chuỗi w (chuỗi nhập của M), cũng được chứa trong ⊄, $ và q0 oGiai đoạn 2: Văn phạm lặp... trước Bài làm: I Giới thiệu RAM thô sơ Từ một mô hình chương trình RAM, ta có thể rút gọn các lệnh xuống thành những lệnh cơ bản, nhưng từ những lệnh này, có thể xây dựng các chương trình như một RAM bình thường Một RAM chỉ gồm những lệnh cơ bản gọi là RAM thô sơ Ta có thể rút gọn các lệnh trong máy RAM như sau: - Thu gọn tập lệnh ngắt: Chuyển lệnh ngắt JUMP và JGTZ về thành lệnh ngắt - JZERO Thu gọn tập. .. trong văn phạm là dạng không hạn chế của các luật sinh với nhiều gay gắt Ta có thể cho thấy rằng một ngôn ngữ là chính quy nếu và chỉ nếu nó có thể được sinh ra, ngoại trừ khả năng chuỗi null, bởi văn phạm mà tất cả các quy tắc đều có dạng: B → xC B→x khi B, C là các biến và x là chuỗi kết thúc khác null Văn phạm kiểu này còn được gọi là tuyến tính Trang 17 Báo cáo lý thuyết tính toán Nhóm 12 IV VĂN PHẠM... CẢNH VÀ ÔTÔMÁT TUYẾN TÍNH GIỚI NỘI Định nghĩa 4.1 Một văn phạm cảm ngữ cảnh(Context – sensitive grammar) là văn phạm không hạn chế với mọi luật sinh đều có dạng: α → β với | β | ≥ | α | Một ngôn ngữ cảm ngữ cảnh (Context sensitive language - CSL) là ngôn ngữ được sinh ra từ văn phạm trên Có hai lưu ý trong định nghĩa ở trên Thứ nhất về mặt thuật ngữ thì nhỏ và rờ rạc: Ta đã định nghĩa một CSG như là văn. .. nhận bởi FA thì rõ ràng cho những phát sinh bởi kết quả của văn phạm Định nghĩa 3.1 Một văn phạm G = (V, Σ, S, P) là chính quy nếu mọi luật sinh là một trong hai dạng B → aC Trang 15 Báo cáo lý thuyết tính toán Nhóm 12 B→a Với B, C là các biến, a là ký tự kết thúc Định lý 3.1 Với mọi ngôn ngữ L ⊆ Σ*, L là chính quy nếu và chỉ nếu có một văn phạm chính quy G sao cho L(G) = L – {∆} Chứng minh: Trước tiên,... aba Trang 13 Báo cáo lý thuyết tính toán Nhóm 12 III VĂN PHẠM CHÍNH QUY Chúng ta đã thấy được văn phạm tổng quát hơn CFG, ta trở lại các văn phạm kém tổng quát hơn CFL, đó là dạng ngôn ngữ chính quy Trong phần này, chúng ta sẽ thấy rằng chúng có thể được phát sinh bởi văn phạm không hạn chế từ đó Ví dụ 3.1 Cho Ôtômát hữu hạn trong hình dưới đây Ngôn ngữ đón nhận là {0, 1}*{10}, tập hợp tất cả các chuỗi... → a ∀a ∈ Σ - {⊄, $} và ∀α, β có thể có Chú ý rằng số quy tắc là hữu hạn, vì α và / hoặc β chỉ gồm ⊄, $ và một ký hiệu nhập vào Chúng ta cũng có thể xoá thành phần thứ hai của một biến nếu nó liền kề với ký hiệu kết thúc bằng cách dùng các luật sinh dạng: [a, α]b → ab b[a, α] → ba ∀a, b ∈ Σ - {⊄, $} và ∀α có thể có Như vậy tập các quy tắc vừa được xây dựng mô tả văn phạm là CSG và có thể chứng minh . "65 7 8 93'9,:;,,<=>'? 7 8 9,@A=<2 7 8 9,B'C,B;33=<:@'D? :=E PHẦN. "65 7 8 93'9,:;,,<=>'? 7 8 9,@A=<2 7 8 9,B'C,B;33=<:@'D? :=E PHẦN. 23 'FGF$FH>I$J) 8 +K"LMF$-42 ,NJ$%OFP5 ,NJ$%O>I$J)Q 6$RS)) 8 TRT"!UV"MFWX$$%0"Y)) Z$[.6$P) TÀI