Tải bản đầy đủ

Automata hữu hạn Biểu thức chính quy

Chương 3:

Automata hữu hạn &
Biểu thức chính quy

Nội dung:





Khái niệm DFA & NFA
Sự tương đương giữa DFA & NFA
Biểu thức chính quy
Các tính chất của tập chính quy

1


Định nghĩa ôtômát (automata)
Định nghĩa: là máy trừu tượng có cơ cấu và hoạt động

đơn giản nhưng có khả năng đoán nhận ngôn ngữ


Con người phải lập trình sẵn cho máy một ‘lộ trình’ để thực hiện

INPUT

Bộ điều khiển

OUTPUT
BỘ NHỚ

2


Phân loại automata
Automata đơn định (Deterministic Automata):


Mỗi bước di chuyển chỉ được xác định duy nhất bởi cấu hình hiện
tại (hàm chuyển của automata là đơn trị)

Automata không đơn định (Non-deterministic Automata):


Tại mỗi bước di chuyển, nó có vài khả năng để lựa chọn (hàm
chuyển của automata là đa trị)

3


Phân loại FA
DFA
Deterministic
Finite Automata

FA
(Finite Automata)

NFA

Nondeterministic
Finite Automata

Biểu thức
chính quy
4


Automata hữu hạn đơn định (DFA)
Ví dụ:

c

Input

1

Start

q0

1

0

0 1 1 0 0 1 0 1

q1

Bộ điều khiển

0

a

b

0

Trạng thái bắt đầu

0

1
q2

1
d

M=(Q, Σ, δ, q0, F)

Trạng thái kết thúc

q3

x

Phép chuyển trên nhãn x

Q : tập hữu hạn các trạng thái (p, q…)
Σ : bộ chữ cái nhập (a, b … ; w, x, y …)
δ : hàm chuyển, ánh xạ: Q x Σ → Q
q0 Q : trạng thái bắt đầu.
F Q : tập các trạng thái5 kết thúc.


Mở rộng hàm chuyển trạng thái
1. δ(q, ) = q
2. δ(q, wa) = δ( δ(q,w), a) với
Ngôn ngữ được chấp nhận:
L(M) = { x | δ( q0, x )

w, a

F}

Ngôn ngữ
chính quy

Ví dụ: chuỗi nhập w=110101


δ(q0, 1) = q1



δ(q0, 11) = δ(q1, 1) = q0



δ(q0, 110) = δ(q1, 10) = δ(q0, 0) = q2



δ(q0, 1101) = δ(q1, 101) = δ(q0, 01) = δ(q2, 1) = q3



δ(q0, 11010) = … = δ(q3, 0) = q1



δ(q0, 110101) = … = δ(q1, 1) = q0

F

6


Giải thuật hình thức
• Mục đích: kiểm tra một chuỗi nhập x có thuộc ngôn ngữ
L(M) được chấp nhận bởi automata M.
• Input: chuỗi nhập x$
• Output: câu trả lời ‘YES’ hoặc ‘NO’
• Giải thuật:
q := q0 ;
c := nextchar ; {c là ký hiệu nhập được đọc tiếp theo}
While c <> $ do
begin
q := δ(q, c);
c := nextchar ;
end
If (q in F) then write("YES") else write("NO");
7


Automata hữu hạn không đơn định (NFA)
• Ví dụ: cho automata M (hình vẽ) và xét chuỗi nhập 01001
1
0
Start

1
0
0

q0

0

q3

q4

1
q1

q0
1

0

q0
0

0
1

q0
1

q3
q2

1

0

q0
0

q1

0

q0

1

0

q3

q0
1

q3

q1

0

q4

1

Nhận xét:
• Ứng với một trạng thái và một ký tự nhập, có thể có
không, một hoặc nhiều phép chuyển trạng thái.
8
• DFA là một trường hợp đặc biệt của NFA

q4


Định nghĩa NFA
Q : tập hữu hạn các trạng thái.
Σ : bộ chữ cái nhập.
M=(Q, Σ, δ, q0, F)
δ : hàm chuyển ánh xạ Q x Σ → 2Q
q0 Q : trạng thái bắt đầu.
F Q : tập các trạng thái kết thúc.
Chú ý: khái niệm δ(q, a) là tập hợp tất cả các trạng thái p
sao cho có phép chuyển từ trạng thái q trên nhãn a.
Hàm chuyển trạng thái mở rộng:
• δ(q, ) = {q}
• δ(q, wa) = { p | có một trạng thái r trong δ(q, w) mà p δ(r, a) }
= δ( δ(q,w), a)
• δ(P, w) = q P δ(q, w) với P Q
9


Ví dụ về NFA
Ví dụ: xét chuỗi nhập w=01001 và NFA đã cho ở trên
M( {q0, q1, q2, q3, q4}, {0, 1}, δ, q0, {q2, q4} )



δ

• δ(q0, 0) = {q0,q3}

Input

• δ(q0, 01) = δ( δ(q0, 0), 1)

Trạng thái

0

1

q0

{q0,q3}

{q0,q1}

q1

Ø

{q2}

q2

{q2}

{q2}

q3

{q4}

Ø

q4

{q4}

{q4}

Do q4

F nên w=01001

L(M)

= δ({q0, q3},1) = δ(q0, 1)
δ(q3, 1) = {q0, q1}
• δ(q0, 010) = {q0, q3}
• δ(q0, 0100) = {q0, q3, q4}
• δ(q0, 01001) = {q0, q1, q4}
10



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×