Tiểu luận biến đổi từ NFA sang DFA trong automata

15 6.5K 19
Tiểu luận biến đổi từ NFA sang DFA trong automata

Đ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

Giảng viên hướng dẫn: Học viên thực hiện: Automata Assignment Convert NFA to DFA 4/2011 Contents AUTOMATA I. DFAAutomata hữu hạn đơn định 1. Định Nghĩa : Ôtomat hữu hạn đơn định (DFA) là 1 tổ hợp M = (Q, ∑, δ, q 0 , F). Trong đó Q là tập hữu hạn các trạng thái , ∑ là tập hữu hạn các kí tự đầu vào gọi là bảng ký tự, q 0 Q là trạng thái bắt đầu, F là tập hợp con của Q gọi là tập trạng thái kết thúc (trạng thái đoán nhận). Và δ là hàm chuyển đổi trạng thái Q x ∑ → Q. Một Ôtomat có thể xem là một bộ gồm 5 thành phần : − Một thanh ghi trong đơn. 2 − Một tập hợp các giá trị cho thanh ghi. − Một băng đầu vào − Một đầu đọc băng vào. − Một tập các lệnh để thực hiện chuyển đổi. Các trạng thái của 1 DFA miêu tả hình trạng bên trong của máy và thường biểu thị bằng q o ,q 1 , q 2 ,…,q n . Thanh ghi của máy , cũng được gọi là điều khiển hữu hạn, một trong các trạng thái là giá trị của nó . Tại thời điểm bắt đầu tính toán , giá trị của thanh ghi là q 0 , trạng thái bắt đầu của DFA . Đầu vào là một dãy hữu hạn liên tiếp của các thành phần trong bảng chữ ∑. Băng chứa đầu vào đến khi được tính toán . Băng được chia làm các ô , mỗi ô chứa giá trị của một ký tự của bảng chữ. Do không có giới hạn về độ dài của xâu đầu vào nên băng cũng không phải giới hạn về độ dài . Đầu đọc của băng đọc theo từng ô của xâu vào. Bộ phận chính của máy là đầu đọc băng và thanh ghi. Vị trí của đầu đọc băng là ký tự của băng vào được. Trạng thái hiện tại của Ôtomat được chỉ bởi giá trị của thanh ghi. Trong Ôtomat hữu hạn đơn định thì việc dịch chuyển trạng thái được quyết định dựa vào ký tự đầu đọc đang chỉ và trạng thái hiện thời của thanh ghi. Và chỉ có một trạng thái mới được chuyển đến khi đầu đọc đọc một ký tự và thanh ghi đang chỉ một trạng thái nào đó. Không có nhiều hơn một chuyển đổi hình trạng khi xử lí với một trạng thái của thanh ghi và một ký tự đầu vào. Cụ thể một tính toán (hay chuyển đổi) của 1 otomat gồm sự thi hành của 1 cấu trúc tuần tự các bước. Gồm có : Đọc ký tự vào (ký tự đầu đọc đang chỉ), xem xét trạng thái hiện thời của máy và sau đó quyết định chuyển trạng thái cùng với dịch chuyển đầu đọc sang phải một ô để đọc kí tự tiếp theo. Hình sau miêu tả cho việc chuyển trạng thái của Ôtomat : Hàm chuyển trạng thái được kí hiệu là δ. Và hàm này có dạng như sau: δ : Q x ∑ → Q. 3 Hay là δ(q i , a) = q k .Với q i là các trạng thái trong tập Q. Với DFA nói riêng và các Ôtomat nói chung ta có thể đưa ra các hàm chuyển đổi dưới dạng bảng tương ứng giữa các kí tự vào và các trạng thái của Q. 2. Ví Dụ : Ta xét ví dụ sau để hiểu rõ hơn về vấn đề : Cho một Ôtomat hữu hạn đơn định M có : Q = {q0, q1} ∑ = {a,b} F = {q1} Và các hàm chuyển đổi sau : δ(q0, a) = q1 δ(q0, b) = q0 δ(q1, a) = q1 δ(q1, b) = q0 Sau đây sẽ là các chuyển đổi và miêu tả về hoạt động của M khi xâu đầu vào là aba. q 0 aba → q 1 ba → q 0 a → q 1 . Ta có là xâu aba được đoán nhận bởi Ôtomat M. Sau đây là hình miêu tả sự thay đổi hình trạng của M khi xử lí xâu trên: Hình sau minh họa cho các quá trình chuyển đổi trạng thái của M: 4 3. Giản đồ trạng thái và ngôn ngữ đoán nhận : a. Định nghĩa : Giản đồ trạng thái của Ôtomat DFA là đồ thị có hướng G được đánh nhãn và định nghĩa như sau: - Các nút của G là các trạng thái trong Q. - Nhãn của một cung trong G là một ký tự của bảng chữ. - q 0 là trạng thái bắt đầu, cũng là nút bắt đầu, được kí hiệu >O. - F là tập các nút đoán nhận, mỗi nút được kí hiệu bởi hình - Có một cung từ nút qi tới nút qj có nhãn là a nếu δ(qi, a) = qj. - Với mọi nút qi và một ký tự a trong bảng chữ ∑, tồn tại một cung duy nhất đi ra từ qi có nhãn a. Một chuyển đổi của DFA được thể hiện bằng một cung trong giản đồ trạng thái. Kiểm tra quá trình tính toán của máy theo các trạng thái tương ứng trên giản đồ sẽ cho ta con đường từ nút qo và đọc xâu vào. Sau đây là ví dụ về giản đồ trạng thái của một Ôtomat hữu hạn đơn định. Xét DFA M = (Q, ∑, δ, q 0 , F). Với Q = { q 0 ,q 1 ,q 2 }, ∑ = {a, b}, F = { q 2 } Và hàm chuyển đổi δ cho dưới dạng bảng sau : 5 Ta có giản đồ trạng thái như sau : Giả sử p w là một đường từ q 0 đọc xâu vào w và kết thúc tại trạng thái q w . Định lí sau sẽ chứng minh cho chúng ta là chỉ có một con đường duy nhất cho mọi xâu ω thuộc bảng chữ vào ∑ * . b. Định lí : Coi M = {Q, ∑, δ, q o , F} là một Ôtomat hữu hạn đơn định. Xâu ω tạo ra một đường đi duy nhất p ω trong giản đồ trạng thái của M và δ(q 0 , ω) = q ω . * Chứng minh : Ta chứng minh quy nạp theo độ dài của xâu vào. Nếu xâu có độ dài là 0 thì δ * (q 0 , λ) = q 0 , đường đi tương ứng là đường rỗng bắt đầu và kết thúc đều tại q 0 . Giả sử giả thiết của ta đúng với mọi xâu có độ dài n hoặc ngắn hơn. Ta đi chứng minh kết quả đúng với xâu có độ dài n+1. Coi ω = ua là xâu có độ dài n+1. Theo giả thiết quy nạp thì tồn tại đường đi duy nhất p u mà đọc xâu u và δ * (q o , u) = q u . Đường đi p ω được tạo ra bằng cách theo cung nhãn a từ trạng thái q u . Qua đó ta thấy chỉ có một con đường duy nhất từ q o đọc xâu ω vì p u là con đường duy nhất đọc xâu u, còn chỉ có duy nhất một cung nhãn a rời q u .Trạng thái kết thúc của đường đi p ω được quyết định bởi chuyển đổi δ(q u , a).Từ định nghĩa của hàm chuyển đổi mở rộng ta có δ * (q o , ω) = δ( δ * (q o , u), a) vì ta có δ * (q o , u) = q u , q ω = δ(q u , a) = δ( δ * (q o , u),a) = δ * (q o , ω). 6 c. Hàm chuyển đổi mở rộng của DFA : Hàm chuyển đổi mở rộng của DFA, kí hiệu δ * so với hàm chuyển đổi δ là một hàm từ Q x ∑ * → Q. Việc chuyển đổi của δ * được định nghĩa đệ quy theo độ dài của xâu vào như sau: - Cơ sở : Nếu length(ω)=0 tức là xâu rỗng ω = λ và δ * (q i , λ) = q i . Nếu length(ω) = 1, thì ω = a (với a Є ∑ * ) và δ * (q i , a) = δ(q i , a). - Bước đệ quy : Coi ω là một xâu có độ dài n > 1. Thì ω = ua và chuyển đổi δ * (q i , ua) = δ(δ * (q i , u), a). d. Ngôn ngữ đoán nhận : Ngôn ngữ đoán nhận bởi Ôtomat hữu hạn đơn định M là tập các xâu trong ∑ * được đoán nhận bởi DFA M kí hiệu L(M). Hay là được định nghĩa như sau : L(M) = {ω Є ∑ * |δ * (q 0 , ω) Є F }. Theo như ví dụ trên thì ngôn ngữ đoán nhận bởi M là : L(M) = (a U b) *bb(a U b)*. e. Mở Rộng : Nếu M = {Q, ∑, δ, q o , F} là một DFA thì M' = {Q, ∑, δ, q o , Q- F} là một DFA khác và L(M') = ∑ * - L(M). II. NFAAutomata hữu hạn không đơn định 1. Định Nghĩa: Một Otomat hữu hạn không đơn định (NFA) là M= (Q, ∑, δ, q o , F). Trong đó Q là một tập hơp hữu hạn các trạng thái, ∑ là bảng chữ - tập các ký tự vào, q 0 là trạng thái bắt đầu , F là tập các trạng thái kết thúc (hay các trạng thái đoán nhận) và δ là hàm chuyển đổi trạng thái Q x ∑ → 2 Q .(Hàm này là sự khác nhau duy nhất giữa DFA và NFA). Hình miêu tả như sau: 7 Các thành phần của NFA gần như là giống các thành phần của DFA chỉ khác ở hàm chuyển đổi về số trạng thái mà Ôtomat có thể chuyển tới khi sử lí một kí tự đầu vào. Với DFA thì chỉ có một trạng thái được chuyển tới khi sử lí một kí tự vào từ một trạng thái cho trước. Còn trong NFA thì có nhiều hơn một trạng thái có thể đến được từ một trạng thái cho trước khi xử lí một kí tự đầu vào. Và dễ thấy DFA là một trường hợp đặc biệt của NFA khi nó chỉ đi đến một trạng thái khác khi đọc một ký tự vào. III .Sự Tương Đương Giữa DFANFA Ta sẽ thấy rằng sự mở rộng DFA thành NFA không tăng thêm khả năng đoán nhận ngôn ngữ. Giả sử L(DFA) và L(NFA) lần lượt trỏ lớp các ngôn ngữ đoán nhận được bởi các DFA và bởi các NFA .Vì theo định nghĩa một DFA cũng là một NFA, cho nên L(DFA) ⊆ L(NFA) (*) Ta hãy xét theo chiều ngược lại. Định Lý 2.1: Nếu l là một ngôn ngữ được đoán nhận bởi một ÔHK thì cũng có một ÔHĐ đoán nhận L. Nói cách khác L(NFA) ⊆ L(DFA) (**) Hệ Quả 2.1:L(DFA)=L(NFA) 8 Nói cách khác:lớp các ngôn ngữ đoán nhận bởi các ôtômát hữu hạn đơn định và lớp các ngôn ngữ đoán nhận bởi các ôtômát hữu hạn không đơn định là một.Gọi đó là các lớp ngôn ngữ chính qui ( viết tắt là lớp NNCQ ) . Chứng Minh Đinh Lí: Giả sử M = ( ∑ , Q , ∂, q o , F ) là NFA đoán nhận L . Thành lập DFA M’ = ( ∑, Q’,∂’ , q’ o , ,F’ ), trong đó : Q’ = 2 Q ; F’ là tập mọi trạng thái trong Q’ có chứa một trạng thái cuối nào đó của M . Mỗi phần tử trong Q’ được kí hiệu bởi [ q 1 , q 2 , q 3 , , q k ] với q 1 , q 2 , , q k Q .Trạng thái đầu q o ’ = [ q o ] .Hàm chuyển ∂’ của M’ được thành lập theo công thức : ∂’ ( [ q 1 , q 2 , , q k ] , a)= (q 1 , a) (1) Ta sẽ chứng minh L(M) = L(M’) . • Trước hết chứng minh rằng : L(M) L(M’) ,tức là chứng minh rằng nếu w L(M) thì w L(M’); Với w = a 1 a 2 a n , với n 0 và có một suy dẫn trong M : q 0 a 1 a 2 a n M q 1 a 2 a n M M q n-1 a n M q n với q n F (2) Cũng xâu w đó , đối với M’ sẽ có một suy dẫn : q’ 0 a 1 a 2 a n M’ q 1 a 2 a n M’ M’ q n-1 a n M’ q’ n (3) Ta chứng minh bằng một qui nạp rằng : Với mọi i , 0 i n , q i q’ i (4) 9 Hình : Các bước chuyển của M và M’ - Cơ sở qui nạp : q o q o ’ bởi định nghĩa q o ’ = [ q o ] . - Bước qui nạp : Giả sử đúng với i , tức là q i q’ i Theo định nghĩa của suy dẫn trực tiếp ta phải có : q i+1 ( q i , a i+1 ) và q’ i+1 (q’ i , a i+1 ) Theo công thức (*) , thì nếu q i q’ i , ắt có : ∂ (q i ,a i+1 ) ∂( q’ i , a i+1 ) Từ đó suy ra q i q’ i+1 , tức là (4) cũng đúng với i+1 , kết thúc qui nạp . Từ (4) đã được chứng minh , suy ra q n q’ n .Nhưng q n F , suy ra: q’ n F’ do định nghĩa của F’ . Điều đó chứng tỏ w L(M’) . Bây giờ chứng minh phần ngược lại : L(M’) L(M) , tức là chứng minh rằng nếu w L(M’) thì w L(M) . Giả sử có một suy dẫn trong M’ : q’ o w * M’ q’ với q’ F’ Trước hết hãy chứng minh quy nạp theo độ dài | w| rằng : 10 [...]... trên chúng ta đã đưa ra 3 loại Automat là DFA, NFA, NFA Thấy rằng, mỗi loại sau là tổng quát của các trường hợp trước Ở đây chúng ta sẽ xem xét giải thuật để chuyển từ NFA- λ sang loại DFA tương đương Xét một NFA- λ ta có như hình vẽ : 11 Trong hình giá trị của t(q1,a) = {q2,q3,q4,q5} trạng thái q4 đạt tới khi không xử lí 1 kí tự nào ở đầu vào Hình dung, hàm chuyển đổi t(qi,a) có thể chia ra làm 3 thành... theo cách top-down approach trong giải thuật 4.3.1, nó quyết định dãy liên kết trong ngôn ngữ phi ngữ cảnh Hàm chuyển đầu vào có thể tạo ra được từ λ-closure(qi) của các trạng thái và hàm chuyển đổi của NFA- λ Định nghĩa 2 : Hàm biến đổi đầu vào t của một NFA- λ M là một hàm từ Q x ∑ → ρ(Q) bởi : T(qi,a)=U λ-closure(qi) với qj thuộc bao đóng của λ-closure(qi) và δ là hàm chuyển đổi của M 2 Giải thuật :... - Đầu tiên là tập các trạng thái có thể đến được từ qi mà không cần xử lí một kí tự nào cả - Sau đó là các trạng thái có thể đến đựơc khi xử lí kí tự a từ các trạng thái trong tập các trạng thái trên - Cuối cùng theo các cung λ từ các trạng thái kết quả trên để sinh ra tập t(qi,a) Hàm t được định nghĩa trong thuật ngữ của hàm chuyển đổi δ và đường đẫn trong biểu đồ trạng thái, nó đọc một xâu rỗng Nút... tại một suy dẫn trong M qo xa *M pa * M q , cho phép kết thúc sự qui nạp Trở lại giả thiết w L(M’) , tức là q’o w * M’ q’ với q’ F’ Vì q’ F’ , nên có q q’ sao cho q F Vận dụng kết quả vừa chứng minh có ngay qo w *M q ; vậy w L(M) ,dẫn đến kết luận L(M’) L(M) Kết hợp hai kết quả đã chứng minh : ta có L(M) = L(M’) và định lí được chứng minh IV Giải thuật để chuyển từ NFA- λ sang loại DFA tương đương... với một NFA -λ M Các nút của DFA, gọi là DM cho quyết định tương đương của M, là tập các nút của M Nút bắt đầu của DM là bao đóng λ-closure của bất kỳ nút nào trong các nút bắt đầu của M Chìa khoá của giải thuật ở bước 2.1 Nó sinh ra các nút của DM Nếu X là nút của DM thì tập Y được tạo ra chứa toàn bộ các trạng thái có thể tới được bằng cách sử lí kí tự a từ tất cả các trạng thái trong X Trong biểu... biểu đồ trạng thái của DM thì quan hệ này được thể hiện bằng một cung từ X → Y với nhãn a Nút X đuợc làm quyết định bằng cách tạo ra 1 cung từ nó tơi mọi kí tự trong bảng chữ Một nút mới được sinh ra trong bước 2.1.1 đựơc thêm vào tập Q’ và quá trình tiếp tục cho tới khi mọi nts trong Q’ là quyết định được Mã giải : Đầu vào : cho một NFA- λ M=(Q,∑,δ,q0,F) vào hàm dịch t của M 1 Chuẩn bị Q' để λ-closure(q0)... qi nếu có một đường từ qi → qj mà đọc một xâu rỗng Định nghĩa 1: Bao đóng λ-closure của trạng thái qi kí hiệu λ-closure(qi), được định nghĩa đẹ quy như sau i) Cơ sở: Trạng thái qi thuộc λ-closure(qi) ii) Giả thiết đệ quy: Giả sử qj thuộc λ-closure(qi) Nếu qk thuộc δ(qj,λ) thì qk thuộc λ-closure(qi) 12 iii) Kết luận : qj thuộc vào λ-closure(qi) khi và chỉ khi nó có thể tới được từ qi sau một số hữu...Với mọi q q’ , tồn tại suy dẫn trong M : qo w - Cơ sở quy nạp : Với | w | = 0 , tức w = q’o Mặt khác chỉ có qo M q , do định nghĩa của quan hệ suy dẫn ta có * M’ q’o q’o và cũng có qo M qo - Bước qui nạp : Giả thiết là (5) đã đúng với các xâu có độ dài chứng minh nó cũng đúng với xâu w Giả sử w = xa , x ∑*, a q’ (5) ∑ và q’o xa * M’ p’ a * M’ | w | - 1 , hãy q’ , trong đó ∂’( p’, a ) = Xét một trạng... Chuẩn bị Q' để λ-closure(q0) 2 Repeat 13 2.1 If Có 1 nút X Q’ và một ký tự a khỏi X mà được đánh nhãn là a với không có cung rời Then 2.1.1 Cho Y = 2.1.2 If Y Q’, then Q’ := Q’ U {Y} 2.1.3 Thêm một cung từ X vào Y nhãn là a Else done := true Until done 3 Tập các trạng thái đoán nhận của DM là F’ = { X phân qi F} V Cài đặt thuật toán 14 Q’ | X chưá 1 thành 15 . hiện: Automata Assignment Convert NFA to DFA 4/2011 Contents AUTOMATA I. DFA – Automata hữu hạn đơn định 1. Định Nghĩa : Ôtomat hữu hạn đơn định (DFA) là 1 tổ hợp M = (Q, ∑, δ, q 0 , F). Trong. Automat là DFA, NFA, NFA- λ. Thấy rằng, mỗi loại sau là tổng quát của các trường hợp trước. Ở đây chúng ta sẽ xem xét giải thuật để chuyển từ NFA- λ sang loại DFA tương đương. Xét một NFA- λ ta. Đương Giữa DFA Và NFA Ta sẽ thấy rằng sự mở rộng DFA thành NFA không tăng thêm khả năng đoán nhận ngôn ngữ. Giả sử L (DFA) và L (NFA) lần lượt trỏ lớp các ngôn ngữ đoán nhận được bởi các DFA và bởi

Ngày đăng: 27/03/2014, 11:01

Từ khóa liên quan

Mục lục

  • AUTOMATA

  • I. DFA – Automata hữu hạn đơn định

    • 1. Định Nghĩa :

    •    2. Ví Dụ :

    •    3. Giản đồ trạng thái và ngôn ngữ đoán nhận :     

      •      a. Định nghĩa :  

      •       b. Định lí :

      •       c. Hàm chuyển đổi mở rộng của DFA :

      •       d. Ngôn ngữ đoán nhận :

      •        e. Mở Rộng :

      • II. NFA – Automata hữu hạn không đơn định

        • 1. Định Nghĩa:

        • III .Sự Tương Đương Giữa DFA Và NFA   

        • IV. Giải thuật để chuyển từ NFA- sang loại DFA tương đương.

          • Lý thuyết:

          •       2 . Giải thuật :

          • V. Cài đặt thuật toán

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

Tài liệu liên quan