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.
Trang 1Lí 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
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
Trang 2Ngôn ngữ chính quy
Văn phạm chính quy
Ôtômat hữu hạn
Nguồn (đồ thị chuyển)
Trang 3Nội dung
1 Ôtômát hữu hạn
Ôtômát hữu hạn, đơn định và ngôn ngữ chính quy
Ôtômát hữu hạn, không đơn định
Đơn định hoá ôtômát
Bài tập
2 Tính đóng của lớp ngôn ngữ chính quy
3 Biểu thức chính quy
4 Điều kiện cần của ngôn ngữ chính quy
5 Điều kiện cần và đủ của ngôn ngữ chính quy
Trang 4Ví dụ
Dàn máy phát thanh:
P (nút Power): 2 chế độ ON/OFF
S (nút chọn nguồn phát): chuyển đổi giữa 3 chế độ
CD/Tape/Radio Chỉ thay đổi được trạng thái của S khi
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 và ở chế độ CD
Bài toán: Cho 1 dãy thao tác bấm nút P hoặc S Dãy thao
tác này có cho phép đưa máy về trạng thái bật và ở chế độRadio không?
Trang 5δ(p, a) = q : máy đang ở trạng thái p, nếu đọc được chữ cái
vào a thì chuyển sang trạng thái q
biểu diễn dạng bảng
Trang 6Biểu diễn ôtômat
Biểu diễn bằng đồ thị chuyển (nguồn)
Đỉnh vào, đỉnh ra/kết, cung
01
0
1
Trang 7Ngôn ngữ đoán nhận bởi ôtômat hữu hạn, đơn định
Trang 8Tương đương giữa ôtômat và văn phạm chính quy
Ôtômat hữu hạn, đơn định A tương đương văn phạm
chính quy G:
L(A) = L(G)
Chuyển từ ôtômat sang văn phạm chính quy
Chuyển từ văn phạm chính quy sang ôtômat
G = ({a, b, c}, {S, A, B}, S, P), P gồm các quy tắc:
S → aA|bA|cB
A → cA|aB
B → bB|a|c
Trang 10Ôtômát hữu hạn, không đơn định
Khác với ôtômat đơn định ở hàm chuyển:
δ :S × (Σ ∪ {}) → 2 S
δ(p, a) ⊆ S
Biểu diễn bằng đồ 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 đi vào)
Ngôn ngữ đoán nhận bởi ôtômat không đơn định:
Mở rộng hàm chuyển như ôtômat đơn định
L(A) = {x ∈ Σ∗|δ(s0,x) ∩ F 6= ∅}
Trang 11Một số khái niệm, tính chất
Đơn định: hàm chuyển đơn trị
Đầy đủ: hàm chuyển xác định khắp nơi
Đơn định và đầy đủ: Trong bảng hàm chuyển mọi ô đều có
Trang 12Đơn định hoá nguồn
Cho nguồn không đơn định A Xây dựng nguồn đơn định, đầy đủ A0 tương đương với A
cung ghi chữ cái a tới đỉnh δ(M, a)
Trang 13Đơn định hóa ôtômat
Cho ôtômat không đơn định A Xây dựng ôtômat đơn
định, đầy đủ A0 tương đương với A
Trang 15Bài tập
Xây dựng ôtômat đoán nhận một ngôn ngữ đã cho
1 Xây dựng 3 ôtômat đoán nhận các tập các số tự nhiên chiahết cho 2, cho 3 và cho 5
2 Xây dựng ôtômat mô phỏng máy bán nước tự động dùngtiền xu (1000, 2000, 5000) Giá 1 lon nước ngọt là 5000, 1chai nước suối là 3000
Trang 16Nội dung
1 Ôtômát hữu hạn
Ôtômát hữu hạn, đơn định và ngôn ngữ chính quy
Ôtômát hữu hạn, không đơn định
Đơn định hoá ôtômát
Bài tập
2 Tính đóng của lớp ngôn ngữ chính quy
3 Biểu thức chính quy
4 Điều kiện cần của ngôn ngữ chính quy
5 Điều kiện cần và đủ của ngôn ngữ chính quy
Trang 17Các phép toán trên nguồn
Trang 18Tính đóng của lớp ngôn ngữ chính quy
Lớp ngôn ngữ chính quy đóng với các tất cả phép toán trênngôn ngữ: hợp, giao, lấy phần bù, tích ghép, lặp, lặp cắt,
soi gương, chia trái, chia phải
Trang 19Nội dung
1 Ôtômát hữu hạn
Ôtômát hữu hạn, đơn định và ngôn ngữ chính quy
Ôtômát hữu hạn, không đơn định
Đơn định hoá ôtômát
Bài tập
2 Tính đóng của lớp ngôn ngữ chính quy
3 Biểu thức chính quy
4 Điều kiện cần của ngôn ngữ chính quy
5 Điều kiện cần và đủ của ngôn ngữ chính quy
Trang 20Biểu thức chính quy (Regular expression)
Định nghĩa (quy nạp)
Cho Σ = {a1,a2, ,a n}
Quy nạp:
Cho B1,B2là các biểu thức chính quy
Khi đó B1 B2 ,B1∪ B2,B∗1, (B1 ) cũng là các biểu thức chính quy
Chỉ có các biểu thức được xác định như trên mới là các
biểu thức chính quy trên bảng chữ cái Σ
Trang 21Biểu thức chính quy – nguồn
Xây dựng nguồn tương đương với biểu thức chính quy
Cơ sở quy nạp: Nguồn sinh {a}, {}, ∅
Các phép toán: hợp, tích ghép, lặp: phép toán trên nguồn
Xây dựng biểu thức chính quy tương đương với nguồn
Đường đi thông thường: tích ghép, hợp
Chu trình: lặp
Trang 22Biểu thức chính quy
Ngôn ngữ chính quy ⇔ Biểu thức chính quy
Biểu thức chính quy trong lập trình
Tìm kiếm xâu theo mẫu (pattern) nào đó
VD:
Xử lí gộp tên tệp Tìm kiếm trong Unix/Linux Tìm kiếm, thay thế xâu trong emacs Công cụ xử lí xâu trong các ngôn ngữ lập trình
Trang 23Bài tập ứng dụng biểu thức chính quy
Cú pháp phổ biến của biểu thức chính quy
Mỗi kí tự biểu diễn chính nó, trừ các kí tự điều khiển
(metacharacter): ? + - * { } [ ] ( ) \ | ˆ $
Để biểu diễn các kí tự điều khiển, thêm dấu \ vào trước
[03a−c] ≡ {0, 3, a, b, c}, [ˆ 15] ≡ tập các kí tự khác 1 và 5 biểu diễn kí tự bất kì, ˆ và $ đánh dấu đầu và cuối dòng
\< và \> đánh dấu đầu và cuối từ, \b đánh dấu biên từ, \B
đánh dấu xâu rỗng không ở biên từ
Phép lặp: ?, *, +, {n}, {n, }, {n, m}
Phép lấy tích ghép, phép hợp |
\n biểu diễn xâu con nằm giữa cặp () thứ n trước đó.
Trang 25Bài tập ví dụ về RE và FSA (Finite State Automata)
Xác định biểu thức chính quy và ôtômat đơn định hữu hạnđoán nhận các ngôn ngữ :
(i) Tập số thực dấu phẩy động
(ii) Tập các xâu gồm các chữ số 0-9 có chứa xâu con 11
(iii) Tập ngày tháng theo định dạng ngày(2 chữ số)/tháng(2 chữ số) Chú ý ràng buộc số ngày trong tháng.
Trang 26Nội dung
1 Ôtômát hữu hạn
Ôtômát hữu hạn, đơn định và ngôn ngữ chính quy
Ôtômát hữu hạn, không đơn định
Đơn định hoá ôtômát
Bài tập
2 Tính đóng của lớp ngôn ngữ chính quy
3 Biểu thức chính quy
4 Điều kiện cần của ngôn ngữ chính quy
5 Điều kiện cần và đủ của ngôn ngữ chính quy
Trang 27Điều kiện cần của ngôn ngữ chính quy: Bổ đề bơm
Ứng dụng: Khẳng định một ngôn ngữ không phải là chínhquy
Ôtômat tối tiểu: Trong các ôtômat đơn định, đầy đủ đoán
nhận một ngôn ngữ chính quy, gọi các ôtômat có số trạngthái ít nhất là các ôtômat tối tiểu
Điều kiện cần:
Giả sử L là ngôn ngữ chính quy
Luôn tồn tại l ∈ N N+: ∀z ∈ L, |z| > l thì tìm được 3 từ u, x, v (|x| ≥ 1) để
z = uxv
∀n = 0, 1, 2 · · · : z n=ux n v ∈ L
Trang 28Chứng minh
L - ngôn ngữ chính quy, đoán nhận được bởi một otomat
tối tiểu có n trạng thái
Trang 34Nội dung
1 Ôtômát hữu hạn
Ôtômát hữu hạn, đơn định và ngôn ngữ chính quy
Ôtômát hữu hạn, không đơn định
Đơn định hoá ôtômát
Bài tập
2 Tính đóng của lớp ngôn ngữ chính quy
3 Biểu thức chính quy
4 Điều kiện cần của ngôn ngữ chính quy
5 Điều kiện cần và đủ của ngôn ngữ chính quy
Trang 35Quan hệ tương đương bất biến phải
Cho tập X 6= ∅ và quan hệ hai ngôi T (x, y) trên X
T là quan hệ tương đương: phản xạ, đối xứng, bắc cầu
⇒ T chia X thành các lớp tương đương X1,X2, · · · ,X m, lập
thành phân hoạch của X theo quan hệ T (các tập X i khác
rỗng, rời nhau, hợp với nhau bằng tập X ).
Khi đó m (có thể hữu hạn hoặc vô hạn) gọi là chỉ số của
quan hệ tương đương T
Ví dụ m hữu hạn: Quan hệ đồng dư cho n > 0 trên tập số tự
Trang 36Quan hệ tương đương bất biến phải RL
(x R L y)nếu x và y không có hậu tố phân biệt z nào:
Cho một ôtômat đơn định, đầy đủ đoán nhận ngôn ngữ L
Trang 38Định lí Myhill-Nerode (điều kiện cần và đủ của ngôn ngữ chính quy)
L là ngôn ngữ chính quy ⇔ L là hợp của một số lớp tương
đương theo quan hệ tương đương bất biến phải với chỉ số
Chứng minh điều kiện cần:
L chính quy ⇒ L đoán nhận được bởi ô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ố của T : T chia Σ∗thành phân hoạch X1, · · · ,X m
Giả sử x ∈ X i và δ(s0 ,x) = s t i : X i gắn với trạng thái s t i
A hữu hạn trạng thái nên m hữu hạn (không vượt quá |S|)
Xét tất cả các lớp tương đương X i1, · · · ,X i n :X i j ∩ L 6= ∅
Chứng minh được L = ∪X i j (j = 1, · · · , n)
Trang 39Đị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 , · · · ,X m L là hợp của một số lớp X i.
Nhận xét: Số trạng thái của S bằng chỉ số của T ⇒ A là
ôtômat tối tiểu sinh L.
Trang 40Ứng dụng định lí Myhill-Nerode
Xét tính chính quy của một ngôn ngữ
Xây dựng ôtômat tối tiểu
Trang 41Xét tính chính quy của ngôn ngữ
Các ví dụ sau đều xét Σ = {0, 1}
L1= {0n1n |n ≥ 1}
L2= {x|x = x R }, x R : từ ngược của x
L3= {xwx|x ∈ {0, 1}, w ∈ (0|1)+}