Bài giảng Lý thuyết ngôn ngữ - Nguyễn Thị Thị Uyên

• Tập hợp là tập các đối tượng không có sự lặp lại. • Mỗi đối tượng trong tập hợp được gọi là phần tử (element) của tập hợp đó.

pdf56 trang | Chia sẻ: lylyngoc | Lượt xem: 1839 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Bài giảng Lý thuyết ngôn ngữ - Nguyễn Thị Thị Uyên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
2/11/2014 1 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. Nguyễn Thị Uyên Khoa Công nghệ thông tin Chương 0 Bổ túc toán 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 3/17 Nội dung I. Tập hợp II. Quan hệ III. Đồ thị và cây 2/11/2014 2 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 4/17 I. Tập hợp (Set) • Tập hợp là tập các đối tượng không có sự lặp lại. • Mỗi đối tượng trong tập hợp được gọi là phần tử (element) của tập hợp đó. 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 5/17 Biểu diễn tập hợp  Tập hữu hạn: liệt kê từng phần tử  Ví dụ: Tập hợp D xác định tập hợp các ngày trong tuần  D = { Mon, Tues, Wed, Thurs, Fri, Sat, Sun }  Các phần tử được viết cách nhau bởi dấu phẩy và đặt trong cặp dấu { và }.  Thứ tự liệt kê các phần tử là không quan trọng  Viết x ∈ A nghĩa là x thuộc A,  Viết x ∉ A nghĩa là x không thuộc A 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 6/17 Biểu diễn tập hợp  Tập vô hạn: Chỉ ra một số đặc trưng của nó.  Ví dụ:  P = { y | y là số nguyên tố }  X = { x  x > 2 }  Một trường hợp đặc biệt của tập hợp là tập hợp rỗng (empty set). Tập hợp này không có chứa bất kỳ phần tử nào, ký hiệu bởi ∅ hoặc { }. 2/11/2014 3 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 7/17 Tập con (subset)  Tập hợp A là tập hợp con () của tập hợp B khi mọi phần tử của A đều thuộc B.  Ký hiệu: A ⊆ B  Ngược lại, A không là tập con của B (A ⊄ B ).  Ví dụ { 1, 2, 4 } ⊆ { 1, 2, 3, 4, 5 }  { 2, 4, 6 } ⊄ { 1, 2, 3, 4, 5 }  Nhận xét: tập hợp ∅ ⊆ A, ∀A 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 8/17 Tập bằng nhau  Hai tập hợp A và B được gọi là bằng nhau (A = B) khi A ⊆ B và B ⊆ A  Ví dụ :  { 1, 2, 3, 4 } = { 2, 1, 4, 3 }  {1, 2, 3, 4 } ≠ { 2, 1, 3, 5 } 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 9/17 Tập lũy thừa  Tập hợp tất cả các tập con của tập A được gọi là tập lũy thừa (power set) của A, ký hiệu: 2A.  Ví dụ : Giả sử A = { 1, 2, 3 }  Thì 2A = { ∅, 1, 2, 3, (1,2), (2,3), (3,1), (1,2,3) } 2/11/2014 4 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 10/17 Phép toán 1. Phép hợp A ∪ B = {x | x ∈A hoặc x ∈B} 2. Phép giao A ∩ B = {x | x ∈A và x ∈B} 3. Phép trừ A \ B = {x | x ∈A nhưng x ∉B} 4. Tích Đecac A × B = {(a,b) | a ∈A và b∈B} 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 11/17 Ví dụ Cho tập A = {1, 2} và B = {2, 3} 1. A ∪ B = {1, 2, 3} 2. A ∩ B = {2} 3. A \ B = {1} 4. A × B = {(1, 2 ), (1, 3), (2, 2), (2, 3)} 5. 2A = {∅, {1}, {2}, {1, 2}} 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 12/17 II. Quan hệ  Quan hệ 2 ngôi từ tập A đến tập B là một tập con của tập tích đề các A × B.  Lưu ý: không nhất 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" trên S được xác định bởi tập L = {(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)}  Quan hệ "bằng nhau" trên S được xác định bởi tập: E = {(0, 0), (1, 1), (2, 2), (3, 3)} 2/11/2014 5 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 13/17 Tính chất 1. Phản xạ : nếu aRa là đúng ∀a ∈S 2. Đối xứng : nếu aRb thì bRa 3. Bắc cầu : nếu aRb và bRc thì aRc 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 14/17 Quan hệ tương đương  Một quan hệ R trên tập S có đủ các tính chất phản xạ, đối xứng và bắc cầu được gọi là quan hệ tương đương. Ví dụ: Cho tập S = { 0, 1, 2, 3} Quan hệ "bằng nhau" trên S E = {(0, 0), (1, 1), (2, 2), (3, 3)} 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 15/17 III. Đồ thị và cây  Đồ thị G = (V, E), bao gồm một tập hữu hạn các đỉnh V (còn gọi là nút) và một tập các cạnh E nối giữa 2 nút. Ví dụ V = {1, 2, 3, 4, 5} E = {(n, m) | n + m = 4 hoặc n + m = 7} 1 4 3 2 5 2/11/2014 6 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 16/17 Đồ thị có hướng  Là đồ thị mà có sự phân biệt đỉnh nào là đỉnh đầu, đỉnh nào là đỉnh cuối trong một cạnh(cung) Ví dụ: G = ( {1, 2, 3, 4 }, V ={ i → j | i < j } ) 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 17/17 Cây  Cây là một đồ thị có hướng với các tính chất sau : 1. Có một nút đỉnh gọi là nút gốc 2. Mỗi nút còn lại đều được dẫn ra từ một nút cha ở trên nó : - Các nút có dẫn ra nút con sau nó được gọi là nút trung gian hay nút trong. - Các nút không dẫn ra nút con gọi là nút lá. 3. Thứ tự duyệt trên cây là từ trái sang phải. 2/11/2014 Lý thuyết ngôn ngữ - Chương 0 Trang 18/17 Ví dụ Cây minh họa cấu trúc cú pháp của một câu đơn trong ngôn ngữ tiếng Việt "An là sinh viên giỏi" 2/11/2014 1 Chương I Ngôn ngữ hình thức và văn phạm 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 2/20 Nội dung I. Tổng quan về ngôn ngữ II. Biểu diễn ngôn ngữ III. Văn phạm và sự phân loại văn phạm 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 3/20 1.1. Các khái niệm cơ bản về ngôn ngữ a. Bảng chữ cái(alphabet) là một tập hữu hạn hoặc vô hạn các ký hiệu. Ví dụ - Bộ chữ cái 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) là một dãy các ký hiệu thuộc bảng chữ cái Ví dụ : 0, 1011, 00010, ... là các từ trên bộ chữ cái Σ = {0, 1} c. Độ dài của một từ w, ký hiệu |w| là số các ký hiệu tạo thành từ w. Ví dụ Từ abca có độ dài là 4 , ký hiệu : |abca| = 4 2/11/2014 2 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 4/20 1.1. Các khái niệm cơ bản về ngôn ngữ d. Chuỗi rỗng (ký hiệu ε) là chuỗi không có ký hiệu nào, vì vậy | ε | = 0. e. Chuỗi con chuỗi v được gọi là chuỗi con của w nếu v được tạo bởi các ký hiệu liền kề nhau trong chuỗi w. Ví dụ : Chuỗi 10 là chuỗi con của chuỗi 010001 f. Tiền tố của một chuỗi là một chuỗi con bất kỳ nằm ở đầu chuỗi g. Hậu tố của một chuỗi là chuỗi con nằm ở cuối chuỗi. Ví dụ: Chuỗi abc có các tiền tố là a, ab, abc và các hậu tố là c, bc, abc 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 5/20 1.1. Các khái niệm cơ bản về ngôn ngữ h. Chuỗi nối kết (ghép) từ hai chuỗi con là một chuỗi tạo được bằng cách viết chuỗi thứ nhất sau đó là chuỗi thứ hai (không có khoảng trống ở giữa). Vd: Nối kết chuỗi Long và Int là chuỗi LongInt. ta có εw = wε = w với mọi chuỗi w. i. Chuỗi đảo ngược của chuỗi w, ký hiệu wR là chuỗi w được viết theo thứ tự ngược lại. w = a1 a2 ... an --> w R = 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 6/20 1.2. Ngôn ngữ (Language) a. Định nghĩa: một ngôn ngữ (hình thức) L là một tập hợp các chuỗi của một bộ chữ cái Σ nào đó. b. 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ữ. c. Tập Σ* = Tập hợp tất cả các chuỗi (từ) kể cả chuỗi rỗng trên bộ chữ cái cố định Σ. d. Tập Σ+ = Σ* - {ε} Vd : Σ = {0, 1} thì Σ* = {ε, 0, 1, 00, 01, 10, 11, 000, ...} Σ+ = {0, 1, 00, 01, 10, 11, 000, ...} 2/11/2014 3 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 7/20 • 1. Cho Σ = {a, c,}. Hãy mô tả tập Σ* ? • 2. Cho Σ = {a, c,}. Hãy mô tả tập Σ+ ? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 8/20 1.3. Các phép toán trê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ù của một ngôn ngữ L trên bộ chữ cái Σ được định nghĩa như sau : 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 9/20 1.3. Các phép toán trên ngôn ngữ d. Phép nối kết của hai ngôn ngữ L1 trên bộ chữ cái Σ1 và L2 trên bộ chữ cái Σ2 được định nghĩa bởi : L1L2 = {w1w2 | w1∈ L1 và w2 ∈ L2 } trên bộ chữ cái Σ1 ∪ Σ2 Ví dụ: L1 = {a,b}; L2 = {c,d} thì L1 L2 = {ac,ad,bc,bd} Ta viết L0 = {ε} ; L1 = L ; L2 = LL hay tổng quát Li = LLi - 1 với i > 0. L0 ={ε}, với mọi ngôn ngữ L e. Phép bao đóng của ngôn ngữ L ký hiệu L* L* = L0 ∪ L1 ∪ L2 ∪ L3 ∪ L4 … . 2/11/2014 4 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 10/20 1.3. Các phép toán trê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 } thì 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 11/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 12/20 II. Biểu diễn ngôn ngữ  Một ngôn ngữ L trên một bộ chữ cái Σ là một tập con của tập Σ*.  Ngôn ngữ hữu hạn biểu diễn bằng cách liệt kê tất cả các chuỗi thuộc vào chúng.  Ví dụ: L1 = {ε}, L2 = { a, ba, aaba, bbbbb }  Ngôn ngữ vô hạn không thể liệt kê tất cả các chuỗi thuộc ngôn ngữ được  Trong trường hợp đơn giản thì ngôn ngữ được biểu diễn thông qua một phát biểu hay một tân từ.  Ví dụ: L3 = { ai  i là một số nguyên tố }  L4 = { ai bj  i ≥ j ≥ 0 } 2/11/2014 5 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 13/20  Văn phạm là cơ chế cho phép sản sinh ra mọi chuỗi của ngôn ngữ.  Automata là cơ chế cho phép đoán nhận một chuỗi bất kỳ có thuộc ngôn ngữ hay không. Cách biểu diễn ngôn ngữ tổng quát 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 14/20 III. Văn phạm và sự phân lớp văn phạm Văn phạm là một tập các quy tắc về cấu tạo từ và các quy tắc về cách thức liên kết các từ thành câu. Định nghĩa toán học của văn phạm : Văn phạm G là một hệ thống gồm bốn thành phần xác định như sau: G = (Σ, ∆, P, S)  Σ : tập hợp các ký hiệu kết thúc (terminal)  ∆ : tập hợp các biến (variables) hay các ký hiệu chưa kết thúc (non terminal) (với Σ ∩ ∆ = ∅)  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 ∈ (Σ ∪ ∆)*.  S ⊂ ∆ : ký hiệu chưa kết thúc dùng làm ký hiệu bắt đầu (start) 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 15/20 Ví dụ Văn phạm G = (Σ, ∆, P, S) • ∆ = {S, B, C}, • Σ = {a, b, c} • P = {S → aSBC, S → aBC, CB → BC, aB →ab, bB → bb, bC → bc, cC → cc } Quy ước • Các chữ cái Latinh viết hoa (A, B, C, ...) thường dùng để biểu diễn các ký hiệu chưa kết thúc trong tập biến ∆. • Các chữ cái Latinh viết thường (a, b, c, ...) thường dùng để biểu diễn các ký hiệu kết thúc thuộc tập Σ. 2/11/2014 6 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 16/20 • P:{S->abA, A->aA|a, B->bB|Bc, AB->abC} 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 17/20 Dẫn xuất  Từ văn phạm, để sinh ra được các chuỗi (từ), ta định nghĩa khái niệm “dẫn xuất” như sau :  Nếu α → β là một luật sinh thì γ α δ ⇒ γ β δ gọi là một dẫn xuất trực tiếp, có nghĩa là áp dụng luật sinh α → β vào chuỗi γ α δ để sinh ra chuỗi γ β δ.  Nếu các chuỗi α1, α2, ...., αm ∈ Σ* và α1⇒ α2, α2⇒ α3, ..., αm-1 ⇒ αm thì ta nói αm có thể được dẫn ra từ α1 thông qua chuỗi dẫn xuất α1⇒ α2, α2⇒ α3, ..., αm-1 ⇒ αm hay α1 dẫn xuất (gián tiếp) ra αm, viết tắt là α1⇒* αm 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 18/20 • Bai 1: Cho văn phạm với tập luật sinh P được xác định như sau: • P = {S → abA | aA | ab; A → bAS | b} • 1. Xây dựng thành phần Σ và ∆ của văn phạm. • 2. Đưa ra dẫn xuất của văn phạm để sinh chuỗi abbbab. 2/11/2014 7 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 19/20 Ví dụ Xét văn phạm G = (Σ, ∆, P, S)  ∆ = {S, A},  Σ = {a, b}  P = { S → aS, S → aA, A → bA, A → b } Một dẫn xuất từ S có dạng :  S ⇒ aS ⇒ aaS ⇒ aaaA ⇒ aaabA ⇒ aaabbA ⇒ aaabbbA ⇒ aaabbbb = a3 b4  Văn phạm này 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 20/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ữ: G1 tương đương G2 ⇔ L (G1) = L (G2) 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 21/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 - 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). 2/11/2014 8 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 22/20 • Cho văn phạm với tập luật sinh: P = {S → a | aA; A → aS | bB | cC; C → cA} • 1. Văn phạm trên là văn phạm gì? • 2. Chuỗi abab 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 23/20 Phân loại văn phạm theo Chomsky 3. Văn phạm loại 2  Là văn phạm mà mọi luật sinh có dạng A → α với A là một biến đơn (A ∈ ∆) và α ∈ (Σ ∪ ∆)* - 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) 4. Văn phạm loại 3  Là văn phạm mà mọi luật sinh dạng A → aB hoặc A → a với A, B là các biến đơn thuộc ∆, a là ký hiệu kết thúc thuộc Σ - 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). 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 24/20 Ví dụ Xác định loại của các văn phạm sau? a. Xét văn phạm G = {Σ, ∆, P, S} ∆ = {S, B, C}, Σ = {a, b, c} và tập P = {S → aSBC, S → aBC, CB → BC, aB →ab, bB → bb, bC → bc, cC → cc } b. Xét văn phạm G = {Σ, ∆, P, S} ∆ = {S}, Σ = {a, b} và tập P = {S → aSb, S → ab } c. Xét văn phạm G = {Σ, ∆, P, S} ∆ = {S, A}, Σ = {a, b} và tập P = { S → aS, S → aA, A → bA A → b } 2/11/2014 9 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 25/20 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 26/20 BÀI TẬP Bài 1: Xét văn phạm G : ∆ = {S, A}, Σ = {a, b} và tập P = { S -> aS| aA; A -> bA| b}. - Xác định văn phạm loại mấy? - Xây dựng dẫn xuất sinh ra chuỗi aaabb? Bài 2: Xét văn phạm G : ∆ = {S}, Σ = {a, b} và tập P = { S > aSb; S > ab } - Xác định văn phạm loại mấy? - Xây dựng dẫn xuất sinh ra chuỗi aaaabbbb ? 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 27/20 Bài 3: Xét văn phạm G : ∆ = {S, B, C}, Σ = {a, b, c} và tập P = { S -> aSBC| aBC; CB -> BC; aB -> ab; bB -> bb; bC -> bc; cC -> cc } - Xây dựng dẫn xuất sinh ra chuỗi aabbcc ? - Xác định L(G)? 2/11/2014 10 2/11/2014 Lý thuyết ngôn ngữ - Chương I Trang 28/20 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 29/20 Bài 5 1. Cho ngôn ngữ L = {a,b}, tính L3. 2. Tìm chuỗi đảo ngược của chuỗi dcab. 2/11/2014 1 Chương II ÔTÔMÁT HỮU HẠN VÀ BIỂU THỨC CHÍNH QUY 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 2/44  Ôtômát hữu hạn đơn định (DFA)  Ôtômát hữu hạn không đơn định (NFA)  Sự tương đương giữa DFA và NFA  NFA với ε-dịch chuyển (NFAε)  Sự tương đương giữa NFAε và NFA  Biểu thức chính qui  Sự tương đương giữa biểu thức chính qui và NFAε Nội dung 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 3/44 GIỚI THIỆU  Automata là cơ chế cho phép đoán nhận ngôn ngữ. Với một chuỗi bất kỳ, sau một số bước làm việc, ôtômát sẽ cho câu trả lời chuỗi đó có thuộc ngôn ngữ hay không.  Mỗi bước làm việc của Automata là một sự thay thế ký hiệu, nghĩa là một bước dẫn xuất như ở trong văn phạm. 2/11/2014 2 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 4/44 Mô hình cơ chế ôtômát  Chuỗi nhập cần xác định sẽ được lưu trữ trên băng input. 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 5/44 Phân loại các ôtômát  Phân loại dựa theo hoạt động của ôtômát  Ôtômát đơn định DA (Deterministic Automata) : tại mỗi bước chuyển, nó chỉ có một khả năng duy nhất. Sự duy nhất này thể hiện tính đơn định.  Ôtômát không đơn định NDA (Non - deterministic Automata) tại mỗi bước di chuyển, nó có một vài khả năng để chọn lựa. Sự chọn lựa này thể hiện tính không đơn định. 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 6/44 Ôtômát hữu hạn (FA : Finite Automata)  Tại mỗi thời điểm, hệ thống có số trạng thái là hữu hạn  Mỗi trạng thái của hệ thống tại mỗi thời điểm sẽ thay đổi tùy thuộc vào INPUT  Ôtômát hữu hạn (FA) được chia thành 2 loại: đơn định (DFA) và không đơn định (NFA). 2/11/2014 3 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 7/44 I. Ôtômát hữu hạn đơn định - DFA (Deterministic Finite Automata) Ôtômát hữu hạn đơn định là bộ gồm năm thành phần (Q, Σ, δ, q0, F), trong đó :  Q là tập hợp hữu hạn các trạng thái.  Σ là bộ chữ cái hữu hạn.  δ 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.  q0 ∈ Q là trạng thái khởi đầu  F ⊆ Q là tập các trạng thái kết thúc 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 8/44 Sơ đồ chuyển (transition diagram) Một đồ thị có hướng, gọi là sơ đồ chuyển tương ứng với một DFA như sau:  Các đỉnh của đồ thị là các trạng thái của DFA.  Nếu có một đường chuyển từ trạng thái q đến trạng thái p trên input a thì có một cung nhãn a từ đỉnh q đến đỉnh p trong sơ đồ chuyển.  Trạng thái khởi đầu q0 nhãn "Start".  Các trạng thái kết thúc trong F được chỉ ra bằng hai vòng tròn. 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 9/44 Ngôn ngữ được chấp nhận bởi DFA  Một chuỗi x được chấp nhận bởi ôtômát hữu hạn M (Q, Σ, δ, q0, F) nếu δ(q0, x) = p với p ∈ F.  Ngôn ngữ được chấp nhận bởi M L(M) = { x | δ (q0, x) ∈ F } 2/11/2014 4 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 10/44 Cơ chế hoạt động của DFA Cho xâu vào ω = x1 x2 x3 ... xn ∈ ∑*. Ta mô tả hoạt động của ôtômát như sau: ω = x1 x2 ... xn-1 xn ↑ qo → ......... Khi bắt đầu làm việc máy ở trạng thái đầu qo và đầu đọc đang nhìn vào ô có ký hiệu x1. Tiếp theo từ trạng thái qo dưới tác động của ký hiệu vào x1 máy chuyển sang trạng thái mới δ (qo, x1) = q1 ∈ Q và đầu đọc chuyển sang phải một ô, tức nhìn vào ký hiệu x2 ω = x1 x2 x3 .... xn-1 xn ↑ ↑ q0 →q1 → 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 11/44 Sau đó, ôtômát lại tiếp tục chuyển từ trạng thái q1 dưới tác động của x2 về trạng thái mới q2 = δ(q1, x2) = δ(δ(qo, x1), x2) = δ(qo, x1 x2) ∈ Q Quá trình đó sẽ tiếp tục cho tới khi đầu đọc nhìn vào ký hiệu xn với trạng thái của máy là qn-1 = δ (qn-2, xn-1) = δ (q0, x1x2 ... xn-1) ∈ Q. x1 x2 ... xn-1 xn ↑ ↑ ↑ ↑ qo → q1 .... qn-2 → qn-1 → qn Hàm chuyển lại đưa máy từ trạng thái qn-1 dưới tác động của xn về trạng thái : qn = δ(qn-1, xn) = δ(qo, x1 ... xn) ∈ Q. Khi đó ôtômát dừng lại. Nếu qn∈F thì ta nói rằng Cơ chế hoạt động của DFA 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 12/44 Ví dụ 1 Kiểm tra chuỗi 110101 Vẽ sơ đồ chuyển Kiểm tra chuỗi 1101? VD. Cho DFA: với Q = {q0, q1, q2, q3}, Σ = {0, 1}, F = {q0} và hàm chuyển δ như sau: 2/11/2014 5 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 13/44 Ví dụ 2 Cho ôtô mát đơn định M = với ∑={0,1}, Q={qo, q1, q2, q3}, qo là trạng thái ban đầu, còn F = {q3} là tập hợp trạng thái kết thúc. Hàm chuyển trạng thái được cho trong bảng sau Trạng thái Ký hiệu vào 0 1 qo q1 q2 q3 q1 q2 q3 qo q0 q3 q3 q3 Xét các xâu ω1 = 10110, ω2 = 110, ω3 = 10011. 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 14/44 Giải thuật mô phỏng hoạt động của một DFA 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 15/44 Nhận xét  Tập Q của DFA thể hiện các trạng thái lưu trữ của ôtômát trong quá trình đoán nhận ngôn ngữ, và như vậy khả năng lưu trữ của ôtômát là hữu hạn.  Hàm chuyển δ là hàm toàn phần và đơn trị, cho nên các bước chuyển của ôtômát luôn luôn được xác định một cách duy nhất.  Chính vì hai đặc điểm này mà DFA mô tả như trên được gọi là ôtômát hữu hạn đơn định. 2/11/2014 6 2/11/2014 Lý thuyết ngôn ngữ - Chương II Trang 16/44 II.Ôtômát hữu hạn không đơn định
Tài liệu liên quan