Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
1,04 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN ====== TRẦN THỊ THU THỦY ÔTÔMÁTHỮUHẠNVÀỨNGDỤNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứngdụng HÀ NỘI - 2017 TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA TOÁN ====== TRẦN THỊ THU THỦY ÔTÔMÁTHỮUHẠNVÀỨNGDỤNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứngdụng Người hướng dẫn khoa học TS KIỀU VĂN HƯNG HÀ NỘI - 2017 Khóa luận tốt nghiệp Trần Thị Thu Thủy LỜI CẢM ƠN Trước hết em xin gửi lời cảm ơn đến thầy Kiều Văn Hưng, người hướng dẫn em nhiều suốt trình nghiên cứu hoàn thành khóa luận Sự hướng dẫn thầy giúp em có hiều biết số vấn đề liên quan đến ôtômát Đồng thời em xin gửi lời cảm ơn chân thành đến thầy cô môn thầy cô trường trang bị cho em kiến thức cần thiết để em hoàn thành khóa luận Em xin gửi lời cảm ơn đến thành viên lớp K39A_Toán, người bạn động viên tạo điều kiện để em nghiên cứu hoàn thành khóa luận Sau em xin gửi lời cảm ơn đến gia đình bên cạnh ủng hộ em học tập nghiên cứu Hà Nội, Ngày 23 tháng 04 năm 2017 Sinh viên Trần Thị Thu Thủy Khóa luận tốt nghiệp Trần Thị Thu Thủy LỜI CAM ĐOAN Khóa luận kết thân em trình nghiên cứu Bên cạnh đó, quan tâm hướng dẫn thầy cô khoa toán, đặc biệt hướng dẫn nhiệt tình thầy giáo Kiều Văn Hưng Trong trình nghiên cứu hoàn thành khóa luận em có tham khảo số tài liệu ghi ghi phần tài liệu tham khảo Em xin cam đoan kết đề tài “ ÔTÔMÁTHỮUHẠNVÀỨNGDỤNG “ trùng lặp chép đề tài khác Nếu sai em xin hoàn toàn chịu trách nhiệm Người cam đoan Sinh viên Trần Thị Thu Thủy Khóa luận tốt nghiệp Trần Thị Thu Thủy MỤC LỤC MỞ ĐẦU CHƯƠNG 1: LÝ THUYẾT MỞ ĐẦU 1.1 Ngôn ngữ 1.1.1 Bảng chữ 1.1.2 Xâu 1.1.3 Các phép toán xâu 1.1.4 Ngôn ngữ 1.1.5 Các phép toán ngôn ngữ CHƯƠNG : ÔTÔMÁTHỮUHẠN 11 2.1 Ôtômát 11 2.1.1 Một số khái niệm 11 2.1.2 Ôtômát 11 2.1.3 Hoạt động ôtômát 12 2.1.4 Phân loại ôtômát 13 2.2 Ôtômáthữuhạn đơn định 14 2.2.1 Ôtômáthữuhạn đơn định 14 2.2.2 Hoạt động ôtômáthữuhạn đơn định 14 2.2.3 Biểu diễn ôtômáthữuhạn đơn định 15 2.2.4 Hoạt động đoán nhận xâu 17 2.2.5 Ngôn ngữ đoán nhận ôtômát đơn định 18 2.3 Ôtômáthữuhạn không đơn định 19 2.3.1 Ôtômáthữuhạn không đơn định 19 Khóa luận tốt nghiệp Trần Thị Thu Thủy 2.3.2 Hoạt động ôtômáthữuhạn không đơn định 19 2.3.3 Biểu diễn ôtômáthữuhạn không đơn định 20 2.3.4 Hoạt động đoán nhận xâu 21 2.3.5 Ngôn ngữ đoán nhận ôtômát không đơn định 22 2.4 Sự tương đương ôtômáthữuhạn đơn định ôtômáthữuhạn không đơn định 22 2.4.1 Sự tương đương ôtômáthữuhạn đơn định ôtômáthữuhạn không đơn định 22 2.4.2 Xây dựngôtômáthữuhạn đơn định từ ôtômáthữuhạn không đơn định 24 CHƯƠNG 3: MỘT VÀI ỨNGDỤNG CỦA ÔTÔMÁTHỮUHẠN 26 3.1 Ứngdụng máy tính 26 3.1.1 Tìm kiếm xâu văn 26 3.1.2 Tìm kiếm văn 27 3.1.3 Nhận diện từ khóa 28 3.1.4 Bộ phân tích từ vựng 29 3.1.5 Trình soạn thảo văn 30 3.2 Ứngdụng thực tế 31 3.2.1 Máy giặt 31 3.2.2 Máy bán hàng tự động 32 KẾT LUẬN 33 TÀI LIỆU THAM KHẢO 34 Khóa luận tốt nghiệp Trần Thị Thu Thủy MỞ ĐẦU Lý chọn đề tài Ngày chứng kiến phát triển mãnh liệt lĩnh vực nghiên cứu toán học liên quan đến tin học máy tính Sự phát triển máy tính thay đổi sâu sắc liên quan đến phương pháp luận khoa học mở chân trời cho toán học với tốc độ sánh suốt chiều dài lịch sử toán học Những phát triển toán học mở thuở ban đầu cho tin học máy tính, tiến tin học dẫn đến phát triển mạnh mẽ số ngành toán học Lý thuyết ngôn ngữ hình thức ôtômát đóng vai trò quan trọng sở toán học tin học Vì em mạnh dạn nghiên cứu chuyên đề “ ÔTÔMÁTHỮUHẠNVÀỨNG DỤNG” Mục đích nghiên cứu Tìm hiểu cách tổng quan ôtômáthữu hạn, công cụ sinh ngôn ngữ Ngoài tìm hiểu số ứngdụngôtômáthữuhạn Đối tượng phạm vi nghiên cứu Đối tượng: kiến thức ôtômáthữuhạn Phạm vi: Nội dung kiến thức phạm vi lí thuyết ngôn ngữ hình thức ôtômát Nhiệm vụ Tìm hiểu lí thuyết ôtômáthữuhạnứngdụng Phương pháp nghiên cứu Phương pháp nghiên cứu lí luận Khóa luận tốt nghiệp Trần Thị Thu Thủy Khóa luận trình bày chương với nội dung chương sau: Chương 1: Kiến thức mở đầu Chương 2: Ôtômáthữuhạn Chương : Một vài ứngdụngôtômáthữuhạn Khóa luận tốt nghiệp Trần Thị Thu Thủy CHƯƠNG 1: LÝ THUYẾT MỞ ĐẦU Chương thứ trình bày kiến thức sở cần thiết, sử dụng chương khóa luận Ở ta nhắc số khái niệm ngôn ngữ 1.1 Ngôn ngữ 1.1.1 Bảng chữ Định nghĩa 1.1 Tập khác rỗng gồm hữuhạn hay vô hạn kí hiệu gọi bảng chữ Mỗi phần tử a gọi chữ hay kí hiệu Ví dụ 1.1 Dưới bảng chữ { A, B, … , Z}: Bảng chữ latinh {α, β, γ……,φ}: Bảng chữ Hi Lạp {I, V, X, L, C, D, M}: Bảng chữ số La Mã {0, 1, 2,…., 9}: Bảng chữ số thập phân 1.1.2 Xâu Định nghĩa 1.2 Bảng chữ = { a1, a2, ……, an }, dãy chữ α = ai1ai2ai3 aim, Với aij (1 ≤ 𝑗 ≤ 𝑚 ) gọi xâu bảng chữ Tổng số vị trí xuất xâu α gọi độ dài xâu α kí hiệu |α| Vậy xâu bảng chữ gồm số lớn hay không chữ , chữ có xuất hay nhiều lần Xâu chữ gọi xâu rỗng, kí hiệu ε |ε| = Tập từ bảng chữ kí hiệu * , tập từ khác rỗng bảng chữ kí hiệu + Như + = *\{ε} * = + {ε} Khóa luận tốt nghiệp Trần Thị Thu Thủy Ví dụ 1.2 Cho = {a, b, c} ε, abc, aab, acc, aabbc xâu Cho = {0, 1} 01, 00, 11, 101, 0011 xâu Quy ước: Chúng ta sử dụng chữ thường a, b, c, … cho phần tử bảng chữ , chữ u, v, ω,… cho tên xâu 1.1.3 Các phép toán xâu I Phép nhân ghép Định nghĩa 1.3 Tích ghép (hay nhân ghép) hai xâu α = a1a2….am xâu β = b1b2….bn bảng chữ , xâu γ = a1a2……amb1b2……bn bảng chữ Kí hiệu phép nhân ghép γ = α.β ( hay γ = αβ) Nhận xét Từ định nghĩa ta có • Xâu rỗng phần tử đơn vị phép nhân ghép • Phép nhân ghép có tính chất kế hợp • Kí hiệu ωn, với n số tự nhiên, dùng với định nghĩa thông thường : 𝜀 𝑘ℎ𝑖 𝑛 = ω = { 𝜔 𝑘ℎ𝑖 𝑛 = 𝜔𝑛−1 𝜔 𝑘ℎ𝑖 𝑛 > n • Đối với phép nhân ghép hàm độ dài có số tính chất hình thức lôgarit: với xâu α, β số tự nhiên n |αβ| = |α| + |β| |αn| = n|α| Phần tử đơn vị ε, |ε| = Ví dụ 1.3 Cho = {a,b}, Xâu α = abababaa, xâu β = aabb γ = αβ = abababaaaabb Khóa luận tốt nghiệp Trần Thị Thu Thủy theo đến δ(p1, a2) …… δ(pk, a2) Quá trình tiếp tục gặp tình sau : ➢ Trong trường hợp tập trạng thái sau đọc kí hiệu aj rỗng sau đọc kí hiệu an Q’ mà Q’F = , ta nói A không đoán nhận ω ➢ Trường hợp tập trạng thái sau đọc kí hiệu an Q’ mà Q’F ≠ ta nói A đoán nhận ω 2.3.3 Biểu diễn ôtômáthữuhạn không đơn định Một ôtômáthữuhạn không đơn định biểu diễn dạng bảng chuyển đồ thị chuyển ôtômáthữuhạn đơn định Nếu δ(q, a) = {p1, p2,……, pk} đồ thị chuyển có k cung từ q sang p1,… pk nhãn dán a Ví dụ 2.6 :Cho ôtômáthữuhạn không đơn định A = ({q0, q1, q2, q3}, {a, b}, δ, q0, {q1, q2}) Với δ(q0, a) = { q3} ; δ(q0, b)= {q1, q3} ; δ (q1, a) = {q0 }; δ(q1, b) = ; δ(q2, a) = {q3}; δ(q2, b) = ; δ(q3, a) = ; δ(q3, b) = {q2} Bảng chuyển trạng thái : Trạng Ký hiệu vào thái a b q0 {q3} {q1, q3} q1 {q0} q2 {q3} q3 {q2} 20 Khóa luận tốt nghiệp Trần Thị Thu Thủy Đồ thị chuyển trạng thái : b q0 q1 a b a b q3 q2 a 2.3.4 Hoạt động đoán nhận xâu I Hàm dịch chuyển mở rộng Định nghĩa 2.12 Cho ôtômáthữuhạn không đơn định A = (Q, , δ, q0, F) Mở rộng δ tập ánh xạ δ* : Q*→2Q, xác định sau : δ*(q,ε) = {q}, ∀ q Q δ*(q,ωa) = p ( q , a ) δ*(p,ω),∀qQ,∀a,∀ω* cho δ*(q,a) xác định Ví dụ 2.7 Cho ôtômáthữuhạn không đơn định A =({q0, q1, q2, q3, q4}, {0, 1}, δ, {q0}, {q2, q4} với δ : δ(q0,0) = {q0,q3}; δ(q0, 1) = {q1, q3}; δ(q1, 0) = ; δ(q1, 1) = {q2};δ(q2, 0) = q2 ; δ(q2, 1) = q2; δ(q3,0) = q4; δ(q3,1) = ; δ(q4, 0) = q4; δ(q4,1) = q4 Xác định δ*(q0, 0101) Ta có δ(q0, 0) = {q0, q3} δ*(q0, 01) = δ(δ(q0, 0), 1) = δ({q0, q3}, 1}) = δ(q0, 1) δ(q3, 1) = {q1, q3} δ*(q0, 010) = δ(δ*(q0, 01), 0) = δ({q1, q3}, 0) = δ(q1, 0) δ(q3, 0) = {q4} δ*(q0, 0101) = δ(δ*(q0, 010), 1) = δ(q4, 1) = q4 21 Khóa luận tốt nghiệp II Trần Thị Thu Thủy Hoạt động đoán nhận xâu Định nghĩa 2.13 Cho ôtômáthữuhạn không đơn định A = (Q, , δ, q0, F), ω* Ta nói ω đoán nhận A δ*(q0, a) ≠ Quay trở lại ví dụ 2.7 ta thấy δ*(q0, 0101) = q4F Vậy chuỗi ω = 0101 ôtômát A đoán nhận 2.3.5 Ngôn ngữ đoán nhận ôtômát không đơn định Định nghĩa 2.14 Cho ôtômáthữuhạn không đơn định A = (Q, ,δ, q0, F), ω* L ngôn ngữ Ta nói L đoán nhận A L ={ω*|δ*(q0, ω) F ≠ } kí hiệu L T(A) Ví dụ 2.8 Cho ôtômáthữuhạn không đơn định A = ({q0, q1, q2}, {a, b}, δ, q0,{q2}) với δ cho bảng sau : Trạng thái Ký hiệu vào a b q0 {q0} {q0, q1} q1 {q1} {q1, q2} q2 {q2} {q2} Ngôn ngữ đoán nhận ôtômát A là: T(A) = {ω1bω2bω3|ω1,ω2,ω3 {a, b}*} 2.4 Sự tương đương ôtômáthữuhạn đơn định ôtômáthữuhạn không đơn định 2.4.1 Sự tương đương ôtômáthữuhạn đơn định ôtômáthữuhạn không đơn định Ở phân biệt hai loại ôtômáthữuhạn đơn định không đơn định, vấn đề quan trọng chúng có quan hệ với Nghĩa 22 Khóa luận tốt nghiệp Trần Thị Thu Thủy ngôn ngữ đoán nhận ôtômáthữuhạn đơn định không đơn định có quan hệ với hay không? Một cách trực quan ta nhận thấy: ➢ Ôtômát đơn định mô hành vi ôtômát không đơn định cách gia tăng số trạng thái Nói cách khác, Ôtômát đơn định xem trường hợp đặc biệt ôtômát không đơn định ➢ Ôtômát không đơn định tổng quát hơn, song không mạnh hơn, nghĩa mà tập mà đoán nhận không nhiều ôtômát đơn định Định lý 2.1 Nếu ngôn ngữ L đoán nhận ôtômáthữuhạn không đơn định tồn ôtômáthữuhạn đơn định đoán nhận L Định lý 2.2 Lớp ngôn ngữ sinh ôtômáthữuhạn đơn định trùng với lớp ngôn ngữ hữuhạn không đơn định Chứng minh : Ta gọi LN lớp ngôn ngữ sinh ôtômáthữuhạn không đơn định, LD lớp ngôn ngữ sinh ôtômáthữuhạn đơn định, ta cần chứng minh LN = LD Ta chứng minh : • LN LD Giả sử L lớp ngôn ngữ tùy ý thuộc LN, tức tồn ôtômáthữuhạn không đơn định A đoán nhận L, tức ta có T(A) =L Theo định lí 2.1 tồn ôtômáthữuhạn đơn định A* đoán nhận L, tức T(A*)=L, L thuộc lớp LD hay LNLD • LDLN Giả sử L lớp ngôn ngữ tùy ý thuộc LD, tức tồn ôtômáthữuhạn đơn định A đoán nhận L, Ta có T(A) =L Mặt khác ôtômáthữuhạn đơn định trường hợp đặc biệt ôtômáthữuhạn không đơn định, nên ngôn ngữ L đoán nhận ôtômáthữuhạn không đơn định Do LDLN Vậy LN = LD hay lớp ngôn ngữ sinh ôtômáthữuhạn đơn định trùng với lớp ngôn ngữ sinh ôtômáthữuhạn không đơn định 23 Khóa luận tốt nghiệp Trần Thị Thu Thủy 2.4.2 Xây dựngôtômáthữuhạn đơn định từ ôtômáthữuhạn không đơn định Giả sử A = (Q, , δ, q0, F) ôtômát không đơn định, ta xây dựngôtômáthữuhạn đơn định đầy đủ M = (Q’, , δ’, q0’, F’) tương ứng với ôtômát A ( theo nghĩa đoán nhận ngôn ngữ) Việc xây dựng M thực : Bước :Xây dựng hàm hai biến T : 2Q→2Q thỏa mãn điều kiện ∀qQ, ∀a T(q, a) = {q’ Q| q’ = δ(q, a)} ∀B Q mà δ(q, a) = B, ∀a T(B, a) = p δ(p, a) B Bước 2: Xác định tập trạng thái Q’ ={s0,s1,….,sk|k≤2Q-1} Đặt s0 = q0, s1= q1,…., si = qi, ∀{q0}, {q1}, … {qi} Q Đặt si+1= B1, si+2 = B2, … ∀ B1, B2, …… Q mà δ(qj, a) = Bj Nếu ôtômát A không đầy đủ, đặt sk= thêm vào hàm chuyển δ’ giá trị δ’(sk, a) = sk ∀ a để ôtômát M ôtômát đầy đủ Trạng thái khởi đầu M s0 Tập trạng thái kết thúc M F’={sQ’|sF≠} Bước 3: Xác định hàm chuyển δ’:Q’→Q’ ôtômát M ∀sQ’, ∀a δ’(s, a) = T(s, a) Ví dụ 2.9: Cho ôtômát A = ({q0, q1, q2}, {a, b, c}, δ, q0, {q1, q2}) hàm chuyển δ cho bảng sau: δ a b C q0 {q1} {q1, q2} {q2} q1 {q2} q2 {q1} {q0, q2} {q1} {q2} 24 Khóa luận tốt nghiệp Trần Thị Thu Thủy Hãy xây dựng M = (’,{a, b, c}, δ’, s0, F’} đơn định đầy đủ, tương đương với ôtômát A Bước 1: Xây dựng T: 2Q→2Q T(q0, a) = q1; T(q0, b) = {q1, q2}; T(q0, c) = {q2} T(q1, a) = {q2}; T(q1, b) = ; T(q1, c) = {q0, q2} T(q2, a) = {q1}; T(q2, b) = {q1}; T(q2, c) = {q2} T({q1, q2}, a) = {q1, q2}; T({q1, q2}, b) = {q1};T({q1, q2}, c) = {q0, q2} T({q0, q2}, a) = {q1}; T({q0, q2}, b) = {q1, q2}; T({q0, q2}, c) = {q2} Bước 2: Đặt s0 = q0 ; s1 = q1; s2 = q2; s3 = {q1, q2}; s4 = {q0, q2}; s5 = Khi Q’ = {s0, s1, s2, s3, s4, s5} Trạng thái khởi đầu M s0 Tập trạng thái kết thúc F’ = {s1, s2, s3, s4} Bước 3: Hàm chuyển δ’ xác định sau δ’ a b c s0 s1 s3 s2 s1 s2 s5 s4 s2 s1 s1 s2 s3 s3 s1 s4 s4 s1 s3 s2 s5 s5 s5 s5 Vậy ôtômát M = ({s0, s1, s2, s3, s4, s5}, {a, b, c}, δ’, s0, {s1, s2, s3, s4}) với hàm chuyển δ’ xác định tương ứng với ôtômát A 25 Khóa luận tốt nghiệp Trần Thị Thu Thủy CHƯƠNG 3: MỘT VÀI ỨNGDỤNG CỦA ÔTÔMÁTHỮUHẠN 3.1 Ứngdụng máy tính 3.1.1 Tìm kiếm xâu văn Một vấn đề phổ biến trang web kho văn khác mạng là:cho tập từ, tìm tất tài liệu có chứa (hoặc tất ) từ Một công cụ tìm kiếm ví dụ điển hình trình Công cụ tìm kiếm sử dụng công nghệ đặc biệt gọi số ngược, nơi cho từ xuất web ( có 100.000.000 từ khác nhau), danh sách tất nơi mà từ xuất lưu trữ Máy móc với lượng lớn nhớ giữ đa số danh sách có sẵn, cho phép nhiều người tìm kiếm tài liệu lúc Chỉ số kỹ thuật đảo ngược không sử dụng thiết bị tự động hữu hạn, họ lượng lớn thời gian cho trình thu thập để chép web thiết lập số Có số ứngdụng liên quan không thích hợp cho số đảo ngược ứngdụng tốt cho sở kỹ thuật máy tự động Các đặc tính làm cho ứngdụng phù hợp cho tìm kiếm sử dụng máy tự động là: Việc tìm kiếm kho lưu trữ thay đổi nhanh chóng Ví dụ: (a) Mỗi ngày nhà phân tích tin tức muốn tìm kiếm mạng báo ngày cho chủ đề liên quan Ví dụ nhà phân tích tài tìm kiếm mã chứng khoán tên công ty (b) Một robot mua sắm muốn tìm kiếm giá hành tính phí cho mục mà khách hàng yêu cầu Các robot truy xuất trang danh mục từ web sau tìm kiếm trang cho lời đề nghị mức giá cho cụ thể Các tài liệu tìm kiếm mục lục 26 Khóa luận tốt nghiệp Trần Thị Thu Thủy Ví dụ: amazon.com không dễ dàng tìm kiếm tất trang cho tất sách mà công ty bán Thay vào đó, trang tạo "một cách nhanh chóng" phản ứng để truy vấn Tuy nhiên, gửi truy vấn cho sách chủ đề định 3.1.2 Tìm kiếm văn Giả sử đưa tập từ mà gọi từ khóa mà muốn tìm Tại ứngdụng này, cách hữu ích để tiến hành để thiết kế máy tự động hữuhạn không đơn định mà tín hiệu cách nhập trạng thái chấp nhận nhìn thấy từ khóa Các văn tài liệu cho, ký tự thời gian để NFA nhận lần xuất từ khóa văn Có hình thức đơn giản đến NFA nhận diện từ khóa Có trạng thái bắt đầu với chuyển tiếp tất biểu tượng đầu vào, ví dụ ký tự ASCII in kiểm tra văn Bằng trực giác, trạng thái bắt đầu đại diện cho "dự đoán" mà chưa bắt đầu để xem từ khóa, thấy số chữ từ Đối với từ khóa a1a2……ak, có k trạng thái q1,q2,….,qk.Hàm chuyển trạng thái từ trạng thái khởi đầu đến q1 ký hiệu a1, hàm chuyển trạng thái từ q1 đến q2 ký hiệu a2 tiếp tục Trạng thái qk trạng thái trả lời từ khóa a1a2… ak tìm thấy Ví dụ 3.1: Giả sử muốn thiết kế NFA để nhận xuất từ web ebay Trạng thái trạng thái bắt đầu, sử dụng để đặt cho thiết lập tất ký tự ASCII trạng thái đến nhận web, trạng thái đến nhận ebay Tất nhiên NFA chương trình Chúng ta có lựa chọn cho việc thực NFA 27 Khóa luận tốt nghiệp Trần Thị Thu Thủy Viết chương trình mô NFA cách tính toán thiết lập trạng thái sau đọc ký hiệu đầu vào Chuyển đổi NFA sang DFA tương đương sử dụng xây dựng tập hợp Sau đó, mô DFA trực tiếp W e b e a y b Start Một số chương trình xử lý văn bản, chẳng hạn hình thức tiên tiến lệnh grep unix (egrep fgrep) thực sử dụng hỗn hợp hai phương pháp Tuy nhiên, mục đích chuyển đổi DFA dễ dàng đảm bảo không để tăng số lượng trạng thái 3.1.3 Nhận diện từ khóa Chúng ta áp dụng việc xây dựng tập hợp cho NFA Tuy nhiên, áp dụng xây dựng có NFA thiết kế từ từ khóa, thấy số lượng trạng thái DFA không lớn số trạng thái NFA Vì trường hợp xấu số lượng lũy thừa trạng thái đến DFA, điều giải thích lý phương pháp thiết kế NFA cho từ khóa sau xây dựng DFA từ sử dụng thường xuyên Các quy tắc để xây dựng tập trạng thái DFA sau a) Nếu q0 trạng thái khởi đầu NFA, q0 trạng thái DFA b) Giả sử p trạng thái NFA, trạng thái đạt từ trạng thái bắt đầu dọc theo ký hiệu a1a2… am Thì trạng thái DFA tập trạng thái NFA bao gồm: 28 Khóa luận tốt nghiệp Trần Thị Thu Thủy q0 P Mọi trạng thái NFA xây dựng từ q0 cách theo đường có nhãn hậu tố a1a2… am, dãy ký tự có dạng ajaj+1….am Chú ý nói chung, có trạng thái DFA cho trạng thái p NFA Tuy nhiên, bước (b), hai trạng thái thực mang lại tập trạng thái NFA, trở thành trạng thái NFA Ví dụ, hai từ khóa bắt đầu với chữ, a, sau hai trạng thái NFA đạt từ q0 vòng cung dán nhãn mang lại tập hợp trạng thái NFA nhận sáp nhập DFA Ví dụ 3.2: Một DFA nhận diện từ khóa float l f o t a 3.1.4 Bộ phân tích từ vựng Các ký hiệu từ vựng (token) ngôn ngữ lập trình hầu hết ngọai lệ, biểu diễn tập hợp quy Chẳng hạn, định danh ALGOL: chữ viết hoa thường, theo sau dãy chữ (letter) chữ số (digit) với độ dài không giới hạn biểu diễn sau : (letter) (letter + digit)* Trong "letter" thay cho A + B + + Z + a + b + + z "digit" + + + Một ví dụ khác, định danh FORTRAN có độ dài giới hạn chữ cho phép dùng chữ viết hoa ký hiệu $ biểu diễn sau : 29 Khóa luận tốt nghiệp Trần Thị Thu Thủy (letter) (ε + letter + digit)5 với "letter" $ + A + B + + Z Một số công cụ phát sinh phân tích từ vựng nhận input dãy biểu thức quy mô tả ký hiệu từ vựng phát sinh ôtômáthữuhạn đơn giản nhận dạng ký hiệu từ vựng Thông thường, chúng chuyển đổi biểu thức quy thành NFA với ε-dịch chuyển sau xây dựng tập hợp trạng thái để phát sinh DFA cách trực tiếp tìm cách loại bỏ phép chuyển nhãn ε Mỗi trạng thái kết thúc xác định ký hiệu từ vựng cụ thể tìm thấy Hàm chuyển FA mã hóa vài cách nhằm chiếm không gian so với bảng hàm chuyển tổ chức dạng mảng hai chiều Bộ phân tích từ vựng thiết lập cách phát sinh chương trình cố định thông dịch bảng mã, với bảng minh họa cụ thể nhận dạng FA ký hiệu từ vựng (viết dạng biểu thức quy) Bộ phân tích từ vựng dạng dùng chương trình độc lập (module) trình biên dịch ngôn ngữ 3.1.5 Trình soạn thảo văn Hiển nhiên, trình soạn thảo văn chương trình tương tự cho phép thay chuỗi chuỗi kết hợp với biểu thức quy cho trước Chẳng hạn, trình soạn thảo văn ed UNIX cho phép câu lệnh sau :/aba*c/ để tìm xuất chuỗi có dạng Hay câu lệnh :s/bbb*/b/ cho phép thay chuỗi có dạng bbb* thành chuỗi có ký tự b Hay câu lệnh MS-DOS NC, ví dụ câu lệnh : Del tmp * ??? cho phép xóa tất file với tên tập tin bắt đầu tmp, sau chuỗi bắt kỳ có phần mở rộng ký tự tùy ý 30 Khóa luận tốt nghiệp Trần Thị Thu Thủy Dấu * trường hợp ký hiệu cho chuỗi bất kỳ, dấu ? ký hiệu cho ký tự tùy ý Đây dạng ký hiệu biểu thức quy thay cho chuỗi Hay chẳng hạn, ví dụ xử lý chuỗi khác áp dụng cho việc tìm kiếm theo mẫu trang Web Trong tất ví dụ trên, ký hiệu * xác định “mọi” biểu thức a1 + a2 + + an tất ký tự cho phép máy tính trừ ký tự xuống dòng (newline) Ta chuyển biểu thức quy r sang DFA chấp nhận r Chú ý diện ký hiệu * cho phép ta nhận dạng thành phần L(r) vị trí dòng Để làm điều này, ứngdụng phải thực trình chuyển đổi từ biểu thức quy sang NFA Và chế hoạt động NFA phức tạp nên thông thường sau đó, NFA lại phải biến đổi tiếp thành dạng DFA tương đương Tuy nhiên, chuyển đổi từ biểu thức quy sang DFA tốn nhiều thời gian việc sử dụng DFA để kiểm tra mẫu cách duyệt qua chúng lần, DFA có số trạng thái hàm mũ độ dài biểu thức quy 3.2 Ứngdụng thực tế 3.2.1 Máy giặt Một máy giặt dễ dàng mô hình hóa máy tự động hữuhạn Bây bạn hiểu máy hữuhạn trạng thái, bạn nhận quần áo thực 31 Khóa luận tốt nghiệp Trần Thị Thu Thủy 3.2.2 Máy bán hàng tự động Hình trình bày DFA mô tả hoạt động máy bán hàng tự động chấp nhận đô la, chi phí cho lon soda $1.25 Một máy nhận $ 1.25, tương ứng với trạng thái màu xanh biểu đồ, cho phép người dùng lựa chọn soda Tự vòng đại diện cho đầu vào bị bỏ qua: máy không tra soda chưa đủ $1.25và máy không nhận qua nhiều tiền nhận lớn $ 1,25 Để thể DFA 5-tuple, thành phần quy định sau: Q = {$ 0.00, $ 0.25, $ 0.50, $ 0.75, $ 1.00, $ 1.25, $ 1.50, $ 1.75, 2.00 $} trạng thái Σ = {$ 0.25, $ 1.00, chọn} bảng chữ δ, hàm chuyển trạng thái q0 = 0,00 $ trạng thái bắt đầu F = ∅ tập hợp trạng thái trả lời Chọn Chọn $0.25 $0.0 $0.25 $0.25 $0.5 $0.25 $1.00 Chọn Chọn $1.00 $1.00 0.75 $1.00 Chọn $1.0 $0.25 $1.5 $1.2 $1.75 $1.00 $1.00,$0.25 $2.0 $1.00,$0.25 $0.25 $1.00,$0.25 32 $1.00,$0.25 Khóa luận tốt nghiệp Trần Thị Thu Thủy KẾT LUẬN Khóa luận tìm hiểu “ Ôtômáthữuhạnứngdụng “ chương Chương cung cấp nhứng kiến thức sở ngôn ngữ sử dụng chương sau Chương tìm hiểu khái niệm tổng quát Ôtômát từ nghiên cứu chi tiết ôtômáthữuhạn Trên sở tìm hiểu ứngdụngÔtômát máy tính sống thực tế Từ giúp thấy ôtômát có vai trò ứngdụng rộng rãi thực tế Do thời gian kiến thức hạn hẹp nên khóa luận nhiều thiếu sót mong thầy cô có đóng góp để em hoàn thiện 33 Khóa luận tốt nghiệp Trần Thị Thu Thủy TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt Nguyễn Văn Ba (2002), Ngôn ngữ hình thức, NXB Khoa học Kỹ thuật, Hà Nội Đoàn Văn Ban (2003), Giáo trình Ôtômát Ngôn ngữ hình thức, NXB Đại học Quốc gia Hà Nội Phan Đình Diệu (1971), Lý thuyết otomat thuật toán, Nhà xuất Đại học Trung học Chuyên nghiệp Nguyễn Văn Định (2012), Giáo trình Otomat Ngôn ngữ hình thức, NXB Đại học Nông nghiệp Hồ Văn Quân (2002), Giáo trình lý thuyết ôtômát ngôn ngữ hình thức, NXB Đại học Quốc gia Tp Hồ Chí Minh Đặng Huy Ruận (2002), Lý thuyết ngôn ngữ hình thức Otomat, NXB Đại học Quốc gia Hà Nội Tài liệu tiếng Anh J.E Hopcroft, J.D.Ullman (1979), Introduction to Automata Theory, Languages and Computation, Addison-Wesley, Reading J.E Hopcropft, R Motwani, J.D Ullman (2001), Introduction to Automata Theory, Languages, and Computation (2nd Edition), AddisonWesley 34 ... đương ôtômát hữu hạn đơn định ôtômát hữu hạn không đơn định 22 2.4.2 Xây dựng ôtômát hữu hạn đơn định từ ôtômát hữu hạn không đơn định 24 CHƯƠNG 3: MỘT VÀI ỨNG DỤNG... Thu Thủy Sau xét định nghĩa ôtômát hữu hạn trạng thái gọi tắt ôtômát hữu hạn 2.2 Ôtômát hữu hạn đơn định 2.2.1 Ôtômát hữu hạn đơn định Định nghĩa 2.7 Một ôtômát hữu hạn đơn định ( Deterministic... Sự tương đương ôtômát hữu hạn đơn định ôtômát hữu hạn không đơn định 2.4.1 Sự tương đương ôtômát hữu hạn đơn định ôtômát hữu hạn không đơn định Ở phân biệt hai loại ôtômát hữu hạn đơn định không