2 Đị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’ để
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 22
Đị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
Bộ điều khiển
INPUT
OUTPUT
BỘ NHỚ
Trang 3Phâ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ị)
Trang 4NFA
Nondeterministic Finite Automata
Biểu thức
chính quy
Trang 5x
Phép chuyển trên nhãn x
Automata hữu hạn đơn định (DFA)
Trang 7Giả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
Trang 88
Automata 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
Trang 9Đị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 1010
Ví 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}
q0
1
0 Trạng thái
Input
• δ(q0, 01) = δ( δ(q0, 0), 1) = δ({q0, q3},1) = δ(q0, 1)
Trang 11Sự 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 1212
Ví 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 13NFA với - dịch chuyển (NFA)
Trang 15Mở rộng hàm chuyển trạng thái cho NFA
Trang 1616
Mục đích: mô phỏng hoạt động của NFA
Trang 17Sự 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 18
q1
{q2} {q1, q2}
Inputs δ’
Trang 19Xâ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 2020
Giả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 21Xây dựng DFA từ NFA()
Trang 22• 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 23Biểu thức chính quy (RE)
Trang 25Biể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 27Sự 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 29Sự tương đương giữa NFA và BTCQ
Trang 3030
Sự 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
thái nào lớn hơn k)
• Định nghĩa đệ quy của R k
Trang 31Sự 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
k = 0: R 0
ij là tập hữu hạn các chuỗi 1 ký hiệu hoặc
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 3232
Sự tương đương giữa DFA và BTCQ
Ví dụ: viết BTCQ cho DFA