1 Chương 3 VĂN PHẠM CHÍNH QUY VÀ ÔTÔMÁT HỮU HẠN 2 Nội dung 1 Ôtômát hữu hạn đơn định DFA 2 Ôtômát hữu hạn không đơn định NFA 3 Sự tương đương của NFA và DFA 4 Mối liên quan giữa VPCQ và OH 5 OHD không[.]
Nội dung Chương 3: VĂN PHẠM CHÍNH QUY VÀ ƠTƠMÁT HỮU HẠN Ơ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 NFA DFA Mối liên quan VPCQ OH OHD khơng xuất phát lại Các tính chất đóng ngơn ngữ quy Định lý KLEENE Biểu thức quy Thuật tốn Thampson Ơtơmát hữu hạn đơn định – DFA (Deterministic Finite Automata) Input : w * Mơ tả phi hình thức: Ơtơmát hữu hạn “máy” đốn nhận chuỗi, làm việc sau: Băng từ chia thành nhiều ô Mỗi ô có khả lưu trữ ký hiệu chuỗi nhập (chuỗi cần đoán nhận w є *) Có đầu đọc, thời điểm quan sát băng từ Có điều khiển Q gồm tập hợp hữu hạn trạng thái; thời điểm có trạng thái hành gọi trạng thái nội 1 0 1 1 Băng từ sức chứa vô hạn Output : Yes, w L No, w L Tùy theo cấu hình gồm (trạng thái thời điều khiển ký hiệu ô mà đầu đọc quan sát được), mà Ơtơmát chuyển sang trạng thái mới, đồng thời đầu đọc dịch chuyển sang phải ô Quy luật chuyển sang trạng thái mới, cho hàm, gọi hàm chuyển trạng thái : Q x Q q Bộ điều khiển Trong Q có phân biệt q0 Q, gọi trạng thái đầu tập hợp F chứa trạng thái kết thúc Ta nói ơtơmát đốn nhận (hay thừa nhận) chuỗi vào w *, xuất phát từ q0, đầu đọc nhìn vào ký hiệu bên trái w, sau số bước hữu hạn làm việc, đọc xong chuỗi w rơi vào trạng thái kết thúc Tập hợp chuỗi (được đốn nhận Ơtơmát) hợp thành ngơn ngữ đốn nhận ơtơmát Do Q hữu hạn hàm chuyển hàm toàn phần đơn trị, bước chuyển Ơtơmát xác định cách Chính mà Ơtơmát mơ tả gọi ôtômát hữu hạn đơn định Định nghĩa hình thức: Một ơtơmát hữu hạn đơn định (viết tắt ÔHĐ) hệ thống M = (, Q, , q0, F) đó: chữ hữu hạn, gọi chữ vào Q tập hữu hạn trạng thái, Q = : Q x Q, gọi hàm chuyển q0 Q trạng thái đầu F Q tập trạng thái cuối Biểu diễn hàm chuyển trạng Ví dụ 3.1: Xét Ơtơmát hữu hạn đơn định M(,Q, ,q0,F) đó: = {0, 1} Q = {q0, q1, q2, q3} F = {q0} Hàm cho ma trận sau: Có cách biểu diễn hàm chuyển (hàm chuyển trạng thái): Theo định nghĩa (qi,a)=qj Theo bảng truyền Ký hiệu vào Trạng thái q0 q2 q1 q1 q3 q0 q2 q0 q3 q3 q1 q2 Theo đồ thị Biểu đồ chuyển cho Ơtơmát hữu hạn nói (Ví dụ 3.1) sau: Để cho dễ hình dung hơn, ta thường biểu diễn hàm chuyển dạng đồ thị định hướng, gọi biểu đồ chuyển sau: q1 Mỗi nút tương ứng với trạng thái q1 Nút đầu trỏ mũi tên có chữ “Bắt đầu” Bắt đầu Nút cuối khoanh hai vòng tròn q0 Nếu (q, a) = p có cung từ nút q tới nút p, cung mang nhãn a Đầu q0 0 a 0 q3 q2 q q1 1 p Tính chất hàm chuyển trạng 10 Định nghĩa tập đoán nhận (M) Ký hiệu T(M) T(M) = { w | w * , (q0,w) = qf F } Ví dụ: w1 = 1010 w2 = 11001001 W = 110101 (q,)=q (q,wa)= ((q,w),a) (q,aw)= ((q,a),w), w * a (q,xy)= ((q,x),y), x,y * 11 12 Q trình đốn nhận chuỗi vào Cho chuỗi w= 110101 Q trình đốn nhận chuỗi vào diễn tả bước chuyển sau: Ta gọi hình trạng ƠHĐ chuỗi có dạng qx với q Q x * VD: q0w3 = q0 110101 hình trạng (M) 110101 q0 Quá trình đốn nhận chuỗi ƠHĐ q trình biến đổi hình trạng, thực chất trình “viết lại” chuỗi VD: Viết q trình đốn nhận chuỗi x = 110101 110101 q1 110101 q0 110101 110101 q2 q3 110101 q1 q0 F Vì q0F, chuỗi vào w=110101 thừa nhận Ơtơmat Nhận xét trạng thái M ghi nhớ tình trạng định phần chuỗi vào đọc sau: q0: phần đọc chứa số chẵn số số chẵn số q1: phần đọc chứa số chẵn số số lẻ số 14 13 Ngơn ngữ đốn nhận (thừa nhận) M Tập chuỗi ôtômát thừa nhận Ngôn ngữ đoán nhận (hay thừa nhận) M là: L(M) = {w| w * q0w * p với p F} Trở lại ví dụ 3.1, hệ viết lại ngầm định gồm sản xuất sau: q2: phần đọc chứa số lẻ số số chẵn số q3: phần đọc chứa số lẻ số số lẻ số Mỗi lần đọc thêm ký hiệu hay 1, hàm luôn chuyển trạng thái ôtômát tình trạng Vì F = {q0}, chuỗi M thừa nhận chuỗi có chứa số chẵn số số chẵn số q0 q2 q1 q3 q2 q0 q3 q1 q0 q1 q11 q0 q2 q3 q3 q2 Q trình đốn nhận chuỗi w = 110101 là: q0110101 q110101 q00101 q2101 q301 q11 q0 F Có cách viết khác (thường thấy sách khác): (q0,110101)=(q1,10101)=(q0,0101)=(q2,101)=(q3,01)= (q1, 1) = q0 F 15 16 Ơtơmát hữu hạn khơng đơn định – NFA (Nondeterministic Finite Automata) Ơtơmát hữu hạn khơng đơn định (tt) Dễ dàng mở rộng mơ hình ƠHĐ hệ viết lại ngầm định Ơtơmát hệ viết lại khơng đơn định, tức chứa sản xuất có vế trái Định nghĩa: Ta gọi Ơtơmát hữu hạn khơng đơn định (hay khơng tiền định) viết tắt ÔHK, hệ thống: M = {, Q, , q0, F} Trong đó: , Q, q0, F tương tự OHĐ Chỉ hàm đổi lại: : Q x 2Q Hệ viết lại W = (V, P) ngầm định M có V = Q Tập đốn nhận Ơtơmat T(M) = {w | w * q0w * qf với qf F} Ngơn ngữ đốn nhận M là: L(M) = {w | w * q0w * qf với qf F} Chuỗi vào w (M) thừa nhận tồn trình dẫn xuất q0w * qf với qf F Ví dụ 3.2: Xét ƠHK M = ({0,1}, {q0, q1, q2, q3, q4}, , q0, {q2, q4}) với hàm chuyển cho sau: 17 Ơtơmát hữu hạn không đơn định (tt) q0 {q0, q3} {q0, q1} q1 {q2} q2 {q2} {q2} q3 {q4} q4 {q4} {q4} Ơtơmát hữu hạn khơng đơn định (tt) 0, Đầu q0 0, q3 Nếu xét tất trình, ta có “cây” sau: q4 q001001 q2 q01001 q0001 q31001 q1 18 q1001 q001 q0 q301 q3 q0 q4 0, q1 q4 F Như chuỗi 01001 thừa nhận M Dễ thấy ÔHK thừa nhận chuỗi {0, 1} có chứa hai liên tiếp có chứa hai liên tiếp L (M) = { w00w, w11w | w * ={0,1}*} Sau q trình đốn nhận chuỗi vào 01001, dẫn tới trạng thái cuối q4: q001001 q01001 q0001 q301 q41 q4 F Đây q trình đốn nhận nhiều q trình 19 20 Sự tương đương ÔHĐ ÔHK Sự tương đương ƠHĐ ƠHK (tt) • Theo định nghĩa ÔHĐ ÔHK, cho nên: L(ÔHĐ) L(ÔHK) (1) Định lý 3.1: Nếu L ngơn ngữ đốn nhận ƠHK, có ƠHĐ đốn nhận L Nói cách khác L(ÔHK) L(ÔHĐ) (2) Giải thuật: Input: M = (, Q, , q0, F) ƠHK đốn nhận L Output: M’ = (, Q’, ’, q0’, F’) OHĐ cho L(M’)=L(M) B1: Đặt M’ = (, Q’, ’, q0’, F’), đó: • Q’ = 2Q • F’ tập trạng thái Q’ có chứa trạng thái cuối M • Mỗi phần tử Q’ ký hiệu tập hợp {q1, q2, …, qk}, với q1, q2, …, q0 Q Trạng thái đầu q0’ = {q0} B2: Hàm chuyển ’ M’ thành lập theo công thức: ’({q1, q2, …, qk}, a) = (qi , a) B3: Vẽ đồ thị chuyển trạng thái B4: Kết luận M’ thích rõ phần Ơtơmát Với cách thành lập M’ ta hồn tồn CM L(M) = L(M’) (Tham khảo sách “Ngơn ngữ hình thức” – Nguyễn Văn Ba, trang 32) 21 22 Sự tương đương ÔHĐ ÔHK (tt) Ví dụ 3.3: Cho M = ({0, 1}, {q0, q1, q2}, , q0, {q2}), ƠHK hàm chuyển trạng thái sau: • Kết luận : M’ =( , Q’, ’, {q0}, F’) OHĐ cần tìm Trong đó: (q0, 0) = {q0, q1} (q0, 1) = {q1} = Q’ = ’ (vẽ đồ thị Chú ý: cắt bỏ nhánh không xuất phát từ q0 xuất phát từ q0 không kết thúc được) q0 trạng thái bắt đầu F’ = (q1, 0) = {q2} (q1, 1) = (q2, 0) = {q2} (q2, 1) = {q2} Tìm OHĐ tương đương? 23 24 Sự tương đương ÔHĐ ÔHK (tt) Bổ đề 3.1: Lớp ngơn ngữ đốn nhận Ơtơmát hữu hạn đơn định (hay không đơn định) một, gọi lớp ngơn ngữ quy (viết tắt NNCQ) NNCQ sinh VPCQ nên VPCQ có mối quan hệ mật thiết với OH Nghĩa L(G)=L(M)=L NNCQ Thực 2Q thường có nhiều phần tử khơng thể truy đạt từ {q0}, nên chẳng cần đưa chúng vào Q’ Vậy để lập Q’, ta nên truy xuất từ {q0}, bước thêm dần trạng thái mới, trạng thái kết hàm chuyển thái áp dụng lên trạng thái có trước 25 26 Cho ôtômát hữu hạn đơn định xây dựng VPCQ Văn phạm quy Định lý 3.2: Nếu L NNCQ chữ , tồn VPCQ phải G cho L – {} = L(G) Định nghĩa VPCQ (nhắc lại): • Một văn phạm quy phải tập luật sinh dạng: A wB | w, với w * A, B • Một văn phạm quy trái tập luật sinh dạng: A Bw |w, với w * A, B • Các văn phạm quy phải trái gọi chung văn phạm quy (viết tắt VPCQ) • Ngơn ngữ sinh VPCQ gọi NNCQ Giải thuật: (xây xựng VPCQ phải từ ôtômát hữu hạn đơn định) Input: L = L(M) với M = (, Q, , q0, F) ÔHĐ Output:Ta thành lập văn phạm G = (T, V, P, S) cho L(G)=L \ {} Input Output M = (, Q, , q0, F) G = (T, V, P, S) T= Q = {q0, q1, q2,….} V = {V0,V1,V2,…} (q0, a) = q1 (q1, a) = qf F a q0,q1 Q P= V0 aV1 V1 aVf | a q0 S kí hiệu bắt đầu P a T FQ 27 28 ... ta hoàn toàn CM L(M) = L(M’) (Tham khảo sách “Ngơn ngữ hình thức? ?? – Nguyễn Văn Ba, trang 32 ) 21 22 Sự tương đương ÔHĐ ÔHK (tt) Ví dụ 3. 3: Cho M = ({0, 1}, {q0, q1, q2}, , q0, {q2}), ƠHK hàm... đốn nhận chuỗi vào Cho chuỗi w= 110101 Q trình đốn nhận chuỗi vào diễn tả bước chuyển sau: Ta gọi hình trạng ƠHĐ chuỗi có dạng qx với q Q x * VD: q0w3 = q0 110101 hình trạng (M)... định phần chuỗi vào đọc sau: q0: phần đọc chứa số chẵn số số chẵn số q1: phần đọc chứa số chẵn số số lẻ số 14 13 Ngơn ngữ đốn nhận (thừa nhận) M Tập chuỗi ôtômát thừa nhận Ngơn ngữ đốn nhận