• Otomat hữu hạn không tất định
(1)Toán rời rạc
TS Đỗ Đức Đơng
(2)Mơ hình tính tốn
1 Ngôn ngữ văn phạm
Văn phạm cấu trúc câu
Phân loại văn phạm cấu trúc câu
2 Các máy hữu hạn trạng thái
Máy hữu hạn trạng thái có đầu
Máy hữu hạn trạng thái khơng có đầu Sự chấp nhận ngôn ngữ
3 Máy Turing
(3)Mô tả ngôn ngữ
• Một chữ (một từ vựng) V tập không rỗng, hữu hạn
Các phần tử tập gọi ký hiệu; Một từ (hoặc câu) V xâu phần tử V có chiều dài hữu hạn Xâu rỗng,
được ký hiệu 𝜆, xâu không chứa ký hiệu Tập tất từ V ký hiệu V* Một ngôn ngữ trên V tập V*
• Ngơn ngữ mơ tả cách
Liệt kê từ ngôn ngữ;
Chọn số tiêu chuẩn mà từ thuộc ngôn ngữ phải thỏa mãn
Mơ tả thơng qua dùng văn phạm: Quy tắc sinh ngôn ngữ; số phần tử từ vựng
(4)Văn phạm cấu trúc câu
• Một văn phạm cấu trúc câu G=(V, T, S, P) gồm từ vựng V, tập T V phần tử kết thúc, ký hiệu xuất phát S tập sản xuất P Tập V-T tập không kết thúc (N) Mỗi sản xuất P cần phải chứa ký hiệu không kết thúc vế trái
• Ví dụ 1, G=(V, T, S, P), V={“tơi” “anh”, ”làm việc”, chu_ngu, vi_ngu, S}, T={“tơi”,”anh”,”làm việc”}, S ký hiệu xuất phát sản xuất {𝑆 →chu_ngu vi_ngu, chu_ngu → “tôi”, chu_ngu → “anh”, vi_ngu → “làm việc”}
(5)Dẫn xuất
Cho G=(V, T, S, P) văn phạm cấu trúc câu
• Cho 𝑤0 = 𝐴𝑋𝐵 𝑤1 = 𝐴𝑌𝐵 xâu V, có sản xuất 𝑋 → 𝑌 ta nói 𝑤1 dẫn xuất trực tiếp từ 𝑤0 Ký hiệu 𝑤0 ⇒ 𝑤1
• Nếu 𝑤0, 𝑤1, … , 𝑤𝑛 xâu V cho 𝑤0 ⇒ 𝑤1; 𝑤1 ⇒
𝑤2; … ; 𝑤𝑛−1 ⇒ 𝑤𝑛 ta nói 𝑤𝑛 dẫn xuất từ 𝑤0, ký hiệu 𝑤0 ⇒ 𝑤ሶ 𝑛 Dãy bước dùng để nhận 𝑤𝑛 từ 𝑤0 gọi dẫn xuất
(6)Ngôn ngữ sinh văn phạm
Cho G=(V, T, S, P) văn phạm cấu trúc câu
• Ngơn ngữ sinh văn phạm G (hay gọi ngôn ngữ G), ký hiệu L(G) tập hợp tất xâu gồm ký hiệu kết thúc dẫn xuất từ ký hiệu xuất phát S
𝐿 𝐺 = 𝑤 ∈ 𝑇∗ 𝑆 ሶ⇒ 𝑤}
(7)(8)(9)(10)(11)Các loại văn phạm cấu trúc câu
• Các loại văn phạm cấu trúc câu phân loại theo loại sản xuất
• Phân loại Chomsky đưa
• Văn phạm loại 0: khơng có hạn chế sản xuất • Văn phạm loại 1: có dạng sản xuất có dạng 𝑤1 → 𝑤2,
trong chiều dài 𝑤2 lớn chiều dài 𝑤1 có dạng 𝑤1 → 𝜆
• Văn phạm loại 2: có dạng sản xuất có dạng 𝑤1 → 𝑤2, chiều dài 𝑤1 ký hiệu đơn ký hiệu kết thúc
(12)(13)(14)Tìm văn phạm cấu trúc sinh tập {0n1m} bằng văn phạm quy
• 𝑉 = 𝑆, 𝐴, 0, ; 𝑇 = 0,1 ; 𝑃 = {𝑆 → 0𝑆; 𝑆 → 1𝐴; 𝑆 → 𝜆; 𝐴 → 1𝐴; 𝐴 → 1}
(15)Cây dẫn xuất
Một dẫn xuất ngôn ngữ sinh văn phạm phi ngữ cảnh biểu diễn đồ thị nhờ cây, gọi dẫn xuất (cây cú pháp)
(16)(17)(18)(19)(20)Máy hữu hạn trạng thái có đầu ra
Máy bán hàng – Nguyên tắc hoạt động
Một máy bán hàng hoạt động theo nguyên tắc sau: 1) Máy nhận đồng xu, 10 xu, 25 xu
2) Nếu tổng số tiền đưa vào vượt 30 xu máy trả lại số tiền thừa (số tiền vượt 30 xu)
3) Giá cốc nước cam giá cốc nước táo 30 xu Khi máy nhận đủ 30 xu, người mua ấn nút màu cam nhận cốc nước cam, ấn vào nút màu đỏ nhận cốc nước táo
(21)Máy hữu hạn trạng thái có đầu ra
Máy bán hàng – Thiết kế máy (1)
- Các khả đầu vào là:
5 xu, 10 xu, 25 xu, nút màu cam (O), nút màu đỏ (R) - Các khả đầu là:
khơng có (n), xu, 10 xu, 15 xu, 20 xu, 25 xu, cốc nước cam (OJ), cốc nước táo (AJ)
- Các trạng thái máy:
(22)- Các khả đầu vào là: xu, 10 xu, 25 xu, nút màu cam (O), nút màu đỏ (R) - Các khả đầu là: khơng có (n), xu, 10 xu, 15 xu, 20 xu, 25 xu, OJ, AJ - Các trạng thái máy: có trạng thái khác 𝑠𝑖 (𝑖 = 0,1, … , 6)
(23)- Các khả đầu vào là: xu, 10 xu, 25 xu, nút màu cam (O), nút màu đỏ (R) - Các khả đầu là: khơng có (n), xu, 10 xu, 15 xu, 20 xu, 25 xu, OJ, AJ - Các trạng thái máy: có trạng thái khác 𝑠𝑖 (𝑖 = 0,1, … , 6)
(24)Máy hữu hạn trạng thái có đầu ra
• Một máy hữu hạn trạng thái 𝑀 = 𝑆, 𝐼, 𝑂, 𝑓, 𝑔, 𝑠0 , 𝑠0 ∈ 𝑆, 𝑆 tập hữu hạn trạng thái, 𝐼 chữ hữu hạn đầu vào, 𝑂 chữ hữu hạn đầu ra, 𝑓 hàm chuyển trạng thái 𝑓 𝑠, 𝑖 = 𝑠′ với
𝑠, 𝑠′ ∈ 𝑆, 𝑖 ∈ 𝐼, 𝑔 hàm đầu 𝑔 𝑠, 𝑖 = 𝑜 với 𝑠 ∈ 𝑆, 𝑖 ∈ 𝐼, 𝑜 ∈ 𝑂
(25)(26)(27)(28)Xâu đầu vào xâu đầu ra
• Một xâu đầu vào đưa trạng thái xuất phát qua dãy trạng thái xác định hàm chuyển Lần lượt từ trái sang phải, ký
hiệu đầu vào đưa máy từ trạng thái sang trạng thái khác
• Mỗi lần chuyển trạng thái tao đầu ra, với xâu đầu vào tạo xâu đầu
• Cụ thể, với xâu đầu vào 𝑥 = 𝑥1𝑥2 … 𝑥𝑘 máy chuyển qua trạng thái 𝑠1𝑠2 … 𝑠𝑘, 𝑠𝑖 = 𝑓(𝑠𝑖−1, 𝑥𝑖) tạo xâu đầu 𝑦 = 𝑦1𝑦2 … 𝑦𝑘, 𝑦𝑖 = 𝑔(𝑠𝑖−1, 𝑥𝑖)
(29)(30)(31)(32)(33)(34)Máy hữu hạn trạng thái khơng có đầu ra
Thay xây dựng máy hữu hạn trạng thái có đầu để đốn nhận ngơn ngữ
xây dựng máy hữu hạn trạng thái khơng có đầu có trạng thái kết thúc Một xâu chấp nhận đưa trạng thái xuất phát tới trạng thái kết thúc
(35)(36)Một số định nghĩa
• Cho A, B hai tập V* (V tập từ vựng) Phép ghép A, B được
ký hiệu AB tập tất xâu có dạng xy x thuộc A, y thuộc B
Ví dụ, A={0,11}, B={1,10,110} AB={01, 010, 0110, 111, 1110, 11110} BA = ?
• An = An-1 A (chú ý A0 = )
A={1,00} A2 = {11, 100, 001, 0000}
A3 = ?
• Cho A tập V* Khi bao đóng Kleen A ký hiệu là
A* là tập gồm xâu tạo cách ghép số tùy ý xâu thuộc A
A* = ڂ
𝑘=0
∞ 𝐴𝑘 Ví dụ, A={0} A* = {0n} với n>=0; B={00} B* = {02n} với
(37)(38)• Giả sử 𝑥 = 𝑥1𝑥2 … 𝑥𝑘 xâu 𝐼∗, 𝑓(𝑠0, 𝑥) trạng thái nhận cách dùng ký hiệu 𝑥
• Xâu 𝑥 gọi chấp nhận máy 𝑀 = (𝑆, 𝐼, 𝑓, 𝑠0, 𝐹) 𝑓(𝑠0, 𝑥) trạng thái kết thúc (thuộc 𝐹)
• Ngôn ngữ chấp nhận máy 𝑀 ký hiệu 𝐿(𝑀) tập tất xâu chấp nhận 𝑀
(39)(40)(41)a) Dựng ơtơmát hữu hạn đốn nhận tập 0*11(10)*.
(42)Otomat không tất định
• Các otomat xét đến thời điểm otomat tất định trạng thái giá trị đầu vào có trạng thái
• Các otomat xét đến thời điểm otomat khơng tất định trạng thái giá trị đầu vào có nhiều trạng thái
(43)• Giả sử 𝑥 = 𝑥1𝑥2 … 𝑥𝑘 xâu 𝐼∗, 𝑆1 = 𝑓 𝑠0, 𝑥1 , 𝑆2 = ڂ𝑠∈𝑆1 𝑓(𝑠, 𝑥2) , … , 𝑆𝑘 = ڂ𝑠∈𝑆𝑘−1 𝑓(𝑠, 𝑥𝑘)
• Xâu 𝑥 gọi chấp nhận máy hữu hạn không tất định 𝑀 = (𝑆, 𝐼, 𝑓, 𝑠0, 𝐹) 𝑆𝑘 chứa trạng thái kết thúc (thuộc 𝐹)
• Ngơn ngữ chấp nhận máy 𝑀 ký hiệu 𝐿(𝑀) tập tất xâu chấp nhận 𝑀
(44)(45)(46)(47)(48)(49)(50)Sự chấp nhận ngôn ngữ
Otomat hữu hạn đốn nhận ngơn ngữ
(51)Biểu thức quy (tập quy)
• Biểu thức quy tập 𝐼
Ký hiệu ∅ biểu thức quy Ký hiệu 𝜆 biểu thức quy
Ký hiệu 𝑥 biểu thức quy với 𝑥 ∈ 𝐼
Các ký hiệu 𝐴𝐵 , 𝐴 ∪ 𝐵 , 𝐴∗ là biểu thức quy với 𝐴, 𝐵 là
các biểu thức quy
• Mỗi biểu thức quy biểu diễn tập đặc tả quy tắc sau:
Ký hiệu ∅ biểu diễn tập rỗng
Ký hiệu 𝜆 biểu diễn tập {𝜆}, tập chứa xâu rỗng
(52)(53)Định lý Kleene: Một tập biểu thức quy và
chỉ chấp nhận otomat hữu hạn
• Mọi tập quy chấp nhận otomat hữu hạn ∅ chấp nhận otomat hữu hạn
𝜆 chấp nhận otomat hữu hạn
𝑥 chấp nhận otomat hữu hạn với 𝑥 ∈ 𝐼
𝐴𝐵 chấp nhận otomat hữu hạn 𝐴, 𝐵 chấp nhận
(54)(55)(56)Tập hợp quy văn phạm quy
• Văn phạm loại (văn phạm quy): có dạng sản xuất có dạng 𝑤1 → 𝑤2, 𝑤1 = 𝐴 𝑤2 = 𝑎𝐵 𝑤2 = 𝑎 (trong 𝐴, 𝐵 ký hiệu khơng kết thúc, cịn 𝑎 ký hiệu kết thúc) có dạng 𝑤1 = 𝑆 𝑤2 = 𝜆
(57)(58)(59)(60)(61)(62)Máy Turing (1)
• Các máy otomat hữu hạn cịn đơn giản, đốn nhận biểu thức quy (sinh văn phạm quy), khơng đốn nhận tập dễ mơ tả {0n1n |n 0}
(63)Máy Turing (2)
Ở bước, đơn vị điều khiển đọc ký hiệu 𝑥 thời băng, đơn vị điều khiển trạng thái 𝑠 hàm 𝑓 𝑠, 𝑥 = (𝑠′, 𝑥′, 𝑑) đơn vị điều khiển:
1) Chuyển sang trạng thái 𝑠′;
2) Chuyển 𝑥′ vào ô thời sau xóa 𝑥;
(64)(65)Máy Turing đặc tả năm phần tử (s0,0,s1,B,R), (s0,1,s1,1,R), (s1,0,s1,0,R), (s1,1,s2,1,R), (s2,0,s1,0,R), (s2,1,s3,0,L),
(66)(67)(68)(69)(70)(71)(72)(73)(74)Tính hàm máy Turing
• Máy Turing 𝑇 cho xâu đầu vào 𝑥 dừng lại với xâu 𝑦 băng, định nghĩa 𝑇 𝑥 = 𝑦
• Miền xác định 𝑇 tập xâu làm cho 𝑇 dừng lại; 𝑇(𝑥) không xác định 𝑇 không dừng lại cho 𝑥 đầu vào
• Dùng biểu diễn phân số nguyên, cụ thể số nguyên 𝑛 biểu diễn xâu gồm 𝑛 + số Số biểu diễn 1, số biểu diễn 111111
(75)(76)Nhận xét
• Tính hàm đơn giản máy Turing phức tạp
• Để nhân hai số cần 31 phần tử 11 trạng thái Với cơng việc phức tạp sao?
Dùng đa băng (luôn xây dựng máy dùng băng làm máy đa băng)
(77)(78)(79)(80)(81)