Otomat hữu hạn là một mô hình máy trừu tượngkhá đơn giản dùng để đoán nhận lớp ngôn ngữ chính quy - một lớp ngônngữ có nhiều tính chất đặc biệt và được ứng dụng nhiều trong lĩnh vựccông
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN DIỆU LINH
OTOMAT HỮU HẠN VÀ ỨNG DỤNGTRONG PHÂN TÍCH TỪ VỰNG
LUẬN VĂN THẠC SĨ TOÁN HỌC
Hà Nội - 2018
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2
NGUYỄN DIỆU LINH
OTOMAT HỮU HẠN VÀ ỨNG DỤNGTRONG PHÂN TÍCH TỪ VỰNG
Chuyên ngành: Toán ứng dụng
Mã số: 8460112
LUẬN VĂN THẠC SĨ TOÁN HỌC
Người hướng dẫn khoa học:
TS KIỀU VĂN HƯNG
Hà Nội - 2018
Trang 3LỜI CẢM ƠN
Luận văn được hoàn thành tại Trường Đại học Sư phạm Hà Nội 2.Tác giả chân thành cảm ơn TS Kiều Văn Hưng đã tận tình hướng dẫn,tạo điều kiện cho tác giả hoàn thành luận văn Thạc sĩ Tác giả xin bày
tỏ lòng biết ơn các thầy cô giáo và cán bộ công nhân viên của TrườngĐại học Sư phạm Hà Nội 2 đã quan tâm giúp đỡ
Hà Nội, ngày 08 tháng 06 năm 2018
Tác giả luận văn
Nguyễn Diệu Linh
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này là kết quả nghiên cứu của riêng tôidưới sự hướng dẫn của TS Kiều Văn Hưng
Trong quá trình nghiên cứu, tôi đã kế thừa thành quả khoa học củacác nhà khoa học với sự trân trọng và biết ơn Các kết quả trích dẫntrong luận văn này đã được chỉ rõ nguồn gốc
Hà Nội, ngày 08 tháng 06 năm 2018
Tác giả luận văn
Nguyễn Diệu Linh
Trang 5Mục lục
1.1 Kiến thức cơ sở 81.1.1 Bảng chữ, từ, ngôn ngữ 81.1.2 Ngôn ngữ chính quy và biểu thức chính quy 121.2 Otomat hữu hạn 151.2.1 Otomat hữu hạn đơn định 151.2.2 Otomat hữu hạn không đơn định 211.2.3 Sự tương đương giữa otomat đơn định và không
đơn định 241.2.4 Quan hệ giữa otomat hữu hạn và ngôn ngữ chính
quy 271.2.5 Định lý Myhill – Nerode và tối thiểu hóa otomat
hữu hạn 30
2 Ứng dụng của otomat hữu hạn trong phân tích từ vựng 382.1 Tổng quan về ứng dụng của otomat 38
Trang 62.1.1 Thiết kế và kiểm tra hoạt động của các mạch số 39
2.1.2 Tìm kiếm từ trong văn bản 40
2.2 Phân tích từ vựng 46
2.2.1 Vai trò của bộ phân tích từ vựng 46
2.2.2 Lưu trữ tạm chương trình nguồn 50
2.2.3 Nhận dạng token 53
2.2.4 Ngôn ngữ đặc tả cho bộ phân tích từ vựng 60
Trang 7Mở đầu
1 Lý do chọn đề tài
Ngôn ngữ hình thức là một sự tổng quát của ngôn ngữ tự nhiêndưới dạng mô hình toán học, được nghiên cứu từ năm 1879 bởi G.Fregeđược phát triển bởi N Chomsky cùng nhiều tác giả khác vào những năm
50 của thế kỉ trước Otomat hữu hạn là một mô hình máy trừu tượngkhá đơn giản dùng để đoán nhận lớp ngôn ngữ chính quy - một lớp ngônngữ có nhiều tính chất đặc biệt và được ứng dụng nhiều trong lĩnh vựccông nghệ thông tin Otomat hữu hạn có vai trò quan trọng trong xử lýngôn ngữ, mật mã và có nhiều ứng dụng trong khoa học, kỹ thuật vàthực tế Với mong muốn tìm hiểu sâu hơn về otomat hữu hạn và nhữngứng dụng của chúng, dưới sự hướng dẫn của TS Kiều Văn Hưng emquyết định chọn đề tài nghiên cứu “Otomat hữu hạn và ứng dụng trongphân tích từ vựng” cho luận văn tốt nghiệp thạc sĩ chuyên ngành Toánứng dụng
2 Mục đích nghiên cứu
Tìm hiểu về otomat hữu hạn và ứng dụng của chúng trong phântích từ vựng
Trang 83 Nhiệm vụ nghiên cứu
Trình bày một cách hệ thống về lý thuyết otomat hữu hạn và ứngdụng của otomat hữu hạn trong phân tích từ vựng
4 Đối tượng và phạm vi nghiên nghiên cứu
• Đối tượng nghiên cứu: Otomat hữu hạn và ứng dụng của otomattrong phân tích từ vựng
• Phạm vi nghiên cứu: Tìm hiểu tổng quan về otomat hữu hạnđơn định và otomat hữu hạn đa định
5 Phương pháp nghiên cứu
Tìm hiểu các tài liệu, sách, báo liên quan đến các kết quả đã có vềotomat hữu hạn Tổng hợp kiến thức và trình bày một cách hệ thống
6 Đóng góp mới
Hệ thống các kiến thức về otomat hữu hạn và ứng dụng của otomat,góp phần làm sinh động hơn các kết quả, sự hiểu biết về otomat và ngônngữ chính quy Hi vọng luận văn là một tài liệu tham khảo hữu ích về
lý thuyết otomat, ngôn ngữ hình thức nói chung và lớp ngôn ngữ chínhquy nói riêng
Trang 9Chương 1 Otomat hữu hạn
Lý thuyết otomat đề cập một mô hình tính toán có vai trò quantrọng trong lĩnh vực khoa học máy tính Mô hình otomat hữu hạn làcông cụ hữu hiệu để nghiên cứu về lý thuyết tính toán và những lĩnh vựcliên quan đến khoa học máy tính với nhiều ứng dụng quan trọng trong
xử lý văn bản, trình biên dịch, thiết kế phần cứng, ngôn ngữ lập trình
và trí tuệ nhân tạo Một số nhà khoa học tiêu biểu phát triển mạnhhướng nghiên cứu này là Mecullock, Pittis (1943), Kleene (1956), Mc –Naughton, Yamad (1960), Rabin, Shepherdson (1959), Với các nghiêncứu về otomat hữu hạn đơn định (DFA – Deterministic Finite Automat),otomat hữu hạn không đơn định (NFA – Nondeterministic Finite Au-tomat), otomat không đơn định với ε chuyển (ε − N F A), otomat hữuhạn 2 phía (two – way Finite Automat), otomat hữu hạn có ra (FiniteAutomat with output), Trong luận văn này, chúng ta chỉ tìm hiểuotomat hữu hạn đơn định (DFA) và otomat hữu hạn không đơn định(NFA)
Trang 101.1 Kiến thức cơ sở
1.1.1 Bảng chữ, từ, ngôn ngữ
Định nghĩa 1.1 Một tập hợp khác rỗng, hữu hạn hay vô hạn được gọi
là bảng chữ Mỗi phần tử của bảng chữ được gọi là một chữ hay một kíhiệu
Trong luận văn này chúng ta chỉ xét các bảng chữ hữu hạn, thườngđược kí hiệu là Σ
kì chữ nào trong bảng chữ và được kí hiệu là ε
Như vậy, một từ trên bảng chữ Σ là một dãy hữu hạn gồm một sốlớn hơn hay bằng không các chữ của Σ, trong đó một chữ có thể xuấthiện nhiều lần
Tổng số vị trí của các kí hiệu xuất hiện trong từ α được gọi là độdài của từ α và kí hiệu |α| Quy ước |ε| = 0
Tập tất cả các từ trên bảng chữ Σ được kí hiệu là Σ∗ và Σ+ =
Σ∗\ {ε} Nói cách khác, Σ∗ = Σ+∪ {ε}
Ví dụ 1.2 Cho Σ = {1, 2, 3, , n}, Γ = {x, y} là 2 bảng chữ Khi đóxyx và xxy là các từ trên bảng chữ Γ và |xyx| = |xxy| = 3 1, 12, 21,
Trang 11- Phép nhân ghép: Tích ghép (hay nhân ghép) của hai từ α và β
là từ α.β = β.α = a1a2 amb1b2 bn
- Phép lấy từ ngược: Giả sử từ α 6= ε thì từ αR = amam−1 a2a1 là
từ ngược (hay từ soi gương) của từ α
- Phép chia từ: là phép ngắt bỏ phần đầu hay phần cuối của một
từ Phép chia trái (phải) của từ α cho từ β(tương ứng, γ) hay gọi làthương bên trái (phải) của α và β(tương ứng, γ) cho kết quả là phầncòn lại của từ α sau khi ngắt bỏ phần đầu (cuối) β(tương ứng, γ) trong
từ α, và được ký hiệu là α/γ (tương ứng, β\α)
Ví dụ 1.3 Cho các từ α = 1231331223, β = 123, γ = 223 trên bảngchữ Σ = {1, 2, 3} Khi đó:
Trang 12trên mọi bảng chữ Ta phân biệt ngôn ngữ rỗng L 6= ∅ khác với ngônngữ chỉ gồm một phần tử rỗng L = {ε}.
L2 là hai ngôn ngữ trên bảng chữ Σ thì ta có các ngôn ngữ mới sau đâytrên bảng chữ Σ
- Phép hợp: Hợp của hai ngôn ngữ L1 và L2 trên bảng chữ Σ, kýhiệu L1 ∪ L2, là một ngôn ngữ trên bảng chữ Σ xác định như sau
Trang 13Tương tự như vậy ta có thể định nghĩa giao của của một số hữu hạn cácngôn ngữ L1, L2, , Ln (n ≥ 2) trên bảng chữ Σ như sau
n
T
i=1
Li = ω ∈ Σ∗ | ω ∈ Li, với mọi i, 1 ≤ i ≤ n
- Phép hiệu: Cho hai ngôn ngữ L1 và L2 trên bảng chữ Σ, ký hiệu
L1 \ L2 hoặc L1 − L2, là một ngôn ngữ trên bảng chữ Σ xác định nhưsau
∞
S
n=0
Ln.+ Tập từ L ∪ L2 ∪ ∪ Ln ∪ =
∞
S
n=1
Ln
Trang 14- Phép lấy ngôn ngữ ngược: Cho ngôn ngữ L trên bản chữ Σ, khi
đó ngôn ngữ ngược của L là một ngôn ngữ trên bảng chữ Σ, ký hiệu LR,
xác định bởi
LR = ω ∈ Σ∗ | ωR ∈ L
- Phép chia ngôn ngữ: Cho ngôn ngữ X và Y trên bảng chữ Σ, khi
đó thương bên trái (phải) của ngôn ngữ X cho ngôn ngữ Y là một ngôn
ngữ trên Σ, ký hiệu Y\X (X/Y), được xác định
Y\X = z ∈ Σ∗ | x ∈ X, y ∈ Y mà x = yz (X/Y = z ∈ Σ∗ | x ∈ X, y ∈ Y mà x = zy )
Ví dụ 1.5 Xét các ngôn ngữ L0 = {x, y}, L1 = {xx, yyy, yx, yyx}, L2 =
{xx, yyy, xyxx, yxx, xyx} và L3 = {ε, yx} trên bảng chữ Σ = {x, y} Ta
thực hiện các phép toán sau:
+ Phép hợp: L1 ∪ L2 = {xx, yyy, yx, yyx, xyxx, yxx, xyx};
+ Phép giao: L1 ∩ L2 = {xx, yyy};
+ Phép lặp: L20 = {xx, yx, xy, yy}, L30 = {xxx, xxy, xyx, yxx, yyx, yxy, xyy, yyy};+ Phép lấy phần bù: L20 = {ω ∈ Σ∗ | |ω| 6= 2};
+ Phép lấy ngôn ngữ ngược: LR1 = {xx, yyy, xy, xyy};
+ Phép nhân ghép: L1L0 = {xxx, yyyx, yxx, yyxx, xxy, yyy, yxy, yyxy};
+ Phép chia ngôn ngữ:
L 3\L 1 = {xx, yyy, yx, yyx, ε}, L1/L3 = {xx, yyy, yx, yyx, ε, y}
1.1.2 Ngôn ngữ chính quy và biểu thức chính quy
Định nghĩa 1.4 Cho bảng chữ Σ = {a1, a2, , an} Khi đó ngôn ngữ
chính quy được định nghĩa đệ quy như sau:
Trang 15(i) Các ngôn ngữ rỗng và ngôn ngữ gồm một phần tử {ai} với
i = 1, n được gọi là ngôn ngữ chính quy trên Σ
(ii) Nếu L1 và L2 là hai ngôn ngữ chính quy trên Σ thì L1 ∪ L2,
L1L2, L∗1, L∗2 cũng là các ngôn ngữ chính quy trên Σ
(iii) Không có ngôn ngữ chính quy nào khác trên Σ ngoài các ngônngữ chính quy được định nghĩa ở trên
Định lý 1.2 (Bổ đề Bơm) Nếu L là ngôn ngữ chính quy thì tồn tại một
số nguyên dương n sao cho với mọi w ∈ L và |w| ≥ n đều tồn tại mộtcách phân tích w có dạng w = xyz với |xy| ≤ n và |y| ≥ 1, sao cho
Trang 16Định nghĩa 1.5 Cho bảng chữ Σ = {a1, a2, , an} , khi đó biểu thứcchính quy được định nghĩa đệ quy như sau:
(i) φ, ai(ai ∈ Σ) được gọi là biểu thức chính quy trên bảng chữ Σbiểu diễn ngôn ngữ rỗng và ngôn ngữ {ai}
(ii) Nếu l1 và l2 là hai biểu thức chính quy trên bảng chữ Σ thì
l1 + l2, l1.l2, l1∗, l∗2 cũng là các biểu thức chính quy trên bảng chữ Σ biểudiễn các ngôn ngữ L1 ∪ L2, L1L2, L∗1, L∗2
(iii) Không có biểu thức chính quy nào khác trên bảng chữ Σ ngoàicác biểu thức chính quy được định nghĩa ở trên
Định nghĩa 1.6 Hai biểu thức chính quy l1 và l2 gọi là tương đươngnếu chúng biểu diễn cùng một ngôn ngữ, kí hiệu l1 = l2
Một số tính chất của biểu thức chính quy
Với l1, l2, l3 là các biểu thức chính qui trên Σ ta có các kết quả sau:+ l1 + l2 = l2 + l1
Định lý 1.5 Một ngôn ngữ trên bảng chữ Σ là chính quy khi và chỉ khi
nó được biểu diễn bằng một biểu thức chính quy
Ví dụ 1.7
Trang 17+ Biểu thức 01 biểu diễn ngôn ngữ chính quy {01}
+ Biểu thức chính quy a (a + b) biểu diễn ngôn ngữ chính quy{a} ({a} ∪ {b}) = {a} {a, b} = a2, ab
+ Biểu thức chính quy (0 + 1)∗000(0 + 1)∗ biểu diễn ngôn ngữchính quy {0, 1}∗{000} {0, 1}∗, tức ngôn ngữ đó gồm tất cả các từ có ba
1.2.1 Otomat hữu hạn đơn định
Mô cách phi hình thức, otomat hữu hạn là "máy" đoán nhận từgồm 3 thành phần:
+ Có một băng vào, mỗi ô ghi một chữ của bảng chữ Σ
+ Có một đầu đọc, mỗi thời điểm quan sát một ô trên băng vào
Trang 18+ Có một bộ điều khiển gồm hữu hạn trạng thái, tại mỗi thời điểm
có một trạng thái hiện thời
Hình 1.1: Mô tả một DFA
Hoạt động của otomat hữu hạn
+ Otomat hữu hạn làm việc theo từng bước rời rạc Một bước làmviệc như sau: Tùy theo trạng thái hiện thời của Q và kí hiệu mà đầu đọcquan sát được mà otomat chuyển sang trạng thái mới, đồng thời đầuđọc dịch chuyển sang phải 1 ô Quy luật chuyển trạng thái được cho bởi
+ Tập hợp mọi xâu đoán nhận của otomat lập thành ngôn ngữđoán nhận được bởi otomat đó
Định nghĩa 1.7 Otomat hữu hạn đơn định(DFA) là một bộ gồm 5thành phần A = (Q, Σ, δ, q0, F ), trong đó:
Trang 19+ Q là một tập hữu hạn khác rỗng các trạng thái;
+ Σ là một bảng chữ, được gọi là bảng chữ vào;
+ δ : Q × Σ → Q là hàm chuyển trạng thái;
+ q0 ∈ Q được gọi là trạng thái bắt đầu;
+ F ⊆ Q được gọi là tập trạng thái kết thúc
Nếu δ (q, a) xác định ∀q ∈ Q, ∀a ∈ Σ, thì otomat A được gọi làotomat hữu hạn đơn định đầy đủ
δ (q, w) , a
Vì bδ(q, a) = δ(bδ(q, ε), a) = δ(q, a), với mọi a ∈ Σ nên người tathường kí hiệu δ thay cho bδ
Ngôn ngữ đoán nhận bởi DFA:
Một chuỗi w được đoán nhập bởi otomat hữu hạn đơn định A =(Q, Σ, δ, q0, F ) , nếu δ (q0, w) = p với p ∈ F
Ngôn ngữ được đoán nhận bởi A, ký hiệu L(A) là tập hợp:
L (A) = {w|δ (q0, w) ∈ F } Định nghĩa 1.8 Hai otomat cùng đoán nhận một ngôn ngữ thì gọi làhai otomat tương đương
Biểu diễn otomat hữu hạn đơn định
Trang 20Cho otomat hữu hạn đơn định A = (Q, Σ, δ, q0, F ) với Q = {q0, q1, , qm}
và Σ = {a1, a2, , an}
Biểu diễn otomat bằng bảng chuyển
Dựa vào hàm chuyển của otomat hữu hạn A, ta lập bảng chuyểnvới các ô (i, j) như sau:
Biểu diễn otomat bằng đồ thị chuyển
Hàm chuyển của otomat A có thể được biểu diễn bằng một đồ thịchuyển có hướng, có khuyên G được xây dựng như sau:
+ Tập đỉnh của G được gán nhãn bằng các trạng thái qi, với qi ∈ Q.+ Một cung có hướng từ đỉnh qi sang đỉnh qj và trên cung đượcgán nhãn a nếu có hàm chuyển δ (qi, a) = qj
+ Đỉnh vào của đồ thị G luôn là q0 và được đánh đấu → ở phíabên trái Các đỉnh có các trạng thái kết thúc của đồ thị được vẽ bằngđường tròn nét đậm và các đỉnh còn lại được vẽ bằng đường tròn nétmảnh
Trang 21Ví dụ 1.9.
Cho otomat hữu hạn đơn định A = (Q, Σ, δ, q0, {q3}), trong đó
Q = {q0, q1, q2, q3}, Σ = {a, b} và hàm chuyển δ xác định như sau:
δ (q0, b) = q1; δ (q1, b) = q2; δ (q2, a) = q3; δ (q3, a) = q3; δ (q3, b) = q3
Ta có bảng chuyển và đồ thị chuyển của otomat A được cho trongcác hình sau:
Hình 1.2: Bảng chuyển trạng thái của otomat A
Hình 1.3: Đồ thị chuyển của otomat A
Dãy trạng thái của otomat A đoán nhận từ w = bbabaa Suy ra
từ w được đoán nhận bởi otomat A Vậy ngôn ngữ được đoán nhận bởiotomat A là L (A) = {bbaw|w ∈ {a, b}∗}
Ví dụ 1.10
Cho otomat hữu hạn đơn định A = (Q, Σ, δ, q0, {q2}), trong đó Q ={q0, q1, q2, q3}, Σ = {0, 1} và hàm chuyển δ xác định như sau: δ (q0, 1) =
q1; δ (q1, 1) = q2; δ (q2, 0) = q3; δ (q3, 0) = q3; δ (q3, 1) = q1
Trang 22Hình 1.4: Bảng chuyển của otomat A
Ta có bảng chuyển đổi và đồ thị chuyển của otomat A được chotrong các hình sau:
Hình 1.5: Bảng chuyển của otomat A
Hình 1.6: Đồ thị chuyển của otomat A
Dãy trạng thái của otomat A trong quá trình đoán nhận từ
w = 110110
Vậy otomat A không đoán nhận từ w Dễ kiểm tra được otomat
A đoán nhận ngôn ngữ L (A) = {(110)n(011)m|n ≥ 1, m ≥ 1}
Trang 23Hình 1.7: Quá trình đoán nhận từ w của otomat A
1.2.2 Otomat hữu hạn không đơn định
Xét một dạng sửa đổi mô hình DFA để chấp nhận không, mộthoặc nhiều hơn một phép chuyển từ một trạng thái trên cùng một kýhiệu vào Mô hình này gọi là otomat hữu hạn không đơn định (NFA).Định nghĩa 1.9 Otomat hữu hạn không đơn định (NFA) là một bộ 5thành phần (Q, Σ, δ, q0, F ) , trong đó Q, Σ, q0 và F có ý nghĩa như trongDFA, nhưng hàm chuyển δ là ánh xạ từ Q × Σ → 2Q
Khi đó δ (q, a) là tập hợp tất cả các trạng thái p sao cho có phépchuyển trên nhãn a từ trạng thái q tới p
Tương tự DFA, NFA cũng được biểu diễn bởi bảng chuyền và đồthị chuyển
Hàm chuyển trạng thái mở rộng:
Để thuận tiện trong việc mô tả hoạt động otomat trên chuỗi, ta
mở rộng hàm chuyển bδ : Q × Σ∗ → 2Q như sau:
+ bδ (q, e) = {q} ;
+ bδ (q, wa) =
np| vớir ∈ bδ(q, w), p ∈ δ(r, a)
o
= δ (δ (q, w) , a) + bδ (P, w) = ∪q∈Pbδ(q, w)
Dễ kiểm tra rằng bδ(q, a) = δ(q, a), ∀a ∈ Σ Do đó người ta cũngđồng nhất δ với bδ
Trang 24Hình 1.8: Sơ đồ chuyển của một NFA
Ngôn ngữ được đoán nhận bởi NFA:
Một chuỗi ký hiệu vào a1a2 an được chấp nhận bởi một NFA nếu
có tồn tại một chuỗi các phép chuyển, tương ứng với chuỗi vào, từ trạngthái bắt đầu đến trạng thái kết thúc Chẳng hạn, chuỗi 01001 được chấpnhận bởi otomat trong hình 1.12 vì có chuỗi phép chuyển qua các trạngthái q0, q0, q0, q3, q4, q4 có nhãn tương ứng là 0, 1, 0, 0, 1 NFA này chấpnhận tất cả các chuỗi có hai số 0 liên tiếp hoặc hai số 1 liên tiếp
Chú ý rằng có thể xem otomat hữu hạn đơn định (DFA) là mộttrường hợp đặc biệt của NFA, trong đó mỗi trạng thái chỉ có duy nhấtmột phép chuyển trên mỗi ký hiệu vào Vì thế trong DFA, với một chuỗivào w và trạng thái q, chỉ có đúng một đường đi nhãn w bắt đầu từ
q Để xác định chuỗi w có được chấp nhận bởi DFA hay không chỉ cầnkiểm tra đường đi này Nhưng đối với NFA, có thể có nhiều đường đi cónhãn là w, và do đó tất cả phải được kiểm tra để thấy có hay không cóđường đi tới trạng thái kết thúc
Trang 25Hình 1.9: Quá trình đoán nhận từ 01001 của otomat NFA
Ngôn ngữ L(A), với A là otomat hữu hạn không đơn định (Q, Σ, δ, q0, F )
là tập hợp:
L (A) = {w|δ (q0, w) có chứa một trạng thái trong F }
Ví dụ 1.11
Cho otomat hữu hạn không đơn định A = (Q, Σ, δ, q0, {q0}), trong
đó Q = {q0, q1, q2, q3}, Σ = {0, 1} và hàm chuyển δ xác định như sau:
Trang 26Hình 1.11: Đồ thị chuyển của otomat A
Dãy trạng thái của otomat A trong quá trình đoán nhận từ w1 =
1100101 và w2 = 1100100
Hình 1.12: Quá trình đoán nhận từ w 1 của otomat A
Hình 1.13: Quá trình đoán nhận từ w2 của otomat A
Vậy otomat A đoán nhận từ w1 nhưng không đoán nhận w2
1.2.3 Sự tương đương giữa otomat đơn định và không đơn
định
Giả sử N = (QN, Σ, δN, q0, FN) là otomat không đơn định, khi đó
ta có thể xây dựng otomat đơn định tương đương với otomat không đơn
Trang 27định N là otomat D = (QD, Σ, δD, s0, FD) (theo nghĩa đoán nhận cùngmột ngôn ngữ) Việc xây dựng otomat D được thực hiện theo thuật toánsau đây, gọi là thuật toán đơn định hóa otomat.
Bước 1 : Xây dựng hàm hai biến T : 2QN × Σ → 2QN thỏa mãn:
+ Với mọi q ∈ QN, a ∈ Σ thì
T (q, a) = {q0 ∈ QN|q0 = δ (q, a)} + Với mọi b ⊆ QN, a ∈ Σ mà δ (q, a) = B thì
+ Đặt si+1 = B1, si+2 = B2, , với mọi B1, B2, ⊆ QN mà
δ (q, a) = Bj
+ Nếu otomat N là không đầy đủ, đặt sk = ∅ và thêm vào hàmchuyển δD các giá trị δD(sk, a) = sk với mọi a ∈ Σ để otomat D là đầyđủ
+ Tập trạng thái kết thúc của otomat D là FD = {s ∈ Q|s ∩ FN 6= ∅} Bước 3 : Xác định hàm chuyển δD : QD × Σ → QD của otomat D:
Trang 28hữu hạn đơn định trùng khớp với lớp ngôn ngữ đoán nhận bởi otomathữu hạn không đơn định.
Chứng minh Giả sử otomat hữu hạn đơn định D đoán nhận ngôn ngữ
L (D) và otomat hữu hạn không đơn định B đoán nhận ngôn ngữ L (N )
Ta phải chứng minh L (D) = L (N ) Thật vậy:
Theo định nghĩa otomat đơn định và không đơn định, thì lớp ngônngữ đoán nhận được bởi otomat đơn định nằm trong lớp ngôn ngữ đoánnhận được bởi otomat không đơn định
Giả sử w ∈ Σ∗ được đoán nhận bởi otomat không đơn định N =(QN, Σ, δN, q0, FN) hay w ∈ L (N ) Ta xây dựng otomat đơn định D =(QD, Σ, δD, s0, FD) đoán nhận w bằng thuật toán đơn định hóa ở trên.Với otomat đơn định D định nghĩa như thế thì ta có w ∈ L (D) hay
L (N ) ⊆ L (D) Vậy L (D) = L (N )
Ví dụ 1.12
Cho otomat không đơn định N = (QN, Σ, δN, q0, FN) với w ∈
L (N ) , trong đó Σ = {a, b} , QN = {q0, q1} , FN = {q1}, còn hàm chuyển
δN : QN → 2Q được cho bởi bảng chuyển sau:
Bước 1 : Xây dựng hàm hai biến T : 2QN × Σ → 2Q N :
+ T (q0, a) = {q0, q1}
+ T (q0, b) = {q0}
+ T (q1, a) = ∅
Trang 29+ T (q1, b) = {q0, q1}
+ T ({q0, q1} , a) = T (q0, a) ∪ T (q1, a) = {q0, q1} ∪ ∅ = {q0, q1} + T ({q0, q1} , b) = T (q0, b) ∪ T (q1, b) = {q0} ∪ {q0, q1} = {q0, q1} Bước 2 : Đặt s0 = {q0} , s1 = {q1} , s2 = {q0, q1} , s3 = ∅ Khi đó:+ Tập trạng thái của otomat hữu hạn đơn định D là QD ={s0, s1, s2, s3}
+ Trạng thái khởi đầu của otomat hữu hạn đơn định D là s0.+ Tập trạng thái kết thúc của otomat hữu hạn đơn định D là
1.2.4 Quan hệ giữa otomat hữu hạn và ngôn ngữ chính quy
Định lý 1.7 Một ngôn ngữ là chính quy khi và chỉ khi nó được đoánnhận bởi một otomat hữu hạn
Chứng minh Điều kiện cần
Trang 301 Ngôn ngữ rỗng là ngôn ngữ chính quy được đoán nhận bởi mộtotomat rỗng, tức không có đường đi nào từ trạng thái bắt đầu.
2 Ngôn ngữ {ε} được đoán nhận bởi một otomat hữu hạn A =
Trang 312 Giả sử otomat M có t trạng thái (t ≥ 3) đoán nhận ngôn ngữchính quy Khi đó ta sẽ chứng minh otomat M có t + 1 trạng thái, tức
Q = {s0, s1, , sm, sm+1, , st−1, st} , trong đó s0 là trạng thái ban đầu
và st là trạng thái kết thúc đoán nhận ngôn ngữ L
Gọi L1 là tập các nhãn từ s0 đến st không đi qua sm đoán nhậncác ngôn ngữ L1 và L2 là tập các nhãn từ s0 đến st đi qua sm lần lợtđoán nhẫn các ngôn ngữ L2 Khi đó L = L1∪ L2 Dễ thấy L1 là ngôn ngữđược đoán nhận bởi otomat có 2 trạng thái nên L1 là ngôn ngữ chínhquy
Tách tập nhãn L2 thành các tập L3, L4, L5 Trong đó:
L3 là tập các nhãn đi từ s0 đến sm một lần, đoán nhận ngôn ngữ L3;
L4 là tập các nhãn đi từ sm đến sm nhiều lần, đoán nhận ngôn ngữ L4;
L5 là tập các nhãn đi từ sm đến st một lần, đoán nhận ngôn ngữ L5
Từ đây suy ra L2 = L3∪ L4∪ L5 Ta thấy ngôn ngữ L3, L5 là chínhquy vì L3 và L5 đều có ít hơn t trạng thái Còn ngôn ngữ sinh ra bởi L4
Trang 32có dạng an dễ thấy là ngôn ngữ chính quy Do đó L2 = L3 ∪ L4 ∪ L5 làngôn ngữ chính quy Vậy L = L1 ∪ L2 cũng là ngôn ngữ chính quy.
1.2.5 Định lý Myhill – Nerode và tối thiểu hóa otomat hữu
Trang 33Hạng (index – số lớp tương đương) của RL hữu hạn nếu L là chínhquy.
Với DFA M = (Q, Σ, δ, q0, F ), ∀x, y ∈ Σ∗
xRMy ⇔ δ (q0, x) = δ (q0, y)Khi đó, RM là quan hệ tương đương và hơn nữa:
Nếu xRMy thì xzRMyz, ∀z ∈ Σ∗ vì ta có thể quy nạp theo độ dàicủa y để có
δ (q0, xz) = δ (δ (q0, x) , z) = δ (δ (q0, y) , z) = δ (q0, yz)
Do đó RM là quan hệ tương đương bất biến phải (right invariant).Định lý 1.8 (Định lý Myhill – Nerode) Ba điều sau đây là tương đương:
(1) Tập L ⊆ Σ∗ chấp nhận bởi một otomat hữu hạn;
(2) L là tập hợp của một số lớp tương đương của một quan hệ bấtbiến phải có dạng hữu hạn;
(3) Nếu quan hệ tương đương RL định nghĩa bởi
xRLy ⇔ ∀z ∈ Σ∗ : xz ∈ L ⇔ yz ∈ L;
Thế thì RL có hạng hữu hạn
Chứng minh (1) ⇒ (2) Giả sử L = L (M ) với M = (Q, Σ, δ, q0, F ) làDFA Khi đó, quan hệ RM định nghĩa bởi xRMy ⇔ δ (q0, x) = δ (q0, y)
là quan hệ tương đương bất biến phải
Hạng của RM là hữu hạn, vì không vượt quá số trạng thái trong
Q Ngoài ra, L là hợp của các lớp tương đương chứa các từ x sao cho
δ (q0, x) ∈ F, nghĩa là các lớp tương đương tương ứng với các trạng tháicuối
Trang 34(2) ⇒ (3) Ta chỉ ra rằng mọi quan hệ tương đương E thỏa mãn(2) là một sự làm mịn của RL, nghĩa là mỗi lớp tương đương của E đượcchứa trong một lớp tương đương nào đó của RL Do đó, hạng của RLkhông lớn hơn hạng của E và vì vậy là hữu hạn.
Giả sử xEy Vì E˘ bất biến phải, với z ∈ Σ∗ : xzEyz ⇒ yz ∈ L ⇔
xz ∈ L ⇔ xRLy (vì L là hợp của các lớp tương đương của E)
Do đó, lớp tương đương của x trong R chứa trong lớp tương đươngcủa x trong RL
(3) ⇒ (1)
+ RL là bất biến phải (chứng minh theo định nghĩa)
+ Xây dựng M0 = (Q0, Σ, δ0, q0 0, F0) sao cho L (M0) = L
Ở đó: Q0 = các lớp tương đương của RL