Bài giảng Lí thuyết ngôn ngữ hình thức và ôtômát: Chương 2 - Ngôn ngữ chính quy và ôtômát hữu hạn cung cấp cho người học các kiến thức: Ôtômát hữu hạn, tính đóng của lớp ngôn ngữ chính quy, biểu thức chính quy, điều kiện cần của ngôn ngữ chính quy,... Mời các bạn cùng tham khảo.
Lí thuyết ngơn ngữ hình thức ơtơmát Chương Ngơn ngữ quy ơtơmát hữu hạn Nguyễn Thị Minh Huyền Khoa Toán - Cơ - Tin học Trường Đại học Khoa học Tự nhiên Hà Nội Ngôn ngữ quy Văn phạm quy Ơtơmat hữu hạn Nguồn (đồ thị chuyển) Ch2 NN quy& ơtơmát hữu hạn / 37 Ơtơmát hữu hạn Nội dung Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Ơtơmát hữu hạn, khơng đơn định Đơn định hố ơtơmát Bài tập Tính đóng lớp ngơn ngữ quy Biểu thức quy Điều kiện cần ngơn ngữ quy Điều kiện cần đủ ngơn ngữ quy Ch2 NN quy& ơtơmát hữu hạn / 37 Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Ví dụ Dàn máy phát thanh: P (nút Power): chế độ ON/OFF S (nút chọn nguồn phát): chuyển đổi chế độ CD/Tape/Radio Chỉ thay đổi trạng thái S máy bật (P = ON) Khi tắt máy (P = OFF ), S không thay đổi giá trị Ban đầu, máy tắt chế độ CD Bài toán: Cho dãy thao tác bấm nút P S Dãy thao tác có cho phép đưa máy trạng thái bật chế độ Radio khơng? Ch2 NN quy& ơtơmát hữu hạn / 37 Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Định nghĩa hình thức Ôtômat hữu hạn, đơn định Bộ năm A = (S, Σ, s0 , δ, F ) S: tập hữu hạn trạng thái, S = ∅ Σ = ∅ : bảng chữ vào s0 ∈ S trạng thái khởi đầu F ⊆ S : tập trạng thái kết δ : S × Σ → S : hàm chuyển trạng thái δ(p, a) = q : máy trạng thái p, đọc chữ vào a chuyển sang trạng thái q biểu diễn dạng bảng Ch2 NN quy& ơtơmát hữu hạn / 37 Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Biểu diễn ơtơmat Biểu diễn đồ thị chuyển (nguồn) Đỉnh vào, đỉnh ra/kết, cung 1 s1 Ch2 NN quy& ơtơmát hữu hạn s2 / 37 Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Ngơn ngữ đốn nhận ôtômat hữu hạn, đơn định Hàm chuyển mở rộng δˆ : S × Σ∗ → S ˆ δ(p, )=p ˆ ay) = δ(δ(p, ˆ ∀p ∈ S, a ∈ Σ, y ∈ Σ∗ : δ(p, a), y) Ngôn ngữ đốn nhận ơtơmat A: ˆ , x) ∈ F } L(A) = {x ∈ Σ∗ |δ(s Ch2 NN quy& ơtơmát hữu hạn / 37 Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Tương đương ơtơmat văn phạm quy Ôtômat hữu hạn, đơn định A tương đương văn phạm quy G: L(A) = L(G) Chuyển từ ơtơmat sang văn phạm quy Chuyển từ văn phạm quy sang ôtômat G = ({a, b, c}, {S, A, B}, S, P), P gồm quy tắc: S → aA|bA|cB A → cA|aB B → bB|a|c Ch2 NN quy& ôtômát hữu hạn / 37 Ôtômát hữu hạn Ôtômát hữu hạn, đơn định ngơn ngữ quy Bài tập Cho bảng chữ Σ = {a, b, c}, xây dựng ơtơmat đốn nhận ngơn ngữ sau: L1 = {an |n ≥ 2} L2 = {x ∈ Σ∗ ||x| ≥ 1} L3 = {am b n c k |m ≥ 1, n ≥ 0, k ≥ 2} L4 = {x ∈ Σ∗ ||x| lẻ} Ch2 NN quy& ơtơmát hữu hạn / 37 Ôtômát hữu hạn Ôtômát hữu hạn, không đơn định Ôtômát hữu hạn, không đơn định Khác với ôtômat đơn định hàm chuyển: δ : S × (Σ ∪ { }) → 2S δ(p, a) ⊆ S Biểu diễn đồ thị (nguồn): Đỉnh vào, đỉnh ra/kết, cung rỗng, cung cốt yếu, đỉnh cốt yếu (có cung cốt yếu vào) Ngơn ngữ đốn nhận ơtơmat khơng đơn định: Mở rộng hàm chuyển ôtômat đơn định L(A) = {x ∈ Σ∗ |δ(s0 , x) ∩ F = ∅} Ch2 NN quy& ơtơmát hữu hạn / 37 Điều kiện cần ngơn ngữ quy Điều kiện cần ngơn ngữ quy: Bổ đề bơm Ứng dụng: Khẳng định ngơn ngữ khơng phải quy Ơtơmat tối tiểu: Trong ơtơmat đơn định, đầy đủ đốn nhận ngơn ngữ quy, gọi ơtơmat có số trạng thái ơtơmat tối tiểu Điều kiện cần: Giả sử L ngôn ngữ quy Ln tồn l ∈ N + : ∀z ∈ L, |z| > l tìm từ u, x, v (|x| ≥ 1) để z = uxv ∀n = 0, 1, · · · : zn = ux n v ∈ L Ch2 NN quy& ơtơmát hữu hạn 26 / 37 Điều kiện cần ngơn ngữ quy Chứng minh L - ngơn ngữ quy, đốn nhận otomat tối tiểu có n trạng thái Chọn l = n, xét từ z ∈ L, với |z| = m > l Đặt δ(s0 , a1 ) = st,1 , δ(st,1 , a2 ) = st,2 , · · · δ(st,m−1 , am ) = st,m Vì m > l nên ∃i < j : st,i = st,j Đặt u = a1 · · · , x = ai+1 · · · aj , v = aj+1 · · · am Khi δ(s0 , u) = δ(s0 , ux) = δ(s0 , ux n ) ∀n ≥ ⇔ δ(s0 , uv) = δ(s0 , uxv) = δ(s0 , ux n v) ∀n ≥ ⇔ ∀n ≥ 0: zn = ux n v ∈ L Ch2 NN quy& ôtômát hữu hạn 27 / 37 Điều kiện cần ngơn ngữ quy Ứng dụng Áp dụng chứng minh ngơn ngữ khơng phải quy L1 = {ap |p nguyên tố} Giả sử L1 quy ⇒ ∀p nguyên tố đủ lớn, ∃m, k ≥ 0, n ≥ 1: p = m + n + k, thoả mãn ∀i ≥ 0, am an∗i ak ∈ L1 Chọn i = p + = m + n + k + 1, có am an∗i ak = am an∗(m+n+k+1) ak = ap(n+1) ∈ L1 ⇒ mâu thuẫn L2 = {an b n |n ≥ 1} Giả sử L2 quy, ∀n đủ lớn, ∃u, x, v ∈ {a, b}∗ , |x| > 0: uxv = an b n ∀i ≥ 0, ux i v ∈ L2 Xét trường hợp x từ an , x từ b n , x chứa a b để đưa đến kết luận mâu thuẫn Ch2 NN quy& ơtơmát hữu hạn 28 / 37 Điều kiện cần ngơn ngữ quy Ứng dụng Áp dụng chứng minh ngôn ngữ quy L1 = {ap |p nguyên tố} Giả sử L1 quy ⇒ ∀p nguyên tố đủ lớn, ∃m, k ≥ 0, n ≥ 1: p = m + n + k, thoả mãn ∀i ≥ 0, am an∗i ak ∈ L1 Chọn i = p + = m + n + k + 1, có am an∗i ak = am an∗(m+n+k+1) ak = ap(n+1) ∈ L1 ⇒ mâu thuẫn L2 = {an b n |n ≥ 1} Giả sử L2 quy, ∀n đủ lớn, ∃u, x, v ∈ {a, b}∗ , |x| > 0: uxv = an b n ∀i ≥ 0, ux i v ∈ L2 Xét trường hợp x từ an , x từ b n , x chứa a b để đưa đến kết luận mâu thuẫn Ch2 NN quy& ôtômát hữu hạn 28 / 37 Điều kiện cần ngơn ngữ quy Ứng dụng Áp dụng chứng minh ngơn ngữ khơng phải quy L1 = {ap |p nguyên tố} Giả sử L1 quy ⇒ ∀p nguyên tố đủ lớn, ∃m, k ≥ 0, n ≥ 1: p = m + n + k, thoả mãn ∀i ≥ 0, am an∗i ak ∈ L1 Chọn i = p + = m + n + k + 1, có am an∗i ak = am an∗(m+n+k+1) ak = ap(n+1) ∈ L1 ⇒ mâu thuẫn L2 = {an b n |n ≥ 1} Giả sử L2 quy, ∀n đủ lớn, ∃u, x, v ∈ {a, b}∗ , |x| > 0: uxv = an b n ∀i ≥ 0, ux i v ∈ L2 Xét trường hợp x từ an , x từ b n , x chứa a b để đưa đến kết luận mâu thuẫn Ch2 NN quy& ơtơmát hữu hạn 28 / 37 Điều kiện cần ngơn ngữ quy Ứng dụng Áp dụng chứng minh ngôn ngữ quy L1 = {ap |p nguyên tố} Giả sử L1 quy ⇒ ∀p nguyên tố đủ lớn, ∃m, k ≥ 0, n ≥ 1: p = m + n + k, thoả mãn ∀i ≥ 0, am an∗i ak ∈ L1 Chọn i = p + = m + n + k + 1, có am an∗i ak = am an∗(m+n+k+1) ak = ap(n+1) ∈ L1 ⇒ mâu thuẫn L2 = {an b n |n ≥ 1} Giả sử L2 quy, ∀n đủ lớn, ∃u, x, v ∈ {a, b}∗ , |x| > 0: uxv = an b n ∀i ≥ 0, ux i v ∈ L2 Xét trường hợp x từ an , x từ b n , x chứa a b để đưa đến kết luận mâu thuẫn Ch2 NN quy& ôtômát hữu hạn 28 / 37 Điều kiện cần ngơn ngữ quy Ứng dụng Áp dụng chứng minh ngơn ngữ khơng phải quy L1 = {ap |p nguyên tố} Giả sử L1 quy ⇒ ∀p nguyên tố đủ lớn, ∃m, k ≥ 0, n ≥ 1: p = m + n + k, thoả mãn ∀i ≥ 0, am an∗i ak ∈ L1 Chọn i = p + = m + n + k + 1, có am an∗i ak = am an∗(m+n+k+1) ak = ap(n+1) ∈ L1 ⇒ mâu thuẫn L2 = {an b n |n ≥ 1} Giả sử L2 quy, ∀n đủ lớn, ∃u, x, v ∈ {a, b}∗ , |x| > 0: uxv = an b n ∀i ≥ 0, ux i v ∈ L2 Xét trường hợp x từ an , x từ b n , x chứa a b để đưa đến kết luận mâu thuẫn Ch2 NN quy& ơtơmát hữu hạn 28 / 37 Điều kiện cần đủ ngôn ngữ quy Nội dung Ơtơmát hữu hạn Ơtơmát hữu hạn, đơn định ngơn ngữ quy Ơtơmát hữu hạn, khơng đơn định Đơn định hố ơtơmát Bài tập Tính đóng lớp ngơn ngữ quy Biểu thức quy Điều kiện cần ngơn ngữ quy Điều kiện cần đủ ngơn ngữ quy Ch2 NN quy& ơtơmát hữu hạn 29 / 37 Điều kiện cần đủ ngơn ngữ quy Quan hệ tương đương bất biến phải Cho tập X = ∅ quan hệ hai T (x, y) X T quan hệ tương đương: phản xạ, đối xứng, bắc cầu ⇒ T chia X thành lớp tương đương X1 , X2 , · · · , Xm , lập thành phân hoạch X theo quan hệ T (các tập Xi khác rỗng, rời nhau, hợp với tập X ) Khi m (có thể hữu hạn vô hạn) gọi số quan hệ tương đương T Ví dụ m hữu hạn: Quan hệ đồng dư cho n > tập số tự nhiên Ví dụ m vơ hạn: Quan hệ có số chữ số tập số tự nhiên Quan hệ tương đương bất biến phải: ∀z ∈ X , T (x, y) ⇒ T (xz, yz) Ch2 NN quy& ôtômát hữu hạn 30 / 37 Điều kiện cần đủ ngơn ngữ quy Quan hệ tương đương bất biến phải RL Cho ngôn ngữ L ⊆ Σ∗ , x, y ∈ Σ∗ gọi có quan hệ RL (x RL y)nếu x y hậu tố phân biệt z nào: ∀z ∈ Σ∗ : xz ∈ L ⇔ yz ∈ L Ví dụ: Cho L = (00)+ 00RL 0000 01RL 001 RL quan hệ tương đương bất biến phải Cho ôtômat đơn định, đầy đủ đoán nhận ngôn ngữ L quy, từ x, y ∈ Σ∗ thoả mãn δ(s0 , x) = δ(s0 , y) có quan hệ RL Ch2 NN quy& ơtơmát hữu hạn 31 / 37 Điều kiện cần đủ ngôn ngữ quy Quan hệ RL : Ví dụ Kí hiệu [x]: lớp từ tương đương bất biến phải theo quan hệ RL với x Σ∗ Ví dụ, cho L = (00)+ [ ]={ } [0] = 0(00)∗ [1] = 0∗ 1(0|1)∗ [00] = (00)+ Ch2 NN quy& ơtơmát hữu hạn 32 / 37 Điều kiện cần đủ ngơn ngữ quy Định lí Myhill-Nerode (điều kiện cần đủ ngơn ngữ quy) L ngơn ngữ quy ⇔ L hợp số lớp tương đương theo quan hệ tương đương bất biến phải với số hữu hạn tập Σ∗ Chứng minh điều kiện cần: L quy ⇒ L đốn nhận ơtơmat đơn định, đầy đủ A = (S, Σ, s0 , δ, F ) Xây dựng quan hệ tương đương bất biến phải T : T (x, y) ⇔ δ(s0 , x) = δ(s0 , y) Chỉ số T : T chia Σ∗ thành phân hoạch X1 , · · · , Xm Giả sử x ∈ Xi δ(s0 , x) = sti : Xi gắn với trạng thái sti A hữu hạn trạng thái nên m hữu hạn (không vượt |S|) Xét tất lớp tương đương Xi1 , · · · , Xin : Xij ∩ L = ∅ Chứng minh L = ∪Xij (j = 1, · · · , n) Ch2 NN quy& ơtơmát hữu hạn 33 / 37 Điều kiện cần đủ ngơn ngữ quy Định lí Myhill-Nerode (tiếp) Chứng minh điều kiện đủ Có quan hệ T chia Σ∗ thành phân hoạch X1 , · · · , Xm L hợp số lớp Xi Xây dựng ôtômat A = (S, Σ, s0 , δ, F ) : Kí hiệu lớp có chứa từ p [p], lớp chứa từ rỗng [ ] Xây dựng S = {X1 , · · · , Xm } s0 = [ ], F = {[p] | p ∈ L} δ([p], a) = [pa] A đoán nhận L Nhận xét: Số trạng thái S số T ⇒ A ôtômat tối tiểu sinh L Ch2 NN quy& ơtơmát hữu hạn 34 / 37 Điều kiện cần đủ ngơn ngữ quy Ứng dụng định lí Myhill-Nerode Xét tính quy ngơn ngữ Xây dựng ơtơmat tối tiểu Ch2 NN quy& ôtômát hữu hạn 35 / 37 Điều kiện cần đủ ngơn ngữ quy Xét tính quy ngơn ngữ Các ví dụ sau xét Σ = {0, 1} L1 = {0n 1n |n ≥ 1} L2 = {x|x = x R }, x R : từ ngược x L3 = {xwx|x ∈ {0, 1}, w ∈ (0|1)+ } Ch2 NN quy& ơtơmát hữu hạn 36 / 37 ... nạp: Cho B1 , B2 biểu thức quy Khi B1 B2 , B1 ∪ B2 , B1∗ , (B1 ) biểu thức quy Chỉ có biểu thức xác định biểu thức quy bảng chữ Σ Ch2 NN quy& ơtơmát hữu hạn 19 / 37 Biểu thức quy Biểu thức quy –... ơtơmát Bài tập Tính đóng lớp ngơn ngữ quy Biểu thức quy Điều kiện cần ngơn ngữ quy Điều kiện cần đủ ngơn ngữ quy Ch2 NN quy& ơtơmát hữu hạn 25 / 37 Điều kiện cần ngơn ngữ quy Điều kiện cần ngơn ngữ. .. hợp Chu trình: lặp Ch2 NN quy& ôtômát hữu hạn 20 / 37 Biểu thức quy Biểu thức quy Ngơn ngữ quy ⇔ Biểu thức quy Biểu thức quy lập trình Tìm kiếm xâu theo mẫu (pattern) VD: Xử lí gộp tên tệp Tìm