1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ôtômát hữu hạn và ứng dụng

40 493 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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ÁT HỮU HẠN ỨNG DỤNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứng dụ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ÁT HỮU HẠN ỨNG DỤNG KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứng dụ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ÁT HỮU HẠN ỨNG DỤ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ÁT HỮU HẠ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át hữu hạn đơn định 14 2.2.1 Ôtômát hữu hạn đơn định 14 2.2.2 Hoạt động ôtômát hữu hạn đơn định 14 2.2.3 Biểu diễn ôtômát hữu hạ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át hữu hạn không đơn định 19 2.3.1 Ôtômát hữu hạ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át hữu hạn không đơn định 19 2.3.3 Biểu diễn ôtômát hữu hạ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át hữu hạn đơn định ôtômát hữu hạn không đơn định 22 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 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 CỦA ÔTÔMÁT HỮU HẠN 26 3.1 Ứng dụ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 Ứng dụ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ÁT HỮU HẠN ỨNG DỤNG” Mục đích nghiên cứu Tìm hiểu cách tổng quan ôtômát hữu hạn, công cụ sinh ngôn ngữ Ngoài tìm hiểu số ứng dụng ôtômát hữu hạn Đối tượng phạm vi nghiên cứu Đối tượng: kiến thức ôtômát hữu hạ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át hữu hạn ứng dụ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át hữu hạn Chương : Một vài ứng dụng ôtômát hữu hạ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ữu hạ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át hữu hạn không đơn định Một ôtômát hữu hạn không đơn định biểu diễn dạng bảng chuyển đồ thị chuyển ôtômát hữu hạ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át hữu hạ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át hữu hạ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,ω),∀qQ,∀a,∀ω* cho δ*(q,a) xác định Ví dụ 2.7 Cho ôtômát hữu hạ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át hữu hạ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) = q4F 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át hữu hạ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át hữu hạ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á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 đơ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át hữu hạ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át hữu hạn không đơn định tồn ôtômát hữu hạn đơn định đoán nhận L Định lý 2.2 Lớp ngôn ngữ sinh ôtômát hữu hạn đơn định trùng với lớp ngôn ngữ hữu hạn không đơn định Chứng minh : Ta gọi LN lớp ngôn ngữ sinh ôtômát hữu hạn không đơn định, LD lớp ngôn ngữ sinh ôtômát hữu hạ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át hữu hạ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át hữu hạn đơn định A* đoán nhận L, tức T(A*)=L, L thuộc lớp LD hay LNLD • LDLN Giả sử L lớp ngôn ngữ tùy ý thuộc LD, tức tồn ôtômát hữu hạn đơn định A đoán nhận L, Ta có T(A) =L Mặt khác ôtômát hữu hạn đơn định trường hợp đặc biệt ôtômát hữu hạn không đơn định, nên ngôn ngữ L đoán nhận ôtômát hữu hạn không đơn định Do LDLN Vậy LN = LD hay lớp ngôn ngữ sinh ôtômát hữu hạn đơn định trùng với lớp ngôn ngữ sinh ôtômát hữu hạ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át hữu hạn đơn định từ ôtômát hữu hạ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át hữu hạ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 ∀qQ, ∀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’={sQ’|sF≠} Bước 3: Xác định hàm chuyển δ’:Q’→Q’ ôtômát M ∀sQ’, ∀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 ỨNG DỤNG CỦA ÔTÔMÁT HỮU HẠN 3.1 Ứng dụ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ố ứng dụng liên quan không thích hợp cho số đảo ngược ứng dụng tốt cho sở kỹ thuật máy tự động Các đặc tính làm cho ứng dụ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 ứng dụng này, cách hữu ích để tiến hành để thiết kế máy tự động hữu hạ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át hữu hạ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, ứng dụng phải thực trình chuyển đổi từ biểu thức quy sang NFA 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 Ứng dụ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ữu hạn Bây bạn hiểu máy hữu hạ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át hữu hạn ứng dụ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át hữu hạn Trên sở tìm hiểu ứng dụng Ôtômát máy tính sống thực tế Từ giúp thấy ôtômát có vai trò ứng dụ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

Ngày đăng: 26/06/2017, 12:13

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w