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:... Start 11 0 x P
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 3Start 1
1 0
x Phép chuyển trên nhãn x
Automata hữu hạn đơn định (DFA)
Trang 5Giả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.
If (q, c);q in F) then write(q, c);"YES") else write(q, c);"NO");
Trang 6Automata hữu hạn không đơn định (NFA)
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.
• DFA là một trường hợp đặc biệt của 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 7Định nghĩa NFA
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
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
• F’ là tập hợp các trạng thái của Q’ có chứa ít nhất một
trạng thái kết thúc trong tập F của M
• Hàm chuyển δ’([q 1 , q 2 , , q i ], a) = [p 1 , p 2 , , p j ] nếu và
chỉ nếu δ({q 1 , q 2 , , q i }, a) = {p 1 , p 2 , , p j }
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 δ(q0,0) = {q0, q1}, δ(q0,1) = {q1}, δ(q1,0) = , δ(q1,1) = {q0, q1}
Ta sẽ xây dựng DFA tương đương M’ (Q’, {0, 1}, δ’, [q 0 ], F’)
Trang 11NFA với - dịch chuyển (NFA)
Trang 14Mục đích: mô phỏng hoạt động của NFA
If (q, c);q in F) then write(q, c);"YES") else write(q, c);"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ó -CLOSURE(q)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(q)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 }
Trang 18Giải thuật xây dựng hàm chuyển δ’
Giải thuật:
T := -CLOSURE CLOSURE (q, c);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 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] := U;{[T, a] là phần tử của bảng chuyển DFA}T, a] là phần tử của bảng chuyển DFA}] là phần tử của] là phần tử của bảng chuyển DFA} bảng chuyển DFA}
end;
end;
End;
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(q)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à
Trang 24Định lý 3: nếu r là BTCQ thì tồn tại một NFA với -CLOSURE(q)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 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
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
R k
ij đều tồn tại một biểu thức chính quy ký hiệu cho R k
ij
Giả sử ta có bổ đề trên đúng với k-CLOSURE(q)1, tức là tồn tại BTCQ rk-CLOSURE(q)1
lm sao cho L(rk-CLOSURE(q)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