Bài giảng Lý thuyết tính toán: Bài 03 - Nguyễn Ngọc Tú
Số trang: 53
Loại file: pdf
Dung lượng: 975.09 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 6 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lý thuyết tính toán: Bài 03 - Ngôn ngữ và văn phạm chính quy hướng đến trình bày những vấn đề cơ bản về biểu thức chính quy; mối quan hệ giữa Biểu thức và ngôn ngữ chính quy; văn phạm chính quy.
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết tính toán: Bài 03 - Nguyễn Ngọc Tú LÝ THUYẾT TÍNH TOÁN INTRODUCTION TO COMPUTATION THEORY (FORMAL LANGUAGES & AUTOMATA) Bài 03. Ngôn ngữ và Văn phạm Chính quy Sử dụng slides của các tác giả: Hồ Văn Quân + Nick Hopper GV: Nguyễn Ngọc TúTIN331 Tu.NguyenNgoc@hoasen.edu.vnNội dung Biểu thức chính qui (Regular Expression) Mối quan hệ giữa Biểu thức và ngôn ngữ chính qui Văn phạm chính qui (Regular Grammar)Biểu thức chính quy Biểu thức chính qui (BTCQ) là gì? Là một sự kết hợp các chuỗi kí hiệu của một bảng chữ cái ∑ nào đó, các dấu ngoặc, và các phép toán +, ., và *. trong đó phép + biểu thị cho phép hội, phép . biểu thị cho phép kết nối, phép * biểu thị cho phép bao đóng sao. Ví dụ Ngôn ngữ {a} được biểu thị bởi BTCQ a. Ngôn ngữ {a, b, c} được biểu thị bởi BTCQ a + b + c. Ngược lại BTCQ (a + b.c)* biểu thị cho ngôn ngữ {λ, a, bc, aa, abc, bca, bcbc, aaa, aabc, ...}.Định nghĩa Định nghĩa 3.1 Cho ∑ là một bảng chữ cái, thì 1. ∅, λ, và a ∈ ∑ tất cả đều là những BTCQ hơn nữa chúng được gọi là những BTCQ nguyên thủy. 2. Nếu r1 và r2 là những BTCQ, thì r1 + r2, r1. r2, r1*, và (r1) cũng vậy. 3. Một chuỗi là một BTCQ nếu và chỉ nếu nó có thể được dẫn xuất từ các BTCQ nguyên thủy bằng một số lần hữu hạn áp dụng các quy tắc trong (2).Ví dụ Cho ∑ = {a, b, c}, thì chuỗi (a + b.c)*.(c + ∅) là BTCQ, vì nó được xây dựng bằng cách áp dụng các qui tắc ở trên. Còn (a + b+) không phải là BTCQ.Ngôn ngữ tương ứng BTCQ Định nghĩa 3.2 Ngôn ngữ L(r) được biểu thị bởi BTCQ bất kỳ là được định nghĩa bởi các qui tắc sau. 1. ∅ là BTCQ biểu thị tập trống, 2. λ là BTCQ biểu thị {λ}, 3. Đối với mọi a ∈ ∑, a là BTCQ biểu thị {a}, Nếu r1 và r2 là những BTCQ, thì 1. L(r1 + r2) = L(r1) ∪ L(r2), 2. L(r1.r2) = L(r1).L(r2), 3. L((r1)) = L(r1), 4. L(r1*) = (L(r1))*.Ngôn ngữ tương ứng BTCQ Bao đóng sao > Kết nối > HợpL(a* . a + b)= L(a* . a)L(b)= (L(a* ) L(a))L(b)= ((L(a))* L(a))L(b)= ({, a, aa, aaa, ...}{a}){b}= {a, aa, aaa, ..., b} = {an n1}{b}Ex. Tìm ngôn ngữ của các BTCQ sau r1 = (aa)*(bb)*b r2 = (ab*a + b)* r3 = a(a + b)* Kết quả L(r1) = {a2nb2m+1: n ≥ 0, m ≥ 0} L(r2) = {w ∈ {a, b}*: na(w) chẵn} L(r3) = {w ∈ {a, b}*: w được bắt đầu bằng a}Ex 02. Tìm BTCQ cho các ngôn ngữ sau L1 = {tập tất cả các số thực của Pascal} L2 = {w ∈ {0, 1}*: w không có một cặp số 0 liên tiếp nào} L3 = {w ∈ {0, 1}*: n0(w) = n1(w)}Phép toán mở rộng Phép chọn lựa r? hoặc [r] r ? = [r] = (r + λ) Phép bao đóng dương + r+ = r.r* Chú ý (r*)* = r* (r1* + r2)* = (r1 + r2)* (r1r2* + r2)* = (r1 + r2)* Trong một số tài liệu phép cộng (+) được kí hiệu bằng dấu | thay cho dấu + . Chẳng hạn (a + b).c thì được viết là (a | b).cBTCQ Biểu thị Ngôn ngữ Chính quy Định lý 3.1 Cho r là một BTCQ, thì tồn tại một NFA mà chấp nhận L(r). Vì vậy, L(r) là NNCQ. Bổ đề Với mọi NFA có nhiều hơn một trạng thái kết thúc luôn luôn có một NFA tương đương với chỉ một trạng thái kết thúc. qf1 tương đương qf1 λ với qf λ qfn qfnThủ tục: re-to-nfa Mọi nfa có thể được biểu diễn bằng sơ đồ M q0 qf q0 q1 q0 q1 a q0 q1Thủ tục: re-to-nfaL(r1 + r2) M(r1) q01 qf1 M(r1) hoặc M(r2) q02 qf2 M(r2)Thủ tục: re-to-nfaL(r1.r2) M(r1) M(r2) q01 qf1 q02 qf2 hoặc M(r1) M(r2)Thủ tục: re-to-nfaL(r1*) M(r) q0 qf hoặc q0 qf Thủ tục: re-to-nfa Ví dụ L((a + bb)*(ba* + )) M1 a L(a + bb) b b M2 a b L(ba* + ) Ex. r9 = (a + -)(n)*(bv + hbv + v)(a + -)(n)* r10 = (p + -)(p + -)(n + -)(n + -)n(p + -)(p + -)s* r1 = aa* + aba*b* r11 = (mc*d(c+t)*mc*d)* r12 = ((c(p + h)*)d*)* r2 ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lý thuyết tính toán: Bài 03 - Nguyễn Ngọc Tú LÝ THUYẾT TÍNH TOÁN INTRODUCTION TO COMPUTATION THEORY (FORMAL LANGUAGES & AUTOMATA) Bài 03. Ngôn ngữ và Văn phạm Chính quy Sử dụng slides của các tác giả: Hồ Văn Quân + Nick Hopper GV: Nguyễn Ngọc TúTIN331 Tu.NguyenNgoc@hoasen.edu.vnNội dung Biểu thức chính qui (Regular Expression) Mối quan hệ giữa Biểu thức và ngôn ngữ chính qui Văn phạm chính qui (Regular Grammar)Biểu thức chính quy Biểu thức chính qui (BTCQ) là gì? Là một sự kết hợp các chuỗi kí hiệu của một bảng chữ cái ∑ nào đó, các dấu ngoặc, và các phép toán +, ., và *. trong đó phép + biểu thị cho phép hội, phép . biểu thị cho phép kết nối, phép * biểu thị cho phép bao đóng sao. Ví dụ Ngôn ngữ {a} được biểu thị bởi BTCQ a. Ngôn ngữ {a, b, c} được biểu thị bởi BTCQ a + b + c. Ngược lại BTCQ (a + b.c)* biểu thị cho ngôn ngữ {λ, a, bc, aa, abc, bca, bcbc, aaa, aabc, ...}.Định nghĩa Định nghĩa 3.1 Cho ∑ là một bảng chữ cái, thì 1. ∅, λ, và a ∈ ∑ tất cả đều là những BTCQ hơn nữa chúng được gọi là những BTCQ nguyên thủy. 2. Nếu r1 và r2 là những BTCQ, thì r1 + r2, r1. r2, r1*, và (r1) cũng vậy. 3. Một chuỗi là một BTCQ nếu và chỉ nếu nó có thể được dẫn xuất từ các BTCQ nguyên thủy bằng một số lần hữu hạn áp dụng các quy tắc trong (2).Ví dụ Cho ∑ = {a, b, c}, thì chuỗi (a + b.c)*.(c + ∅) là BTCQ, vì nó được xây dựng bằng cách áp dụng các qui tắc ở trên. Còn (a + b+) không phải là BTCQ.Ngôn ngữ tương ứng BTCQ Định nghĩa 3.2 Ngôn ngữ L(r) được biểu thị bởi BTCQ bất kỳ là được định nghĩa bởi các qui tắc sau. 1. ∅ là BTCQ biểu thị tập trống, 2. λ là BTCQ biểu thị {λ}, 3. Đối với mọi a ∈ ∑, a là BTCQ biểu thị {a}, Nếu r1 và r2 là những BTCQ, thì 1. L(r1 + r2) = L(r1) ∪ L(r2), 2. L(r1.r2) = L(r1).L(r2), 3. L((r1)) = L(r1), 4. L(r1*) = (L(r1))*.Ngôn ngữ tương ứng BTCQ Bao đóng sao > Kết nối > HợpL(a* . a + b)= L(a* . a)L(b)= (L(a* ) L(a))L(b)= ((L(a))* L(a))L(b)= ({, a, aa, aaa, ...}{a}){b}= {a, aa, aaa, ..., b} = {an n1}{b}Ex. Tìm ngôn ngữ của các BTCQ sau r1 = (aa)*(bb)*b r2 = (ab*a + b)* r3 = a(a + b)* Kết quả L(r1) = {a2nb2m+1: n ≥ 0, m ≥ 0} L(r2) = {w ∈ {a, b}*: na(w) chẵn} L(r3) = {w ∈ {a, b}*: w được bắt đầu bằng a}Ex 02. Tìm BTCQ cho các ngôn ngữ sau L1 = {tập tất cả các số thực của Pascal} L2 = {w ∈ {0, 1}*: w không có một cặp số 0 liên tiếp nào} L3 = {w ∈ {0, 1}*: n0(w) = n1(w)}Phép toán mở rộng Phép chọn lựa r? hoặc [r] r ? = [r] = (r + λ) Phép bao đóng dương + r+ = r.r* Chú ý (r*)* = r* (r1* + r2)* = (r1 + r2)* (r1r2* + r2)* = (r1 + r2)* Trong một số tài liệu phép cộng (+) được kí hiệu bằng dấu | thay cho dấu + . Chẳng hạn (a + b).c thì được viết là (a | b).cBTCQ Biểu thị Ngôn ngữ Chính quy Định lý 3.1 Cho r là một BTCQ, thì tồn tại một NFA mà chấp nhận L(r). Vì vậy, L(r) là NNCQ. Bổ đề Với mọi NFA có nhiều hơn một trạng thái kết thúc luôn luôn có một NFA tương đương với chỉ một trạng thái kết thúc. qf1 tương đương qf1 λ với qf λ qfn qfnThủ tục: re-to-nfa Mọi nfa có thể được biểu diễn bằng sơ đồ M q0 qf q0 q1 q0 q1 a q0 q1Thủ tục: re-to-nfaL(r1 + r2) M(r1) q01 qf1 M(r1) hoặc M(r2) q02 qf2 M(r2)Thủ tục: re-to-nfaL(r1.r2) M(r1) M(r2) q01 qf1 q02 qf2 hoặc M(r1) M(r2)Thủ tục: re-to-nfaL(r1*) M(r) q0 qf hoặc q0 qf Thủ tục: re-to-nfa Ví dụ L((a + bb)*(ba* + )) M1 a L(a + bb) b b M2 a b L(ba* + ) Ex. r9 = (a + -)(n)*(bv + hbv + v)(a + -)(n)* r10 = (p + -)(p + -)(n + -)(n + -)n(p + -)(p + -)s* r1 = aa* + aba*b* r11 = (mc*d(c+t)*mc*d)* r12 = ((c(p + h)*)d*)* r2 ...
Tìm kiếm theo từ khóa liên quan:
Bài giảng Lý thuyết tính toán Lý thuyết tính toán Ngôn ngữ chính quy Văn phạm chính quy Biểu thức chính quy Quan hệ ngôn ngữ và biểu thức chính quyGợi ý tài liệu liên quan:
-
Giáo trình Lý thuyết tính toán
108 trang 34 0 0 -
Cơ sở Toán trong kỹ thuật lập trình: Phần 2
175 trang 26 0 0 -
Cơ sở Toán trong kỹ thuật lập trình: Phần 1
183 trang 25 0 0 -
Bài giảng Lý thuyết tính toán: Chương 1 - PGS.TS. Phan Huy Khánh
10 trang 24 0 0 -
Giáo trình Toán rời rạc: Phần 2 - Đỗ Đức Giáo
218 trang 23 0 0 -
Giáo trình Otomat và ngôn ngữ hình thức
84 trang 23 0 0 -
Bài giảng Tin học lý thuyết - Chương 4: Văn phạm chính quy và các tính chất
9 trang 21 0 0 -
Bài giảng Lý thuyết tính toán: Bài 7 - Phạm Xuân Cường
27 trang 21 0 0 -
Bài giảng môn lý thuyết ôtômát và ngôn ngữ hình thức - Chương 6
0 trang 20 0 0 -
Bài giảng môn lý thuyết ôtômát và ngôn ngữ hình thức - Chương 5
0 trang 20 0 0