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ự, q0 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
Trang 1Giảng viên hướng dẫn:
Học viên thực hiện:
Automata Assignment
Convert NFA to DFA
4/2011
Trang 2AUTOMATA
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, ∑, δ, q0, 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ự, q0 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 :
Trang 3− 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 qo,q1, q2,…,qn 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à q0, 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
Trang 4Hay là δ(qi, a) = qk.Với qi 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
q0aba → q1ba → q0a → q1
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:
Trang 53 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ữ
- q0 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, ∑, δ, q0, F) Với Q = { q0 ,q1 ,q2 }, ∑ = {a, b}, F = { q2 }
Và hàm chuyển đổi δ cho dưới dạng bảng sau :
Trang 6Ta có giản đồ trạng thái như sau :
Giả sử pw là một đường từ q0 đọc xâu vào w và kết thúc tại trạng thái qw Đị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, ∑, δ, qo, 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à δ(q0, ω) = 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ì δ*(q0, λ) = q0, đường đi tương ứng là đường rỗng bắt đầu và kết thúc đều tại q0
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 pu mà đọc xâu u
và δ*(qo, u) = qu Đường đi pω được tạo ra bằng cách theo cung nhãn a từ trạng thái qu Qua đó ta thấy chỉ có một con đường duy nhất từ qo đọc xâu ω vì pu 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 qu.Trạng thái kết thúc của đường đi pω được quyết định bởi chuyển đổi δ(qu, a).Từ định nghĩa của hàm chuyển đổi mở rộng ta có δ*(qo, ω) = δ( δ*(qo, u), a) vì
ta có δ*(qo, u) = qu, qω = δ(qu, a) = δ( δ*(qo, u),a) = δ*(qo, ω)
Trang 7c 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à δ*(qi, λ) = qi
Nếu length(ω) = 1, thì ω = a (với a Є ∑* ) và δ*(qi, a) = δ(qi, a)
- Bước đệ quy : Coi ω là một xâu có độ dài n > 1 Thì ω = ua và chuyển đổi
δ*(qi, ua) = δ(δ*(qi, 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) = {ω Є ∑ * |δ*(q0, ω) Є 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, ∑, δ, qo, F} là một DFA thì M' = {Q, ∑, δ, qo, Q- F} là một DFA khác và L(M') = ∑* - L(M)
II NFA – Automata 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, ∑, δ, qo, 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, q0 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 ∑ → 2Q.(Hàm này là sự khác nhau duy nhất giữa DFA và NFA)
Hình miêu tả như sau:
Trang 8
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 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 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)
Trang 9Nó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 , ∂, qo, 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 [ q1 , q2 , q3 , , qk ] với q1 , q2 , , qk
Q Trạng thái đầu qo’ = [ qo] Hàm chuyển ∂’ của M’ được thành lập theo công thức :
∂’ ( [ q1 , q2 , , qk ] , a)= (q1 ,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 = a1a2 an , với n 0 và có một suy dẫn trong M :
q0 a1a2 an M q1a2 an M M qn-1 an M qn với qn F (2) Cũng xâu w đó , đối với M’ sẽ có một suy dẫn :
q’0 a1a2 an M’ q1a2 an M’ M’ qn-1 an 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 , qi q’i (4)
Trang 10Hình : Các bước chuyển của M và M’
- Cơ sở qui nạp : qo qo’ bởi định nghĩa qo’ = [ qo]
- Bước qui nạp : Giả sử đúng với i , tức là qi q’i
Theo định nghĩa của suy dẫn trực tiếp ta phải có :
qi+1 ( qi , ai+1) và q’i+1 (q’i ,ai+1)
Theo công thức (*) , thì nếu qi q’i , ắt có :
∂ (qi ,ai+1) ∂( q’i, ai+1)
Từ đó suy ra qi 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 qn q’n Nhưng qn 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 :
Trang 11Với mọi q q’ , tồn tại suy dẫn trong M :
qo w M q (5)
- Cơ sở quy nạp : Với | w | = 0 , tức w = , do định nghĩa của quan hệ suy dẫn ta có
q’o *
M’ q’o Mặt khác chỉ có qo 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 | w | - 1 , hãy
chứng minh nó cũng đúng với xâu w
Giả sử w = xa , x ∑*, a ∑ và q’o xa *
M’ p’ a *
M’ q’ , trong đó ∂’( p’, a ) = q’
Xét một trạng thái bất kì q q’ Do định nghĩa của thì tồn tại p p’ sao cho q
∂(p , a) Vậy theo giả thiết qui nạp , tồn 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.
Lý thuyết:
Ở phần lý thuyết 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ẽ :
Trang 12
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 phần như sau:
- Đầ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 qj là bao đóng của trạng thái 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)
Trang 13iii) 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 hạn áp dụng các bước đệ quy
Tập λ-closure(qi) có thể được tạo ra 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 :
Giải thuật , xây dựng biểu đồ trạng thái của máy quyết định 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 đồ 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)
2 Repeat
Trang 142.1 If Có 1 nút X Q’ và một ký tự a với không có cung rời
khỏi X mà được đánh nhãn là a
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 Q’ | X chưá 1 thành phân qi F}
V Cài đặt thuật toán