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

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

29 13 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 29
Dung lượng 243,34 KB

Nội dung

Bài giảng Lý thuyết tính toán: Bài 4 - Phạm Xuân Cường cung cấp cho học viên các kiến thức về biểu thức chính quy; khái niệm của biểu thức chính quy; định nghĩa hình thức; sự tương đương với ôtômat hữu hạn; ôtômat hữu hạn không đơn định suy rộng (GNFA);... 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 4: BIỂU THỨC CHÍNH QUY 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 Định nghĩa hình thức Sự tương đương với Ơtơmat hữu hạn Khái niệm Khái niệm • Biểu thức quy: Sử dụng tốn tử quy để biểu diễn biểu thức mơ tả ngơn ngữ Ví dụ: (0∪1)0* → Tất xâu bắt đầu ký tự sau số ký tự • Vai trị Biểu thức quy: Là phương pháp mạnh để mơ tả mẫu văn → Trong số ngơn ngữ lập trình ứng dụng kỹ thuật mơ tả mẫu biểu thức quy (Regular Expression) Định nghĩa hình thức Định nghĩa hình thức biểu thức quy Ta nói R biểu thức quy R là: a với a ký hiệu trọng chữ Σ ε Ø (R1 ∪ R2 ) R1 R2 biểu thức quy (R1 ◦ R2 ) R1 R2 biểu thức quy (R1 *) R1 biểu thức quy Độ ưu tiên tốn tử quy • Tốn tử có độ ưu tiên cao ab* = a(b*) = (ab)* • Tốn tử ghép tiếp có độ ưu tiên cao toán tử hợp a◦b ∪ c = (a◦b) ∪ c = a(b ∪ c) • Một số ký hiệu khác: - Hoặc (Union): ab|c = (ab)|c = a(b|c) Sao: a* = {a} = {a}* nhiều: a+ = aa* = {a}+ Tùy chọn: [a] = a|ε= (a∪ε) = a? Ví dụ độ ưu tiên tốn tử quy • aab∪caab∪caa = ???? • aab|caab|caa = ???? • d∪ab* cd* = ???? • d|ab* cd* = ???? Ví dụ độ ưu tiên tốn tử quy • aab∪caab∪caa = (aab)∪(caab)∪caa • aab|caab|caa = (aab)|(caab)|(caa) • d∪ab* cd* = d∪(a(b*)c(d*)) • d|ab* cd* = d|(a(b*)c(d*)) Ví dụ biểu thức quy Giả thiết sử dụng chữ Σ = {0,1} 0*10* = {w|w có ký hiệu 1} Σ*1Σ* = {w|w có ký hiệu 1} Σ*001Σ* = {w|w có chứa xâu 001} 1*(01+ )* = {w|sau ký hiệu w có ký hiệu 1} (ΣΣ)* = {w|w xâu có độ dài số chẵn} 01∪10 = {01,10} Chứng minh Bổ đề 1.1 Từ Hệ 1.40 (Sách giáo trình): Nếu NFA đốn nhận A A quy → Chuyển đổi R thành NFA N R = a → L(R) = {a} a start R = ε→ L(R) = {ε} start R = Ø→ L(R) = Ø start R = R1 ∪ R2 R = R1 ◦ R2 R = R1 * Với trường hợp cuối ta chứng minh tương tự với chứng minh tính đóng tốn tử (Xem lại 3) 11 Ví dụ: Chuyển đổi R → NFA Chuyển đổi biểu thức quy sau thành NFA: (ab∪a)* a→ start b→ start ab → start a b a b ε a ε b ε ab∪a → start ε a 12 Ví dụ: Chuyển đổi R → NFA (ab∪a)* ε a ε b ε start ε ε a ε 13 Chứng minh Bổ đề 1.2 Ý TƯỞNG: - Vì A ngơn ngữ quy → Nó đốn nhận DFA - Chuyển đổi DFA thành biểu thức quy → Cần sử dụng GNFA Vậy GNFA gì? 14 Ơtơmat hữu hạn khơng đơn định suy rộng (GNFA) • GNFA = Generalized Nondeterministic Finite Automaton → Là Ơtơmat hữu hạn khơng đơn định suy rộng • GNFA giống NFA ngoại trừ: - Nhãn cạnh biểu thức quy Chỉ có trạng thái chấp thuận Trạng thái chấp thuận không trùng với trạng thái bắt đầu Khơng có cạnh nối tới trạng thái bắt đầu Khơng có cạnh xuất phát từ trạng thái kết thúc Loại trừ trạng thái bắt đầu kết thúc, mũi tên từ trạng thái đến trạng thái lại tới 15 Ví dụ GNFA aa q1 ab* start (aa)* q0 ab ∪ ba q3 a* Ø b* q2 ab b 16 Chuyển đổi DFA → GNFA • Thêm trạng thái bắt đầu ε start • Thêm trạng thái kết thúc ε ε 17 Chuyển đổi DFA → GNFA • Cạnh có nhiều chuyển đổi → Hợp chuyển đổi a, b, c a|b|c • Thêm cạnh thiếu cạnh Ø cho đầy đủ kết nối (Fully connected) start Ø start Ø Ø Ø Ø 18 Chuyển đổi DFA → GNFA • Chọn trạng thái tách khỏi máy Chỉnh sửa phần cịn lại cho ngơn ngữ tương tự đoán nhận → Trạng thái bị tách gọi qrip R4 qi R1 qj R3 qi qrip R4 |R1 R2 *R3 qj R2 • Lặp lại bước máy trạng thái bắt đầu kết thúc start < Regular Expression > 19 Ví dụ • Cho chữ Σ = {0,1,2} • Chuyển đổi DFA sau thành biểu thức quy 0,1 0,1 start b c • Kết quả: (0|1)*2(0|1)* → Làm nào? 20 Chuyển từ DFA sang GNFA Ø 0|1 start a ε b 0|1 c ε d Ø Ø Ø 21 Loại bỏ nút b (0|1)|Ø(0|1)*2 = (0|1) start Ø|ε(0|1)*2 = (0|1)*2 a c ε|Ø(0|1)*Ø = ε d Ø|ε(0|1)*Ø = Ø Thu gọn lại, ta được: (0|1) start a (0|1)*2 c ε d Ø 22 Loại bỏ nút c start a Ø|(0|1)*2(0|1)*ε d Cuối cùng, ta được: start a (0|1)*2(0|1)* d → Mỗi biểu thức quy R mơ tả ngơn ngữ quy 23 Định nghĩa hình thức GNFA • Ơtơmat hữu hạn khơng đơn định suy rộng (GNFA) ≡ (hay chiều) G = (Q, Σ, δ, qstart , qaccept ) 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-{qaccept }) x (Q-{qstart }) → R R tập tất biểu thức quy chữ Σ - qstart : Trạng thái bắt đầu - qaccept : Trạng thái kết thúc 24 Questions? 24 ... 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-{qaccept }) x (Q-{qstart }) → R R tập tất biểu thức quy chữ Σ - qstart : Trạng thái bắt đầu - qaccept... ε ε a ε 13 Chứng minh Bổ đề 1.2 Ý TƯỞNG: - Vì A ngơn ngữ quy → Nó đốn nhận DFA - Chuyển đổi DFA thành biểu thức quy → Cần sử dụng GNFA Vậy GNFA gì? 14 Ơtơmat hữu hạn khơng đơn định suy rộng (GNFA)... Chỉnh sửa phần cịn lại cho ngơn ngữ tương tự đoán nhận → Trạng thái bị tách gọi qrip R4 qi R1 qj R3 qi qrip R4 |R1 R2 *R3 qj R2 • Lặp lại bước máy trạng thái bắt đầu kết thúc start < Regular Expression

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

w