Bài giảng lý thuyết ngôn ngữ TS nguyễn thị uyên

56 260 0
Bài giảng lý thuyết ngôn ngữ   TS  nguyễn thị uyên

Đ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

2/11/2014 TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN - ∽∽∽ BÀI GIẢNG LÝ THUYẾT NGÔN NGỮ Giảng viên: ThS ThS Nguyễn Thị Uyên Khoa Công nghệ thông tin Chương Bổ túc toán Nội dung I Tập hợp II Quan hệ III Đồ thị 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 3/17 2/11/2014 I Tập hợp (Set) • Tập hợp tập đối tượng lặp lại • Mỗi đối tượng tập hợp gọi phần tử (element) tập hợp 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 4/17 Biểu diễn tập hợp Tập hữu hạn: liệt kê phần tử Ví dụ: Tập hợp D xác định tập hợp ngày tuần D = { Mon, Tues, Wed, Thurs, Fri, Sat, Sun } Các phần tử viết cách dấu phẩy đặt cặp dấu { } Thứ tự liệt kê phần tử không quan trọng Viết x ∈ A nghĩa x thuộc A, Viết x ∉ A nghĩa x không thuộc A 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 5/17 Biểu diễn tập hợp Tập vô hạn: Chỉ số đặc trưng Ví dụ: P = { y | y số nguyên tố } X={xx>2} Một trường hợp đặc biệt tập hợp tập hợp rỗng (empty set) Tập hợp chứa phần tử nào, ký hiệu ∅ { } 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 6/17 2/11/2014 Tập (subset) Tập hợp A tập hợp () tập hợp B phần tử A thuộc B Ký hiệu: A ⊆ B Ngược lại, A không tập B (A ⊄ B ) Ví dụ { 1, 2, } ⊆ { 1, 2, 3, 4, } { 2, 4, } ⊄ { 1, 2, 3, 4, } Nhận xét: tập hợp ∅ ⊆ A, ∀A 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 7/17 Tập Hai tập hợp A B gọi (A = B) A ⊆ B B ⊆ A Ví dụ : { 1, 2, 3, } = { 2, 1, 4, } {1, 2, 3, } ≠ { 2, 1, 3, } 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 8/17 Tập lũy thừa Tập hợp tất tập tập A gọi tập lũy thừa (power set) A, ký hiệu: 2A Ví dụ : Giả sử A = { 1, 2, } Thì 2A = { ∅, 1, 2, 3, (1,2), (2,3), (3,1), (1,2,3) } 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 9/17 2/11/2014 Phép toán Phép hợp A ∪ B = {x | x ∈A x ∈B} Phép giao A ∩ B = {x | x ∈A x ∈B} Phép trừ A \ B = {x | x ∈A x ∉B} Tích Đecac A × B = {(a,b) | a ∈A b∈B} 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 10/17 Ví dụ Cho tập A = {1, 2} B = {2, 3} A ∪ B = {1, 2, 3} A ∩ B = {2} A \ B = {1} A × B = {(1, ), (1, 3), (2, 2), (2, 3)} 2A = {∅, {1}, {2}, {1, 2}} 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 11/17 II Quan hệ Quan hệ từ tập A đến tập B tập tập tích đề A × B Lưu ý: không thiết tập A phải khác tập B Ví dụ: Cho tập S = { 0, 1, 2, 3} Quan hệ "thứ tự nhỏ hơn" S xác định tập L = {(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)} Quan hệ "bằng nhau" S xác định tập: E = {(0, 0), (1, 1), (2, 2), (3, 3)} 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 12/17 2/11/2014 Tính chất Phản xạ Đối xứng Bắc cầu 2/11/2014 : aRa ∀a ∈S : aRb bRa : aRb bRc aRc Lý thuyết ngôn ngữ - Chương Trang 13/17 Quan hệ tương đương Một quan hệ R tập S có đủ tính chất phản xạ, đối xứng bắc cầu gọi quan hệ tương đương Ví dụ: Cho tập S = { 0, 1, 2, 3} Quan hệ "bằng nhau" S E = {(0, 0), (1, 1), (2, 2), (3, 3)} 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 14/17 III Đồ thị Đồ thị G = (V, E), bao gồm tập hữu hạn đỉnh V (còn gọi nút) tập cạnh E nối nút Ví dụ V = {1, 2, 3, 4, 5} E = {(n, m) | n + m = n + m = 7} 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 15/17 2/11/2014 Đồ thị có hướng Là đồ thị mà có phân biệt đỉnh đỉnh đầu, đỉnh đỉnh cuối cạnh(cung) Ví dụ: G = ( {1, 2, 3, }, V ={ i → j | i < j } ) 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 16/17 Cây Cây đồ thị có hướng với tính chất sau : Có nút đỉnh gọi nút gốc Mỗi nút lại dẫn từ nút cha : - Các nút có dẫn nút sau gọi nút trung gian hay nút - Các nút không dẫn nút gọi nút Thứ tự duyệt từ trái sang phải 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 17/17 Ví dụ Cây minh họa cấu trúc cú pháp câu đơn ngôn ngữ tiếng Việt "An sinh viên giỏi" 2/11/2014 Lý thuyết ngôn ngữ - Chương Trang 18/17 2/11/2014 Chương I Ngôn ngữ hình thức văn phạm Nội dung I Tổng quan ngôn ngữ II Biểu diễn ngôn ngữ III Văn phạm phân loại văn phạm 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 2/20 1.1 Các khái niệm ngôn ngữ a Bảng chữ cái(alphabet) tập hữu hạn vô hạn ký hiệu Ví dụ - Bộ chữ Latinh {A, B, C, , Z, a, b, c, , z} - Bộ chữ số thập phân {0, 1, 2, , 9} b Từ | chuỗi(word) dãy ký hiệu thuộc bảng chữ Ví dụ : 0, 1011, 00010, từ chữ Σ = {0, 1} c Độ dài từ w, ký hiệu |w| số ký hiệu tạo thành từ w Ví dụ Từ abca có độ dài , ký hiệu : |abca| = 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 3/20 2/11/2014 1.1 Các khái niệm ngôn ngữ d Chuỗi rỗng (ký hiệu ε) chuỗi ký hiệu nào, | ε | = e Chuỗi chuỗi v gọi chuỗi w v tạo ký hiệu liền kề chuỗi w Ví dụ : Chuỗi 10 chuỗi chuỗi 010001 f Tiền tố chuỗi chuỗi nằm đầu chuỗi g Hậu tố chuỗi chuỗi nằm cuối chuỗi Ví dụ: Chuỗi abc có tiền tố a, ab, abc hậu tố c, bc, abc 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 4/20 1.1 Các khái niệm ngôn ngữ h Chuỗi nối kết (ghép) từ hai chuỗi chuỗi tạo cách viết chuỗi thứ sau chuỗi thứ hai (không có khoảng trống giữa) Vd: Nối kết chuỗi Long Int chuỗi LongInt ta có εw = wε = w với chuỗi w i Chuỗi đảo ngược chuỗi w, ký hiệu wR chuỗi w viết theo thứ tự ngược lại w = a1 a2 an > wR = an an-1 a1 Hiển nhiên : εR = ε Vd: w = abcd > wR = dcba 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 5/20 1.2 Ngôn ngữ (Language) a Định nghĩa: ngôn ngữ (hình thức) L tập hợp chuỗi chữ Σ b Tập hợp chứa chuỗi rỗng (ký hiệu {ε}) tập hợp rỗng ∅ coi ngôn ngữ c Tập Σ* = Tập hợp tất chuỗi (từ) kể chuỗi rỗng chữ cố định Σ d Tập Σ+ = Σ* - {ε} Vd : Σ = {0, 1} Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, } Σ+ = {0, 1, 00, 01, 10, 11, 000, } 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 6/20 2/11/2014 • Cho Σ = {a, c,} Hãy mô tả tập Σ* • Cho Σ = {a, c,} Hãy mô tả tập Σ+ 2/11/2014 ? ? Lý thuyết ngôn ngữ - Chương I Trang 7/20 1.3 Các phép toán ngôn ngữ L1 = {ab, bc}; L2 = {12, 34, ab} a Phép hợp L1 ∪ L2 = {ab, bc, 12, 34} b Phép giao L1 ∩ L2 = {ab} c Phép phần bù ngôn ngữ L chữ Σ định nghĩa sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 8/20 1.3 Các phép toán ngôn ngữ d Phép nối kết hai ngôn ngữ L1 chữ Σ1 L2 chữ Σ2 định nghĩa : L1L2 = {w1w2 | w1∈ L1 w2 ∈ L2 } chữ Σ1 ∪ Σ2 Ví dụ: L1 = {a,b}; L2 = {c,d} L1 L2 = {ac,ad,bc,bd} Ta viết L0 = {ε} ; L1 = L ; L2 = LL hay tổng quát Li = LLi - với i > L0 ={ε}, với ngôn ngữ L e Phép bao đóng ngôn ngữ L ký hiệu L* L* = L0 ∪ L1 ∪ L2 ∪ L3 ∪ L4 … 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 9/20 2/11/2014 1.3 Các phép toán ngôn ngữ f Phép bao đóng dương: L+ = L1 ∪ L2 ∪ L3 ∪ L4 … Ví dụ Cho ngôn ngữ L = { a, ba } L2 = { aa, aba, baa, baba} L3 = { aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa} L* = { ε, a, ba, aa, aba, baa, baba, aaa, aaba, abaa, ababa, baaa, baaba, babaa, bababa … } 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 10/20 • Cho ngôn ngữ L = {a, b, c}, tính L3?? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 11/20 II Biểu diễn ngôn ngữ Một ngôn ngữ L chữ Σ tập tập Σ* Ngôn ngữ hữu hạn biểu diễn cách liệt kê tất chuỗi thuộc vào chúng Ví dụ: L1 = {ε}, L2 = { a, ba, aaba, bbbbb } Ngôn ngữ vô hạn liệt kê tất chuỗi thuộc ngôn ngữ Trong trường hợp đơn giản ngôn ngữ biểu diễn thông qua phát biểu hay tân từ Ví dụ: L3 = {  i số nguyên tố } L4 = { bj  i ≥ j ≥ } 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 12/20 2/11/2014 Ví dụ 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 13/32 II Giản lược CFG Giản lược văn phạm phi ngữ cảnh việc loại bỏ yếu tố vô ích mà không làm thay đổi khả sản sinh chuỗi văn phạm 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 14/32 Bước Loại bỏ ký hiệu vô ích Ký hiệu X gọi có ích có dẫn xuất S ⇒* αXβ ⇒* w với chuỗi α, β w ∈ Σ* Ngược lại X gọi vô ích Có đặc điểm cho ký hiệu có ích: X phải nằm dẫn xuất từ S X phải dẫn chuỗi ký hiệu kết thúc 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 15/32 2/11/2014 Bước 1.1: Loại bỏ ký hiệu không dẫn chuỗi ký hiệu kết thúc (Ký hiệu vô sinh) Σ1.1 = Σ Xây dựng ∆1.1 Nếu có luật sinh có dạng A → w P đưa A vào ∆1.1 Nếu A → X1X2 Xn luật sinh, Xi ký hiệu kết thúc biến có sẵn ∆1.1 đưa A vào ∆1.1 Tập ∆1.1 tính cách lặp lại hai bước không đưa thêm phần tử vào Xây dựng P1.1 P1.1 tập tất luật sinh mà ký hiệu thuộc ∆1.1 ∪ Σ1.1 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 16/32 Ví dụ Cho văn phạm CFG G({a},{S,A,B,C},P,S) với P = {S →AB | a | A ; A → a ; C → a} Loại bỏ ký hiệu vô sinh? 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 17/32 Bước 1.2: Loại bỏ ký hiệu không dẫn từ ký hiệu khởi đầu S (Ký hiệu không đến được) Xây dựng ∆1.2 Σ1.2 theo quy tắc sau: Đưa ký hiệu khởi đầu S vào ∆1.2 Nếu biến A ∈ ∆1.1 đưa vào ∆1.2 A → α quy tắc P1.1 đưa ký hiệu thuộc ∆1.1 α vào ∆1.2; ký hiệu thuộc Σ1.1 α vào Σ1.2 Việc xây dựng ∆' Σ' dừng lại không đưa thêm ký hiệu vào Xây dựng P1.2 theo quy tắc sau: P1.2 tập tất luật sinh mà ký hiệu thuộc ∆1.2 ∪ Σ1.2 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 18/32 2/11/2014 Bước 2: Loại bỏ luật sinh ε Một luật sinh có dạng A → ε gọi luật sinh ε Tập hợp biến rỗng (nullable): Nếu A → ε luật sinh A biến rỗng Nếu B → α, α gồm toàn ký hiệu biến rỗng tìm thấy trước B biến rỗng Lặp lại không biến rỗng tìm thấy 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 19/32 Bước 2: Loại bỏ luật sinh ε ∆2 = ∆1.2 Σ2 = Σ1.2 Tập luật sinh P2 xây dựng sau : Đưa vào P2 luật sinh P1.2 mà luật sinh ε Với luật sinh P1.2, ta đưa thêm vào P2 luật sinh tạo thành cách loại bỏ biến rỗng theo tổ hợp có Không đưa vào P2 luật sinh A → ε Trường hợp L(G) chứa ε thêm vào P2 luật sinh S → ε 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 20/32 Ví dụ Cho CFG P = P2 = 2/11/2014 S → ABaC|BC A → BC B→b|ε C→D|ε D→d Kết Tâp biến rỗng T = {S, A, B, C} S → ABaC | BaC | AaC | ABa | aC | Ba | Aa | a| ε A → BC | C | B B→b C→D D→d Lý thuyết ngôn ngữ - Chương II Trang 21/32 2/11/2014 Bước 3: Loại bỏ luật sinh đơn vị Luật sinh đơn vị (quy tắc đơn): luật sinh có dạng A → B với A, B biến đơn thuộc ∆ Thuật toán Với biến A, cần tìm tất biến B cho A ⇒∗ B Sử dụng sơ đồ phụ thuộc đơn vị: Có cạnh nối A đến B có luật sinh đơn vị A → B Có A ⇒∗ B có đường từ A đến B sơ đồ 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 22/32 ∆3 = ∆2 , Σ = Σ Xây dựng P3 Đưa luật sinh không luật sinh đơn vị vào P3 Với biến A, B mà A ⇒∗ B, thêm vào P3 luật sinh A → y1 | y2 | … | yn với B → y1 | y2 | … | yn tập luật sinh P3 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 23/32 Ví dụ Cho CFG S → Aa | B P = A → a | bc | B B → A | bb Sơ đồ phụ thuộc đơn vị Ta có: S ⇒∗ A, S ⇒∗ B, A ⇒∗ B and B ⇒∗ A 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 24/32 2/11/2014 Ví dụ Đưa P3 luật sinh không đơn vị S → Aa A → a | bc B → bb Kết Thêm luật sinh S → Aa | a | bc | bb S → a | bc | bb P3 = A → a | bc | bb A → bb B → bb | a | bc B → a | bc 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 25/32 III Chuẩn hóa CFG Định nghĩa Một văn phạm CFG gọi theo chuẩn Chomsky luật sinh có dạng A → BC A → a, với A, B, C biến, a ký hiệu kết thúc Định lý Một văn phạm CFG tồn văn phạm CFG theo chuẩn Chomsky tương đương với 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 26/32 Ví dụ Văn phạm sau theo chuẩn Chomsky S → AS | a A → SA | b Văn phạm sau không theo chuẩn Chomsky S → AS | AAS A → SA | aa 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 27/32 2/11/2014 Giải thuật chuẩn hóa chomsky cho văn phạm CFG Bước : Thay tất luật sinh đơn vị dạng A → B, với A, B biến Bước : Biến đổi luật sinh có độ dài vế phải >1 có chứa ký hiệu kết thúc thành luật sinh độ dài vế phải >1 ký hiệu kết thúc Xét luật sinh P có dạng A → X1X2 Xm (m >1) Nếu Xi ký hiệu kết thúc a ta đưa thêm biến Ta luật sinh Ta → a Thay Xi Ta, gọi tập biến ∆’ tập luật sinh P’ 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 28/32 Bước : Thay luật sinh có độ dài vế phải > ký hiệu chưa kết thúc Xét luật sinh P’ có dạng A → B1B2 Bm (m > 2) Ta thay tập hợp luật sinh : A → B1D1 D1 → B2D2 Dm - → Bm - 2Dm - Dm - → Bm - 1Bm 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 29/32 Ví dụ Chuyển dạng chuẩn Chomsky P = {S → A | ABA; A → aA | a | B; B → bB | b} Giải Bước : Thay luật sinh đơn vị Bước : Thay luật sinh có độ dài vế phải > có chứa ký hiệu kết thúc Bước : Thay luật sinh có độ dài vế phải > 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 30/32 10 2/11/2014 Chương V Ôtômát đẩy xuống (PushDown Automata) 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 1/20 Nội dung I Otomat đẩy xuống - PDA II PDA văn phạm phi ngữ cảnh 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 2/20 Giới thiệu Ngôn ngữ qui sinh văn phạm qui đoán nhận otomat hữu hạn (DFA NFA) Ngôn ngữ phi ngữ cảnh sinh văn phạm phi ngữ cảnh đoán nhận otomat đẩy xuống (PDA) 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 3/20 2/11/2014 I Ôtômát đẩy xuống (PDA) Mô tả PDA Về bản, giữ tất thành phần ôtômát hữu hạn, với bổ sung thêm ngăn xếp làm việc (Stack) đóng vai trò giữ nhớ, nhờ mà khả ghi nhớ ôtômát tăng thêm 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 4/20 Pushdown Automata PDA Input String Stack States 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 5/20 Định nghĩa PDA Định nghĩa : Một ôtômát đẩy xuống M hệ thống gồm thành phần (Q, Σ, Γ, δ, q0, Z0, F), : 1) Q tập hữu hạn trạng thái 2) Σ chữ gọi chữ nhập 3) Γ chữ gọi chữ Stack 4) δ: hàm chuyển ánh xạ từ Q × (Σ ∪{ε}) × Γ → tập hữu hạn Q × Γ* 5) q0 trạng thái khởi đầu 6) Z0 chữ riêng Stack gọi ký hiệu bắt đầu Stack 7) F ⊆ Q tập trạng thái kết thúc 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 6/20 2/11/2014 Quy ước Quy ước a,b,c, để ký hiệu vào u,v,x,y, Xâu vào A,B,C, ký hiệu ngăn xếp α, β, Xâu ký hiệu ngăn xếp 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 7/20 Phép chuyển có hai kiểu: Kiểu thứ phụ thuộc vào ký hiệu nhập, tức với trạng thái, ký hiệu đỉnh Stack ký hiệu nhập; PDA lựa chọn trạng thái chuỗi ký hiệu thay Stack, đầu đọc dịch sang phải ký hiệu Kiểu thứ hai không phụ thuộc vào ký hiệu nhập, gọi ε dịch chuyển : tương tự kiểu thứ nhất, ngoại trừ ký hiệu nhập không dùng đầu đọc không dịch chuyển sau chuyển trạng thái Thực chất, bước chuyển đặc biệt tạm ngừng quan sát băng nhập để xếp lại ký hiệu ngăn xếp 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 8/20 Initial Stack Symbol stack head Stack Stack $ z top bottom special symbol Appears at time 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 9/20 2/11/2014 The States Input symbol q1 a, b → c 2/11/2014 Push symbol Pop symbol q2 Lý thuyết ngôn ngữ - Chương V Trang 10/20 Hàm chuyển PDA Hàm chuyển phụ thuộc ký hiệu nhập δ(q, a, Z) = {(p1, γ1), (p2, γ2), , (pm, γm)} nghĩa PDA trạng thái q với ký hiệu nhập a ký hiệu Z đỉnh stack chuyển đến trạng thái pi đó, thay kí tự stack Z γi dịch chuyển đầu đọc ký hiệu Với xâu γ ngăn xếp ta qui ước ký hiệu bên trái γ nằm đỉnh ký hiệu bên phải nằm đáy ngăn xếp 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 11/20 Hàm chuyển không phụ thuộc ký hiệu nhập δ(q, ε, Z) = {(p1, γ1), (p2, γ2), , (pm, γm)} nghĩa PDA trạng thái q với ký hiệu nhập ε ký hiệu Z đỉnh stack chuyển đến trạng thái pi đó, thay kí tự stack Z γi Trong trường hợp đầu đọc không dịch chuyển 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 12/20 2/11/2014 Hình thái (ID : Instantaneous Descriptions) Để dễ mô tả hoạt động PDA, ta xét khái niệm hình thái Hình thái dùng để lưu giữ trạng thái PDA ID ba (q, w, γ), q trạng thái, w chuỗi nhập γ chuỗi ký hiệu Stack Nếu M (Q, Σ, Γ, δ, q0, Z0, F) PDA, ta nói : (q, aw, Zα) ⊢ (p, w, βα) δ(q, a, Z) chứa (p, β) Lưu ý: a ký hiệu input ε 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 13/20 The States Input symbol Pop symbol q1 a, b → c 2/11/2014 Push symbol q2 Lý thuyết ngôn ngữ - Chương V Trang 14/20 Ngôn ngữ chấp nhận PDA Với PDA M (Q, Σ, Γ, δ, q0, Z0, F), ta định nghĩa : a Ngôn ngữ chấp nhận trạng thái kết thúc là: L (M) = {w | (q0, w, Z0) ⊢* (p, ε, γ) với p ∈ F γ ∈ Γ*} b Ngôn ngữ chấp nhận Stack rỗng là: N(M) = {w | (q0, w, Z0) ⊢* (p, ε, ε) với p ∈ Q} Khi có chấp nhận Stack rỗng tập trạng thái kết thúc không cần thiết ta ký hiệu tập trạng thái kết thúc F ∅ 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 15/20 2/11/2014 Ví dụ: PDA đơn định (DPDA) Cho PDA chấp nhận stack rỗng sau: M ({q1, q2}, {0, 1, c}, {R, B, Y}, δ, q1, R, ∅ ) 1) δ (q1, 0, R) = {(q1, BR)} 7) δ(q1, c, R) = {(q2, R)} 2) δ(q1, 1, R) = {(q1, YR)} 8) δ(q1, c, B) = {(q2, B)} 3) δ(q1, 0, B) = {(q1, BB)} 9) δ(q1, c, Y) = {(q2, Y)} 4) δ(q1, 1, B) = {(q1, YB)} 10) δ(q2, 0, B) = {(q2, ε )} 5) δ(q1, 0, Y) = {(q1, BY)} 11) δ(q2, 1, Y) = {(q2, ε )} 6) δ(q1, 1, Y) = {(q1, YY)} 12) δ(q2, ε , R) = {(q2, ε )} 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 16/20 Các phép chuyển hình thái PDA chấp nhận chuỗi 001c100 thuộc ngôn ngữ {wcwR |w ∈ (0+1)*} Stack rỗng sau : (q1, 001c100, R) ⊢ (q1, 01c100, BR) ⊢ (q1, 1c100, BBR) ⊢ (q1, c100, YBBR) ⊢ (q2, 100, YBBR) ⊢ (q2, 00, BBR) ⊢ (q2, 0, BR) ⊢ (q2, ε, R) ⊢ (q2, ε, ε) : Chấp nhận 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 17/20 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 18/20 2/11/2014 Ví dụ PDA không đơn định (NPDA) N PDA không đơn định chấp nhận ngôn ngữ {wwR |w ∈ (0+1)*} Stack rỗng 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 19/20 Các phép chuyển hình thái NPDA chấp nhận chuỗi 001100 thuộc ngôn ngữ {wwR |w ∈ (0+1)*} Stack rỗng sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 20/20 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 21/20 2/11/2014 II PDA VÀ VĂN PHẠM PHI NGỮ CẢNH Định lý: Đối với ngôn ngữ phi ngữ cảnh L tồn otomat đẩy xuống không đơn định M đoán nhận L Chứng minh Xây dựng NPDA M (Q, Σ, Γ, δ, p, S, q) tương đương với CFG = (Σ, ∆, P, S) Q = {p, q} Σ giống với CFG Γ=Σ∪∆ p trạng thái khởi đầu S ký hiệu khởi đầu stack q trạng thái kết thúc 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 22/20 Hàm chuyển δ M định nghĩa sau: δ(p, ε, S) = (q, S) δ(q, a, a) =(q, ε) với a thuộc Σ δ(q, ε, A) =(q,x) với luật sinh A → x tập luật sinh G Nghĩa PDA hoạt động sau: Khởi đầu thao tác đưa S vào stack chuyển từ trạng thái p sang q Tiếp theo: Nếu đỉnh stack ký hiệu chưa kết thúc A thay vế phải luật sinh A → x Nếu đỉnh stack ký hiệu kết thúc a ký hiệu vào a xóa a khỏi stack 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 23/20 Ví dụ Xét CFG G({a,b,c},S,S,P) với p = {S → aSa, S → bSb, S → c } Xây dựng PDA đoán nhận CFG nói Giải M (Q, Σ, Γ, δ, q0, Z0, F) với Q = {p,q} {tập trạng thái} Σ = {a,b,c} {Bảng chữ xâu nhập) Γ = {a,b,c,S} {Bảng chữ stack} q0 = p {trạng thái khởi đầu PDA} Z0 = S {trạng thái khởi đầu stack} F=q {trạng thái kết thúc PDA} 2/11/2014 Lý thuyết ngôn ngữ - Chương V Trang 24/20 2/11/2014 Xây dựng δ δ(p, ε, S) = (q, S) δ(q, a, a) = (q, ε) δ(q, b, b) = (q, ε) δ(q, c, c) = (q, ε) δ(q, ε, S) =(q, aSa) δ(q, ε, S) =(q, bSb) δ(q, ε, S) =(q, c) 2/11/2014 Bài tập Xây dựng trình đoán nhận xâu abcba Lý thuyết ngôn ngữ - Chương V Trang 25/20 [...]... chính qui mẫu 2/11/2014 Lý thuyết ngôn ngữ - Chương III Trang 2/13 Giới thiệu Lớp ngôn ngữ được chấp nhận bởi ôtômát hữu hạn được gọi là ngôn ngữ chính quy Lớp ngôn ngữ chính qui có thể được biễu diễn bởi biểu thức chính quy Chương này giới thiệu một cách khác để mô tả ngôn ngữ chính quy thông qua cơ chế sản sinh ngôn ngữ - đó là văn phạm chính quy 2/11/2014 Lý thuyết ngôn ngữ - Chương III Trang 3/13... Xác định L(G)? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 27/20 9 2/11/2014 Bài 4 Cho văn phạm với tập luật sinh: P = {S → a | aA; A → aS | b| cC; C → cA} 1 Xác định các thành phần của văn phạm? 2 Văn phạm trên là văn phạm loại gì? 3 Chuỗi accb có thuộc ngôn ngữ sinh ra bởi văn phạm hay không? Vì sao? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 28/20 Bài 5 1 Cho ngôn ngữ L = {a,b}, tính L3 2 Tìm... → aA, A → bA A→b} 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 24/20 8 2/11/2014 Bài tập Xem các ví dụ trong sách Lý thuyết ngôn ngữ hình thức và otomat Tác giả: Đặng Huy Ruận Từ trang 30 đến trang 45 Chú ý: 1 Ký hiệu V trong sách tương ứng với ký hiệu ∆ 2 Ký hiệu ^ trong sách tương ứng với ký hiệu ε 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 25/20 BÀI TẬP Bài 1: Xét văn phạm G : ∆ = {S, A}, Σ... thuyết ngôn ngữ - Chương I Trang 20/20 Phân loại văn phạm theo Chomsky 1 Văn phạm loại 0 (Unrestricted Grammar) Là văn phạm không cần thỏa mãn ràng buộc nào trên tập các luật sinh 2 Văn phạm loại 1 Mọi luật sinh của văn phạm có dạng α → β và thỏa mãn β≥α (văn phạm cảm ngữ cảnh CSG - ContextSensitive 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) 2/11/2014 Lý thuyết ngôn. .. Start 2/11/2014 Lý thuyết ngôn ngữ - Chương II a Trang 35/44 Giải thuật Quy tắc cho phép hợp: r = r1 + r2 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 36/44 12 2/11/2014 Quy tắc cho phép nối kết: r = r1r2 ε 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 37/44 Quy tắc cho phép bao đóng: r = r1* 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 38/44 Ví dụ Xây dựng NFAε chấp nhận lớp ngôn ngữ được biểu diễn... NFAε cho r5 = 1 NFA ε cho r4 = r5* = 1* như sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 41/44 NFAε cho r1 = r3 r4 = 01* như sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 42/44 14 2/11/2014 NFAε cho r = r1 + r2 = 01*+ 1 như sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 43/44 Bài tập 1 Xây dựng NFAε chấp nhận lớp ngôn ngữ được biểu diễn bởi biểu thức chính quy: a r1 = (00 + 1)* b... dài ngắn nhất không thuộc ngôn ngữ của biểu thức chính qui r = a*(ab)*b* 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 44/44 Bài tập 3 Cho hai biểu thức chính qui: r1 = a* + b*, r2 = ab* + ba* + b*a + (a*b)* a Tìm một chuỗi thuộc L(r2), những không thuộc L(r1) b Tìm các chuỗi thuộc cả L(r1) và L(r2) 4 Tìm biểu thức chính qui biểu diễn ngôn ngữ trên bảng chữ cái {a,b}, mà ngôn ngữ đó được định nghĩa... sinh ra ngôn ngữ L(G) = {a+b+} = {anbm n, m ≥ 1 } 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 19/20 Ngôn ngữ của văn phạm Ngôn ngữ của văn phạm G = (Σ, ∆, P, S) là tập hợp các chuỗi ký hiệu kết thúc w ∈ Σ* được sinh ra từ ký hiệu bắt đầu S của văn phạm bởi các luật sinh thuộc tập P, ký hiệu là L(G) : L (G) = {w w ∈ Σ* và S ⇒* w} Hai văn phạm tương đương là hai văn phạm cùng sinh ra một ngôn ngữ:... → 2Q 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 16/44 Ví dụ Chuyển NFA về dạng bảng 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 17/44 Ngôn ngữ được chấp nhận bởi NFA L(M) = {w | δ(q0, w) có chứa ít nhất một trạng thái trong F } VD Xét NFA M ({q0, q1, q2, q3, q4}, {0, 1}, δ, q0, {q2, q4}) với hàm chuyển δ ở bảng Vẽ sơ đồ chuyển Kiểm tra chuỗi 01001 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang... {[q1], [q0, q1]} 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 21/44 7 2/11/2014 Bài tập Tìm hiểu phần mềm JFLAP,Tải về: http://www.jflap.org 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 22/44 IV NFA với ε-dịch chuyển (NFAεε) Ta mở rộng mô hình NFA cho phép các phép chuyển trên nhãn rỗng ε Ví dụ 1: Sơ đồ chuyển của một NFA với ε-dịch chuyển : 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 23/44 Định ... thuyết ngôn ngữ - Chương I Trang 10/20 • Cho ngôn ngữ L = {a, b, c}, tính L3?? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 11/20 II Biểu diễn ngôn ngữ Một ngôn ngữ L chữ Σ tập tập Σ* Ngôn ngữ... thuộc ngôn ngữ sinh văn phạm hay không? Vì sao? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 28/20 Bài Cho ngôn ngữ L = {a,b}, tính L3 Tìm chuỗi đảo ngược chuỗi dcab 2/11/2014 Lý thuyết ngôn. .. thuyết ngôn ngữ - Chương III Trang 2/13 Giới thiệu Lớp ngôn ngữ chấp nhận ôtômát hữu hạn gọi ngôn ngữ quy Lớp ngôn ngữ qui biễu diễn biểu thức quy Chương giới thiệu cách khác để mô tả ngôn ngữ

Ngày đăng: 04/12/2015, 00:37

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan