1. Trang chủ
  2. » Giáo án - Bài giảng

Bài giảng Lý thuyết tính toán: Bài 3 - Phạm Xuân Cường

30 34 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 0,9 MB

Nội dung

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ả

Ngày đăng: 14/12/2021, 09:35

TỪ KHÓA LIÊN QUAN