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 Chương 3:... Sự tương đương
Trang 1Automata 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
Chương 3:
Trang 2Nondeterministic Finite Automata
Biểu thức
chính quy
Trang 31
1 0
0 0
Phép chuyển trên nhãn x
Automata hữu hạn đơn định (DFA)
Trang 5If (q in F) then write("YES") else write("NO");
Trang 6Automata hữu hạn không đơn định (NFA)
1 0
q 1
q 2
0 1
• Ví d ụ: cho automata M (hình vẽ) và xét chuỗi nhập 01001
0
0
1 0
0 1
Trang 8Ví dụ: xét chuỗi nhập w=01001 và NFA đã cho ở trên
• M( {q 0 , q 1 , q 2 , q 3 , q 4 }, {0, 1}, δ, q 0 , {q 2 , q 4 } )
{q4} {q4}
q4
Ø {q4}
q3
{q2} {q2}
q2
{q2} Ø
q1
{q0,q1} {q0,q3}
q0
1 0
Trang 9Sự tương đương giữa DFA & NFA
Định lý 1: Nếu L là tập được chấp nhận bởi một NFA thì tồn
Trang 10Ví dụ về sự tương đương giữa DFA & NFA
Ví dụ: NFA M ({q 0 , q 1 }, {0, 1}, δ, q 0 , {q 1 }) với hàm chuyển
Trang 11NFA với - dịch chuyển (NFA)
Trang 12Mở rộng hàm chuyển trạng thái cho NFA
Trang 13Mở rộng hàm chuyển trạng thái cho NFA
Trang 14Giải thuật hình thức cho NFA
Mục đích: mô phỏng hoạt động của NFA
Input: chu ỗi nhập x$
Output: câu trả lời ‘YES’ (x được chấp nhận) hoặc ‘NO’
If (q in F) then write("YES") else write("NO");
Trang 15Sự tương đương giữa NFA và NFA
Định lý 2: nếu L được chấp nhận bởi một NFA có -dịch
chuyển thì L cũng được chấp nhận bởi một NFA không có
Trang 16q1
{q2} {q1, q2}
{q0, q1, q2}
q0
2 1
0 Trạng thái
Inputs δ’
Trang 17Xây dựng DFA từ NFA()
Ví dụ: xây dựng DFA tương đương với NFA sau:
Ta xây dựng DFA M’= (Q’, Σ, δ’, q0’, F’) tương đương M
• Trạng thái bắt đầu: q0’ ↔ -CLOSURE(q0)
• F’ = { p | trong ký hiệu của p có chứa ít nhất một trạng thái của F }
• Xây dựng hàm chuyển δ’
Trang 18Giải thuật xây dựng hàm chuyển δ’
Giải thuật:
T := -CLOSURE (q 0 ) ; T chưa được đánh dấu ;
Thêm T vào tập các trạng thái Q’ của DFA ;
While Có một trạng thái T của DFA chưa được đánh dấu do
Begin
Đánh dấu T; { xét trạng thái T}
For Với mỗi ký hiệu nhập a do
begin
U:= -closure((T, a))
If U không có trong tập trạng thái Q’ của DFA then begin
Thêm U vào tập các trạng thái Q’ của DFA ; Trạng thái U chưa được đánh dấu;
[T, a] := U;{ [T, a] là phần tử của bảng chuyển DFA}
end;
end;
End;
Trang 19Xây dựng DFA từ NFA()
Trang 20• Bảng hàm chuyển
E A
a a
E
E B
D
C B
C
D B
B
C B
A
b a
Ký hiệu nhập Trạng thái
• Ký hiệu bắt đầu: q0’ = A (↔ -CLOSURE(q0) )
• Tập trạng thái kết thúc: F’ = {E} (vì trong E có chứa trạng
thái 10 F)
Xây dựng DFA từ NFA()
Trang 21Biểu thức chính quy (RE)
Trang 22Biểu thức chính quy (RE)
Định nghĩa: cho Σ là một bộ chữ cái BTCQ trên Σ là các tập
hợp mà chúng mô tả được định nghĩa đệ quy như sau:
● là BTCQ ký hiệu cho tập rỗng
● là BTCQ ký hiệu cho tập {}
● a Σ, a là BTCQ ký hiệu cho tập {a}
● Nếu r và s là các BTCQ ký hiệu cho các tập hợp R và S thì (r + s), (rs)
và ( r*) là các BTCQ ký hiệu cho các tập hợp R S, RS và R* tương ứng
Thứ tự ưu tiên:
Phép bao đóng > Phép nối kết > Phép hợp
Ví dụ:
• Biểu thức ((0(1*)) + 1) có thể viết là 01*+1
Trang 24Sự tương đương giữa NFA và BTCQ
Định lý 3: nếu r là BTCQ thì tồn tại một NFA với -dịch
chuyển chấp nhận L(r)
Chứng minh: quy nạp theo số phép toán
• Xét r không có phép toán nào
Trang 25Sự tương đương giữa NFA và BTCQ
Trang 26Sự tương đương giữa NFA và BTCQ
Trang 27Sự tương đương giữa DFA và BTCQ
Định lý 4: Nếu L được chấp nhận bởi một DFA, thì L được
ký hiệu bởi một BTCQ
Chứng minh:
trạng thái i đến trạng thái j mà không đi ngang qua trạng thái nào lớn hơn k)
Trang 28Sự tương đương giữa DFA và BTCQ
• Ta sẽ chứng minh (quy nạp theo k) bổ đề sau: với mọi Rk
ij đều tồn tại một biểu thức chính quy ký hiệu cho Rk
ij
Giả sử ta có bổ đề trên đúng với k-1, tức là tồn tại BTCQ r k-1
lm sao cho L(r k-1
Trang 29Sự tương đương giữa DFA và BTCQ
Ví dụ: viết BTCQ cho DFA
Trang 30(0 + 1)(00)*
0 + 1
0 + 1
r k 32
(0 + 1)(00)*0
r k 31
0*1
1 + 01 1
r k 23
(00)*
+ 00
r k 22
0(00)*
0 0
r k 21
0*1 1
1
r k 13
0(00)*
0 0
r k 12
(00)*
r k 11
Trang 31Mối liên hệ giữa FA và BTCQ