Bài giảng Lý thuyết tính toán: Bài 3 - Phạm Xuân Cường cung cấp cho học viên các kiến thức về ôtômat hữu hạn không đơn định; khái niệm; sự tương đương giữa NFA và DFA; định nghĩa hình thức; toán tử chính quy với NFA;... Mời các bạn cùng tham khảo chi tiết nội dung bài giảng!
LÝ THUYẾT TÍNH TỐN BÀI 3: ƠTƠMAT HỮU HẠN KHƠNG ĐƠN ĐỊNH Phạm Xuân Cường Khoa Công nghệ thông tin cuongpx@tlu.edu.vn Nội dung giảng Khái niệm Sự tương đương NFA DFA Định nghĩa hình thức Tốn tử quy với NFA Khái niệm Không đơn định Không đơn định: Ở thời điểm tồn vài lựa chọn cho trạng thái 0,1 0,1 start q1 q2 0, ε q3 q4 Không đơn định tổng qt hóa đơn định → Mọi Ơtơmat hữu hạn đơn định Ơtơmat hữu hạn khơng đơn định Thuật ngữ: • FSM (Finite State Machine) = DFA (Deterministic Finite State Automaton) → Ơtơmat hữu hạn đơn định • NFA (Nondeterministic Finite State Automaton) → Ơtơmat hữu hạn khơng đơn định NFA hoạt động nào? a a b b ε b ε a Chọn đường nào? Cạnh epsilon: Có thể đến trạng thái sau mà khơng cần phải đọc thơng tin Ví dụ Cho NFA đốn nhận tất chuỗi mà chứa chuỗi 011110 sau: 0, 0, start a b c d e f g Đoán nhận chuỗi: 0100011110101 → Chấp thuận/Bác bỏ? NFA hoạt động nào? NFA chấp nhận xâu tồn đường đạt trạng thái chấp thuận Chấp thuận DFA Chấp thuận NFA Ví dụ NFA Cho NFA sau: 0,1 0,1 start a 0, ε b c d Hãy đoán nhận chuỗi: 010110 Sự tương đương NFA DFA Sự tương đương NFA DFA Định lý Mọi NFA biến đổi thành DFA tương đương Ví dụ: Đoán nhận tất chuỗi {0,1}* mà có chữ số vị trí thứ tính từ cuối lên 0,1 start a start b 0,1 a b c 0 c c NFA DFA Chứng minh tương đương NFA DFA • Q’ = P(Q) = 2Q Q = {A,B,C} ⇒ Q’ = {Ø,A,B,C,AB,AC,BC,ABC} • q’0 = {q0 } • F’ = {R ∈ Q’ | R chứa tất trạng thái chấp thuận } Q = {A,B,C } ⇒ Q’ = {Ø,A,B,C ,AB,AC ,BC ,ABC } • δ’(R,a) = {q | q ∈ Q q ∈ δ(r,a) r ∈ R } = δ(r,a) r ∈R a b 1 c bc abc DFA: δ(bc,1) = {abc} NFA: δ(b,1) = {b,c} δ(c,1) = {a,c} 12 Chứng minh tương đương NFA DFA Xét cạnh ε, ta định nghĩa bao đóng ε: E(R) = {q | q đến từ R việc di chuyển theo nhiều mũi tên ε} Ví dụ: a d ε b ε ε g ε h ε c e E(bce) = {b,c,d,e,g,h} 13 Chứng minh tương đương NFA DFA • Chỉnh sửa lại hàm chuyển đổi δ’(R,a) = {q | q ∈ Q q ∈ E(δ(r,a)) r ∈ R } • Chỉnh sửa lại trạng thái bắt đầu DFA q’0 = E({q0 }) → Kết thúc chứng minh 14 Ví dụ: Chuyển NFA thành DFA start ε b a, b a a M’ = (Q’,Σ’,δ’,q’0 ,F’) • Q = {1,2,3} ⇒ Q’ = {Ø,1,2,3,12,13,23,123} • Σ’ = {a,b} • q’0 = E({q0 }) = E(1) = {13} • F’ = {1,12,13,123} 15 Ví dụ: Chuyển NFA thành DFA • δ’: Trạng thái Σ’ Ø 12 13 23 123 a b Ø Ø 23 13 23 13 123 123 Ø Ø 23 23 16 Ví dụ: Chuyển NFA thành DFA a start 13 12 b a b b a a, b 23 a b b a, b Ø a b 123 a 17 Tốn tử quy với NFA Tốn tử quy (Nhắc lại) Giả sử A, B ngơn ngữ Ta có tốn tử quy sau: • Hợp (Union): A ∪ B = { x | x ∈ A x ∈ B } • Ghép tiếp (Concatenate): A ◦ B = { xy | x ∈ A y ∈ B } • Sao (Closure): A* = {x1 x2 xk | k ≥ xi ∈ A } Ví dụ: Giả sử ta có chữ Σ = {a,b,c, ,z} A = {aa, b}, B = {x, yy} A ∪ B = {aa, b, x, yy} A ◦ B = { aax, aayy, bx, byy} A* = {ε, aa, b, aaaa, aab, baa, bb, aaaaaa, aaaab, aabaa, aabb, } 18 Định lý Lớp ngôn ngữ quy đóng tốn tử hợp ⇔ Nếu A1 A2 ngơn ngữ quy A1 ∪ A2 ngơn ngữ quy 19 Chứng minh ĐL (chi tiết) • NFA N1 = (Q1 ,Σ,δ1 ,q1 ,F1 ) đốn nhận A1 • NFA N2 = (Q2 ,Σ,δ2 ,q2 ,F2 ) đoán nhận A2 • Xây dựng NFA N = (Q,Σ,δ,q0 ,F) đốn nhận A1 ∪ A2 Trong đó: - Q = Q1 ∪ Q2 ∪ {q0 } - q0 = Một trạng thái - F = {(r1 ,r2 ) | r1 ∈ F1 r2 ∈ F2 } = F1 ∪ F2 δ1 (q, a) q ∈ Q1 δ(q, a) = δ2 (q, a) {q1 , q2 } {} q ∈ Q2 q = q0 a = ε q = q0 a = ε 20 Định lý Lớp ngôn ngữ quy đóng tốn tử ghép tiếp ⇔ Nếu A1 A2 ngơn ngữ quy A1 ◦ A2 ngơn ngữ quy 21 Chứng minh ĐL (chi tiết) - Q = Q1 ∪ Q2 - q0 = q1 - F = F2 δ(q, a) = δ1 (q, a) q ∈ Q1 δ1 (q, a) ∪ {q2 } δ (q, a) q = F1 a = ε δ2 (q, a) q ∈ Q2 q = q0 a = ε 22 Định lý Lớp ngơn ngữ quy đóng tốn tử ⇔ Nếu A1 ngơn ngữ quy A1 * ngơn ngữ quy 23 Chứng minh ĐL (chi tiết) - Q = {q0 } ∪ Q1 - q0 = Một trạng thái - F = {q0 } ∪ F1 δ(q, a) = δ1 (q, a) δ (q, a) δ (q, a) ∪ {q1 } {q1 } {} q ∈ Q1 q ∈ F1 q ∈ F1 a = ε q ∈ F1 a = ε q = q0 a = ε q = q0 a = ε 24 Questions? 24 ... {1,2 ,3} ⇒ Q’ = {Ø,1,2 ,3, 12, 13, 23, 1 23} • Σ’ = {a,b} • q’0 = E({q0 }) = E(1) = { 13} • F’ = {1,12, 13, 1 23} 15 Ví dụ: Chuyển NFA thành DFA • δ’: Trạng thái Σ’ Ø 12 13 23 1 23 a b Ø Ø 23 13 23 13 1 23 1 23. .. (Q, Σε , δ, q0 , F) Trong đó: - Q: Tập trạng thái (hữu hạn) - Σε : Bộ chữ, tập hữu hạn ký tự - δ: Hàm dịch chuyển δ: Q x Σε → Q - q0 : Trạng thái bắt đầu (q0 ∈ Q) - F: Là tập trạng thái kết thúc... thái Σ’ Ø 12 13 23 1 23 a b Ø Ø 23 13 23 13 1 23 1 23 Ø Ø 23 23 16 Ví dụ: Chuyển NFA thành DFA a start 13 12 b a b b a a, b 23 a b b a, b Ø a b 1 23 a 17 Toán tử quy với NFA Tốn tử quy (Nhắc lại) Giả