F ⊆ Q: tập các trạng thái kết thúc
1.6. Ngôn ngữ được đoán nhận bởi DFA
- Cho DFA M(Σ, Q, δ, q0, F), ngôn ngữ L được đoán nhận bởi M được xác định như sau:
L(M)={x∈Σ*| δ*(q0,x)=p∈F}
- Ví dụ: vẽ ôtômat đoán nhận ngôn ngữ L gồm các xâu là số nhị phân có độ dài >=2
0 0|1 1 0|1 2
Giáo trình Kiến trúc máy tính và Hệ điều hành
46
1. Ôtômát hữu hạn đơn định
Trạng thái không chấp nhận được
- Trạng thái không có mũi tên đi vào chỉ có mũ tên đi ra (trừ trạng thái bắt đầu).
- Trạng thái chỉ có mũi tên đi vào không có mũi tên đi ra (trừ trạng thái kết thúc
Giáo trình Kiến trúc máy tính và Hệ điều hành
47
1. Ôtômát hữu hạn đơn định
Bài tập:
(1)Cho M, xâu x: kiểm tra xâu x có được đoán nhận hay không?
x: aabbca, abbbca, abbaca, aaaca
0 a 1 b 2 c 3 a 4 c
Giáo trình Kiến trúc máy tính và Hệ điều hành
48
1. Ôtômát hữu hạn đơn định
Bài tập:
(2)Xây dựng DFA đoán nhận ngôn ngữ L(M) sau: - L(M)={abcnbm với n>=0, m>0}
- L(M)={0(10)n với n>0}
- L(M)={0n1m với n>=0, m>0} - L(M)={0n1m với n>0, m>0}
Giáo trình Kiến trúc máy tính và Hệ điều hành
49
1. Ôtômát hữu hạn đơn định
Bài tập:
(3)Xây dựng ôtômat đoán nhận L(M) là:
- Một số nhị phân chẵn có độ dài xâu lớn hơn 2. - Một số nguyên có dấu, không dấu.
- Một số nguyên không dấu của NNLT C - Một số thực tĩnh có dấu, không dấu.
Giáo trình Kiến trúc máy tính và Hệ điều hành
50
2. Ôtômat hữu hạn không đơn định
(Nondeterministic finite automata –NFA)
2.1. Định nghĩa: M(Σ, Q, δ, q0, F)Σ: bộ chữ vào Σ: bộ chữ vào
Q: tập hữu hạn các trạng tháiq0 ∈ Q: trạng thái đầu q0 ∈ Q: trạng thái đầu
F ⊆ Q: tập các trạng thái kết thúc
δ: hàm chuyển trạng thái có dạng δ(q,a)=P Với q∈Q, a∈(Σ∪ε), P⊆Q
Giáo trình Kiến trúc máy tính và Hệ điều hành
51
2. Ôtômat hữu hạn không đơn định
Ví dụ: Ôtômát đoán nhận các xâu có độ dài chẵn trên bộ chữ {0,1}
0|1 0|1
1 2
0
Giáo trình Kiến trúc máy tính và Hệ điều hành
52
2. Ôtômat hữu hạn không đơn định
Sự khác nhau giữa DFA và NFA
- NFA: δ(q,a)=P, với q∈Q, a∈(Σ∪ε), P⊆Q DFA: δ(q,a)=p, với q,p ∈ Q, a ∈ Σ
- NFA: có thể có dịch chuyển khi đọc ε
Giáo trình Kiến trúc máy tính và Hệ điều hành
53
2. Ôtômat hữu hạn không đơn định
2.2. Hàm dịch chuyển mở rộng− δ(q0,a1)={q1, q2} và δ(q1,a2)={q3,q4} − δ(q0,a1)={q1, q2} và δ(q1,a2)={q3,q4} δ(q2,a2)={q5,q6} − δ*(q0,a1a2)= δ(q1,a2)∪δ(q2,a2)={q3,q4,q5,q6} - Có δ*(q,x)={p1, p2,...,pk} thì δ*(q,xa)= với x∈Σ*, a∈Σ k i i a p 1 ) , ( = δ
Giáo trình Kiến trúc máy tính và Hệ điều hành
54
2. Ôtômat hữu hạn không đơn định