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:... Automata hữu
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
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)
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
q 0 q 3 q 4
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 tại một DFA chấp nhận L.
• 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
Trang 11Định nghĩa: NFAε M(Q, Σ, δ, q 0 , F)
• δ : hàm chuyển ánh xạ Q x (Σ ∪ {ε}) → 2Q
• Khái niệm δ(q, a) là tập hợp các trạng thái p sao cho
có phép chuyển nhãn a từ q tới p, với a ∈ (Σ ∪ {ε})
Trang 12• δ*(q, w) = { p | có đường đi từ q tới p theo nhãn w, trên
đường đi có thể chứa cạnh nhãn ε }
Trang 14Mục đích: mô phỏng hoạt động của NFAε
If (q in F) then write("YES") else write("NO");
Trang 15Đị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 17Ví dụ: xây dựng DFA tương đương với NFAε sau:
M = (Q={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, Σ={a, b}, δ, 0, F={10})
a
b
ε ε
ε ε
ε ε
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 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)
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 ε-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 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-1, tức là tồn tại BTCQ rk-1
Trang 29Sự tương đương giữa DFA và BTCQ
Ví dụ: viết BTCQ cho DFA
Trang 30r k 33
(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