1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

15 6,5K 19

Đ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 15
Dung lượng 63,48 KB

Nội dung

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 1

Giảng viên hướng dẫn:

Học viên thực hiện:

Automata Assignment

Convert NFA to DFA

4/2011

Trang 2

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, ∑, δ, 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 4

Hay 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 5

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ữ

- 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 6

Ta 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 7

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à δ*(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 9

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 , ∂, 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 10

Hì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 11

Vớ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 13

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 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 14

2.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

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

HÌNH ẢNH LIÊN QUAN

Hình : Các bước chuyển của M và M’ - Tiểu luận biến đổi từ NFA sang DFA trong automata
nh Các bước chuyển của M và M’ (Trang 10)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w