Viết chương trình thực hiện giao của 2 dfa và hiệu 2 dfa

20 0 0
Viết chương trình thực hiện giao của 2 dfa và hiệu 2 dfa

Đ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

BÁO CÁO MƠN AUTOMAT VÀ NGƠN NGỮ HÌNH THỨC ĐỀ TÀI : Viết chương trình thực giao DFA hiệu DFA GVHD : Trần Hùng Cường SVTH : 1.Nguyễn Văn Hịa 2.Nguyễn Văn Thành 3.Chu Hồng Nam Nguyễn Duy Mạnh Phần I: Giới thiệu môn học Automat DFA 1.1.Giới thiệu Automat Vào năm 1930 Alain Turing nghiên cứu máy trừu tượng có khả thực tính tốn máy tính ngày nay.Các máy trừu tượng gọi máy turing.Vào năm 1940 – 1950 máy trừu tượng đơn giản mà gọi otomat hữu hạn nghiên cứu nhà khoa học Otomat mơ hình hữu ích cho nhiều phần mềm quan trọng :  Phần mềm thiết kế kiểm tra mạch điện tử số  Bộ phân tích từ vựng CT dịch  Dịch từ ngôn ngữ bậc cao sang ngôn ngữ bậc thấp  Dịch từ ngôn ngữ sang ngôn ngữ khác  Tìm kiếm văn 1.2 Automat hữu hạn đơn định - DFA (Deterministic Finite Automata) Một ôtômát hữu hạn đơn định (DFA) - gọi tắt FA -gồm tập hữu hạn trạng thái tập phép chuyển từ trạng thái tới trạng thái khác ký hiệu nhập (input symbols) chọn từ chữ Σ Mỗi ký hiệu nhập có phép chuyển khỏi trạng thái (có thể chuyển trở nó) Một trạng thái, thường ký hiệu q0, gọi trạng thái bắt đầu (trạng thái ôtômát bắt đầu) Một số trạng thái thiết kế trạng thái kết thúc hay trạng thái chấp nhận Một đồ thị có hướng, gọi sơ đồ chuyển (transition diagram) tương ứng với DFA sau: đỉnh đồ thị trạng thái DFA; có đường chuyển từ trạng thái q đến trạng thái p input a có cung nhãn a chuyển từ trạng thái q đến trạng thái p sơ đồ chuyển DFA chấp nhận chuỗi x tồn dãy phép chuyển tương ứng ký hiệu x dẫn từ trạng thái bắt đầu đến trạng thái kết thúc Chẳng hạn, sơ đồ chuyển DFA mơ tả hình 3.1 Trạng thái khởi đầu q0 mũi tên có nhãn "Start" Chỉ có trạng thái kết thúc, q trường hợp này, hai vịng trịn Ơtơmát chấp nhận tất chuỗi số số với số số số số số chẵn Thí dụ 3.1 : Hình 3.1 - Sơ đồ chuyển DFA Một điều cần lưu ý, DFA sử dụng trạng thái để giữ phần chuỗi số khơng phải chứa số thực sự, DFA cần dùng số hữu hạn trạng thái Định nghĩa Một cách hình thức ta định nghĩa ơtơmát hữu hạn gồm năm thành phần (Q, Σ, δ, q0, F), : Q tập hợp hữu hạn trạng thái Σ chữ nhập hữu hạn δ hàm chuyển ánh xạ từ Q × Σ → Q, tức δ(q, a) trạng thái cho phép chuyển từ trạng thái q ký hiệu nhập a q0 ∈ Q trạng thái bắt đầu F ⊆ Q tập trạng thái kết thúc Ta vẽ DFA điều khiển hữu hạn, với trạng thái thuộc Q, DFA đọc chuỗi ký hiệu a từ Σ viết băng (như hình vẽ) Hình 3.2 - Mơ tả DFA Trong lần chuyển, DFA trạng thái q đọc ký hiệu nhập a băng, chuyển sang trạng thái xác định hàm chuyển δ(q, a), dịch đầu đọc sang phải ký tự Nếu δ(q, a) chuyển đến trạng thái kết thúc DFA chấp nhận chuỗi viết băng input phía trước đầu đọc, không bao gồm ký tự vị trí đầu đọc vừa dịch chuyển đến Trong trường hợp đầu đọc dịch đến cuối chuỗi băng, DFA chấp nhận toàn chuỗi băng Hàm chuyển trạng thái mở rộng Để mơ tả cách hình thức hoạt động DFA chuỗi, ta mở rộng hàm chuyển δ để áp dụng trạng thái chuỗi trạng thái ký hiệu Ta định nghĩa hàm chuyển δ ánh xạ từ Q × Σ* → Q với ý nghĩa δ(q, w) trạng thái DFA chuyển đến từ trạng) trạng thái DFA chuyển đến từ trạng thái q chuỗi w) trạng thái DFA chuyển đến từ trạng Một cách hình thức, ta định nghĩa : δ (q, ε) = q δ (q, w) trạng thái DFA chuyển đến từ trạnga) = δ(δ (q, w) trạng thái DFA chuyển đến từ trạng), a), với chuỗi w) trạng thái DFA chuyển đến từ trạng ký hiệu nhập a Một số quy ước ký hiệu : - Q tập trạng thái Ký hiệu q p (có khơng có số) trạng thái, q0 trạng thái bắt đầu - Σ chữ nhập Ký hiệu a, b (có khơng có số) chữ số ký hiệu nhập - δ hàm chuyển - F tập trạng thái kết thúc - w) trạng thái DFA chuyển đến từ trạng, x, y z (có khơng có số) chuỗi ký hiệu nhập Ngôn ngữ chấp nhận DFA Một chuỗi w) trạng thái DFA chuyển đến từ trạng chấp nhập ôtômát hữu hạn M (Q, Σ, δ, q0, F) δ(q0, w) trạng thái DFA chuyển đến từ trạng) = p với p ∈ F Ngôn ngữ chấp nhận M, ký hiệu L(M) tập hợp: L(M) = { w) trạng thái DFA chuyển đến từ trạng | δ (q0, w) trạng thái DFA chuyển đến từ trạng) ∈ F } Thí dụ 3.2 : Xét sơ đồ chuyển hình 3.1 Theo khái niệm hình thức, ta có DFA xác định M (Q, Σ, δ, q0, F) với Q = {q0, q1, q2, q3}, Σ = {0,1}, F = {q0} hàm chuyển δ sau: Giả sử chuỗi w) trạng thái DFA chuyển đến từ trạng = 110101 nhập vào M Ta có δ(q0, 1) = q1 δ(q1, 1) = q0 ,vậy δ(q0, 11) = δ(δ(q0,1),1) = δ(q1, 1) =q0 Tiếp tục δ(q0, 0) = q2, δ(q0, 110) = δ(δ(q0, 11), 0) = q2 Tiếp tục ta có δ(q0, 1101) = q3, δ(q0, 11010) = q1 Và cuối δ(q0, 110101) = q0 ∈ F (Hay δ(q0, 110101) = δ(q1, 10101) = δ(q0, 0101) = δ(q2, 101) = δ(q3, 01) =δ(q1, 1) = q0 ∈ F) Vậy 110101 thuộc L(M) Ta chứng minh L(M) tập chuỗi có số chẵn số số chẵn số Theo mô tả DFA trên, ta thấy dùng bảng hàm chuyển (transition table) để mơ tả phép chuyển trạng thái ôtômát hữu hạn Trong bảng hàm chuyển, hàng chứa trạng thái thuộc tập trạng thái ôtômát cột ký hiệu thuộc chữ nhập Bảng hàm chuyển gợi ý cho cấu trúc liệu để mô tả cho ôtômát hữu hạn, đồng thời cho thấy dễ dàng mơ hoạt động DFA thơng qua chương trình máy tính, chẳng hạn dùng cấu trúc vịng lặp Giải thuật mơ hoạt động DFA Nhận xét : Một cách tổng quát, ta thấy tập Q DFA thể trạng thái lưu trữ ôtômát q trình đốn nhận ngơn ngữ, khả lưu trữ ôtômát hữu hạn Mặt khác, hàm chuyển δ hàm toàn phần đơn trị, bước chuyển ôtômát luôn xác định cách Chính hai đặc điểm mà DFA mô tả gọi ơtơmát hữu hạn đơn định Phần II: Tìm hiểu giao hai DFA Ví dụ 1: F1 F2 Cách thực hiện: Kết giao F1và F2: Có điểm cần ý: Những biểu thức thơng dụng (I) : - Ngơn ngữ thơng dụng thường kết thúc sau kí tự U , · , * - Vì thế, có ngơn ngữ thông dụng qua Σ = {a,b}, L = { ε , aa,ab , bbb }, xây dựng chúng từ nhiều ngôn ngữ thông dụng đơn giản, với việc sử dụng thao tác Cái đơn giản xảy ngơn ngữ thông dụng qua Σ? ∅ , {ε} , {a} and {b} Vì L = _??? Những biểu thức thông dụng ( II ): L = {ε} U {a}·{a} U {a}·{b} U {b}·{b}·{b} Và muốn kí tự thiên đại số hơn, định nghĩa chức từ thuật ngữ tới vài ngôn ngữ: Thuật ngữ L( ) -> ngôn ngữ ∅ ∅ ε {ε} a {a} b {b} với vài kí tự viết lại L, cách: L = L( ε U a·a U a·b U b·b·b ) Hoặc : r = ε U a·a U a·b U b·b·b , L = L( r ) Với r biểu thức thông dụng Biểu thức thông dụng ( III ): - Định nghĩa hình thức - r biểu thức thông dụng r là: - a với a  Σ -ε - ( R1  R2 ) -∅ - ( R1 · R2 ) - ( R1 * )  - viết + Sự liên kết loại bỏ Và R·R* viết thành R+ - ví dụ viết sau: r = (ε U ((a·a) U ((a·b) U ((b·b)·b) ) )) , L = L( r ) - Và để đơn giản hóa kí tự: buộc * so với liên kết Rằng buộc liên kết nhiều so với liên kết ( thả dấu móc ) Ví dụ 2: Trong trường hợp giao 3, có trạng thái chung Sự giao DFAs liên kết, tất trạng thái trạng thái cuối Qua giao hai DFA ta có số vấn đề cần ý: - Xây dựng DFA M’ Giả sử s trạng thái bắt đầu M, DFA M’ có tất trạng thái M cộng với trạng thái bổ sung s’ Nếu s trạng thái cuối M s’ trạng thái cuối M’ Trạng thái bắt đầu M’ quay lại s Chức chuyển tiếp  ' M’ là:  trạng thái q M,  ( q,a) = q’ q’# s,  ’ (q, a) = q’ khơng  ’ (q, a) = s cuối  (s, a) # s,  ’(s, a) =  (s, a) khơng  ’(s’, a)=s’ Vì vậy, từ q trình xây dựng hiển nhiên M’ trạng thái ban đầu s khơng có mũi tên đầu vào Việc khẳng định : M đọc chuỗi mà trạng thái cho phép q, sau M’ w) trạng thái DFA chuyển đến từ trạng đạt đến q q # s s’ Một kết luận trực tiếp việc khẳng định M’ gần với trạng thái cuối M gần với trạng thái cuối đầu vào giống M M’ tương đương Sự chứng minh phương pháp quy nạp đoạn w) trạng thái DFA chuyển đến từ trạng : |w) trạng thái DFA chuyển đến từ trạng| =1, dễ dàng thấy điều khẳng định Bởi giả sử giá trị |w) trạng thái DFA chuyển đến từ trạng|

Ngày đăng: 29/09/2023, 12:50

Tài liệu cùng người dùng

Tài liệu liên quan