Lý thuyết Automat hữu hạn Nội dung: 1. Automat hữu hạn (finite automata) 2. Automat hữu hạn đơn định (deterministic finite automata) 3. Automat hữu hạn không đơn định (nondeterministic finite automata) 4. Automat hữu hạn và ngôn ngữ chính quy
CHƢƠNG AUTOMAT HỮU HẠN Finite Automata LOGO Nội dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy Nội dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy Automat hữu hạn Một mơ hình trừu tượng máy tính thực cơng việc cách tự động bao gồm thành phần: Automat hữu hạn Thiết bị đầu vào (Input file) Nơi mà chuỗi nhập (input string) ghi lên, automat đọc không thay đổi nội dung Automat hữu hạn Đầu đọc/ Cơ cấu nhập Bộ phận đọc input file từ trái qua phải Đọc ký tự thời điểm Automat hữu hạn Đơn vị điều khiển (control unit) Mỗi automat có đơn vị điều khiển Từ trạng thái chuyển sang trạng thái Automat hữu hạn Hoạt động khung thời gian rời rạc Tại thời điểm, đơn vị điều khiển trạng thái nội (internal state) đó, đầu đọc quét ký tự input file Tại thời điểm kế tiếp, đơn vị điều khiển trạng thái (next state) Việc xác định trạng thái nhờ vào hàm chuyển trạng thái (transition function) Nội dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy Automat hữu hạn đơn định Định nghĩa Hoạt động Đồ thị chuyển trạng thái (transition graph) Ngôn ngữ chấp nhận DFA 10 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA Hàm chuyển trạng thái mở rộng a, qQ, xét: *(q, a) = ? * q, a q, a 49 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA Hàm chuyển trạng thái mở rộng Ví dụ: Xét NFA M sau: 0, 1 q0 q2 *(q0, 1101) = ? 50 q1 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận bở NFA 0, 1 q0 q2 q1 *(q0, 1) = (q0 , 1)= {q0, q1} *(q0, 01) = (q0, 0) (q1, 0) = {q0} = {q0} *(q0, 101) = (q0, 1) = {q0, q1} *(q0, 1101) = (q0, 1) (q1, 1) = {q0, q1} {q2} = {q0, q1, q2} 51 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA Cho NFA M = (Q, , , q0, F) chuỗi w Ta nói M chấp nhận w *(q0, w) F Tập hợp tất chuỗi chấp nhận M gọi ngôn ngữ chấp nhận M, ký hiệu L(M) L M w / * 52 * q0 , w F Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA Định lý: Nếu M = (Q, , , q0, F) NFA chấp nhận ngơn ngữ L tồn DFA M1 = (Q1, , 1, p0, F1) chấp nhận L Trong đó: Q1 P (Q ) p0 {q } F1 {p Q1 | p F } 1 (p,a) = (r , a) r p 53 Automat hữu hạn không đơn định – Ngơn ngữ chấp nhận NFA Ví dụ: Cho M = (Q, , , q0, F) NFA Q = {q0, q1, q2, q3} = {0, 1} F = {q0} q (q,0) (q,1) q0 {q0} {q0, q1} q1 {q2} {q2} q2 {q3} {q3} q3 Đồ thị chuyển trạng thái? Ngôn ngữ chấp nhận NFA Tìm DFA chấp nhận ngơn ngữ 54 Automat hữu hạn không đơn định – Ngơn ngữ chấp nhận NFA Ví dụ: Cho M = (Q, , , q0, F) NFA Q = {q0, q1, q2, q3} = {0, 1} F = {q0} q (q,0) (q,1) q0 {q0} {q0, q1} q1 {q2} {q2} q2 {q3} {q3} q3 Đồ thị chuyển trạng thái? 55 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA Ví dụ: Cho M = (Q, , , q0, F) NFA Q = {q0, q1, q2, q3} = {0, 1} F = {q0} q (q,0) (q,1) q0 {q0} {q0, q1} q1 {q2} {q2} q2 {q3} {q3} q3 Ngôn ngữ chấp nhận NFA L(M) = {0,1}*{1}*{0,1}2 56 Automat hữu hạn không đơn định – Ngơn ngữ chấp nhận NFA Ví dụ: Cho M = (Q, , , q0, F) NFA Q = {q0, q1, q2, q3} = {0, 1} F = {q0} q (q,0) (q,1) q0 {q0} {q0, q1} q1 {q2} {q2} q2 {q3} {q3} q3 Tìm DFA chấp nhận ngơn ngữ 57 Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA DFA M1 = (Q1, , 1, p0, F1) p0 = {q0} p1 = {q0, q1} p3 = {q0, q3} p4 = {q0, q1, q2} p5 = {q0, q1, q3} p6 = {q0, q2, q3} p7 = Q F = {p3 ,p5 , p6 , p7} 58 p2 = {q0, q2} Automat hữu hạn không đơn định – Ngôn ngữ chấp nhận NFA DFA M1 = (Q1, , 1, p0, F1) p 1(p,0) 1(p,1) P0 p0 p1 P1 p2 p4 P2 p3 p5 P3 p0 p1 P4 p6 p7 P5 p2 p4 p6 p3 p5 p7 p6 p7 59 Next Seminar lần Nhóm - NFA với chuyển trạng thái Nhóm 10 - So sánh DFA NFA 60 Nội dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy 61 Automat hữu hạn ngơn ngữ quy Định lý Kleene Mọi ngơn ngữ qui chấp nhận automat hữu hạn Định lý Kleene Mọi ngôn ngữ chấp nhận automat hữu hạn ngơn ngữ qui 62 Next Seminar lần Nhóm - Text Search (Chapter2.4/68 – Introduction to AutomataTheory, Languages and Computation) Nhóm 4- Văn phạm phi ngữ cảnh & ngôn ngữ phi ngữ cảnh (5.1) Nhóm 8– Cây suy dẫn tượng nhập nhằng (5.2) 63 ... dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngôn ngữ quy Automat. .. dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy Automat. .. dung Automat hữu hạn (finite automata) Automat hữu hạn đơn định (deterministic finite automata) Automat hữu hạn không đơn định (nondeterministic finite automata) Automat hữu hạn ngơn ngữ quy 35 Automat