- Ngoài ra nếu s0 e là quy tắc của P thì không ảnh hưởng đến kết quả, ta giả thiết s
c. Ngôn ngữ đoán nhận bởi PA.
+ Cho automat Pushdown M=(Q, T, Γ,δ, q0, Z0, F) ta nói ngôn ngữ đoán nhận bởi M là tập:
U(M):={w ∈ T*| w :(q0,Z0) *⇒(q, γ), q∈F, γ ∈Γ*}.
+ Cho automat Pushdown M=(Q, T, Γ,δ, q0, Z0, F) ta nói ngôn ngữ đoán nhận bởi M là tập:
N(M):={w ∈ T*| w :(q0,Z0)* ⇒(q, e), q∈Q}.
+ Chú ý rằng 2 định nghĩa trên khác nhau ở chỗ một dựa vào trạng thái kết thúc, một dựa vào việc vét rỗng Stack.
Ví dụ. Cho M:=({q1,q2},{0,1},{Z,0,1},δ, Z, ∅}, với các hàm chuyển như sau: 1. δ(q1,0,Z)={(q1,0)}, 2. δ(q1,1,Z)={(q1,1)}, 3. δ(q1,0,0)={(q1,00),(q2,e)}
4. δ(q1,0,1)={(q1,10)}, 5. δ(q1,1,0)={(q1,01)}, 6.δ(q1,1,1)={(q1,11),(q2,e)} 7. δ(q2,0,0)={(q2,e)}, 8. δ(q2,1,1)={(q2,e)},
9. δ(q1,1,Z)={(q2,e)} 10. δ(q2,e,Z)={(q2,e)}.
- Từ quy tắc 1-6 cho phép M nhớ các ký hiệu đọc vào ngăn xếp.
- Trong quy tắc 3,6 M có thể tuỳ chọn giữa 2 bước chuyển, chọn bước chuyển thứ 2 khi cho rằng đã đạt điểm chính giữa của xâu
vào.
- Trong trường hợp đó nó chuyển sang trạng thái q2 và bắt đầu so sánh phần xâu còn lại trên băng vào với xâu trong ngăn xếp nhờ các quy tắc 7 và 8.
- Nếu xâu vào có dạng ww’ thì M có khả năng đọc hết xâu và nó xoá nốt Z bởi quy tắc 10 để thừa nhận xâu đó theo kiểu ngăn xếp rỗng.
- Quy tắc 9 cho phép thừa nhận xâu rỗng.
e. Automat tiền định. Automat Pushdown M=(Q, T, Γ,δ, q0, Z0,F) được gọi là tiềnđịnh nếu thoả mãn các điều kiện sau: định nếu thoả mãn các điều kiện sau:
1. ∀q∈Q, Z ∈Γ nếu δ(q,e,Z)≠∅ thì δ(q,a,Z)= ∅ với mọi a ∈ T. 2. Không tồn tại q ∈ Q, Z∈Γ, a ∈ T∪{e} để |δ(q,a,Z) | >1.
f. Nhận xét.
- Điều kiện 1 không cho phép đổi trạng thái giống nhau giữa từ rỗng và ký hiệu vào.
- Điều kiện 2 không cho phép đổi hình trạng giống nhau giữa (q,e,Z) và (q,a,Z).
Ví dụ. M=(Q, T, Γ,δ, q0, Z0, F) với: Q={q1, q2}, T:={0,1}, Γ={R,B,G}, q0={q1}, Z0=R, F=∅ δ: 1. δ(q1,0,R)={(q1,BR)}, 2. δ(q1,1,R)={(q1,GR)}, 3. δ(q1,0,B)={(q1,BB)} 4. δ(q1,0,G)={(q1,BG)}, 5. δ(q1,1,B)={(q1,GB)}, 6. δ(q1,1,G)={(q1,GG),(q2,e)} 7. δ(q2,0,B)={(q2,e)}, 8. δ(q2,1,G)={(q2,e)}, 9. δ(q1,e,R)={(q2,e)} 10. δ(q2,e,R)= {(q2,e)}
Ta dễ dàng thấy M là automat đẩy xuống không tiền định.
Mặt khác, ta có thể chứng minh được N(M)={ww’ | w ∈ {0,1}*}. Ví dụ từ xâu: 001100 ta có bảng chuyển đổi sau:(Xem bảng ở trang sau)
Tín hiệu vào Các hình trạng nhận được e 0 00 001 0011 (q1,R) (q2,e) {vậy e ∈ N(M)} (q1,BR) (q1,BBR) (q1,GBBR)
00110 001100 E (q1,GGBBR) (q2,BBR) (q1,BGGBBR) (q2,BR) (q1,BGGBBR) (q2,R) (q2,e) 4.3. Các định lý về automat Pushdown.
a. Định lý 3.6. Tồn tại ngôn ngữ đoán nhận được bởi automat PA không tiền định nhưng không tồn tại automat Pushdown tiền định đoán nhận nó.
b. Định lý 3.7. Lớp các ngôn ngữ đoán nhận được bởi automat PA không tiền định bằng trạng thái kết thúc trùng với lớp ngôn ngữ đoán nhận được bởi automat đẩy xuống với băng đẩy rỗng U(M)=N(M).
c. Định lý 3.8. Cho văn phạm phi ngữ cảnh G=(N, T, s, P) khi đó tồn tại automat PAM sao cho L(G)=N(M). M sao cho L(G)=N(M).
Chứng minh. Gia sư G=(N, T, s, P) la văn phạm phi ngữ cảnh ta coi nó đã được biến đổi về dạng chuẩn Greibach, không giảm tổng quát ta coi e ∈ L(G). Xây dựng M=({q1}, T, N, s, δ, q1,∅)
( Q:={q1}, T:=T, Γ:=N, Z0:=s, F:= ∅) - Hàm chuyển xác định nh sau:
δ(q1,a,A):={(q1, γ) với điều kÞÖn A aγ∈ P}
- Nhận thấy rằng: xAβ xaαβ⇔ a: (q1,Aβ)⇒(q1,αβ) với A∈N; α,β∈N*.
Thật vậy, xAβ xaαβ⇔ A aα nghĩa là (q1,α)∈δ(q1,a,A) theo định nghĩa suy ra a: (q1,Aβ)⇒(q1,αβ).
- Nếu w∈L(G)⇔∃s * w⇔∃ s w1A1α1 w1w2A2α2 w1w2w3A3α3... w1w2w3...wn-1An-1 w1w2w3...wn-1wnAn w1w2w3...wn-1wn ⇔
w1:(q1,s)⇒(q1,α1); w2:(q1,A1α1)⇒(q1,A2α2); ...; wn-1:(q1,An-1αn-1)⇒(q1,An)
wn:(q1,An)⇒(q1,e). Vậy w=w1w2w3...wn-1wn:(q1,s) *⇒(q1,e), do quá trình trên là tương đương nên suy ra L(G)=N(M).
c. Định lý 3.9. Cho automat PA M==(Q, T, Γ,δ, q0, Z0,F) khi đó tồn tại văn phạm phi ngữ cảnh G=(N, T, s, P) sao cho ngôn ngữ đoán nhận được bởi automat PA trùng với ngôn ngữ đoán nhận được bởi văn phạm G.
Chứng minh. Từ định lý 3.7 ta có thể coi F=∅ ta xây dựng G nh sau: - N:={[q,A,p]p,q∈Q ∧ A∈}∪{s}( s là ký hiệu mới)
- P gồm các quy tắc sau:
1. s [q0, Z0, q], q0 ∈Q; ∀q∈Q;
2. [q, A, p] a[q1, B1, q2][q2, B2, q3]...[qm, B1, qm+1] nếu (q1,B1...Bm)∈δ(q,a,A) hay là a: (q,A) ⇒(q1,B1...Bm); qi∈Q; A,Bi∈Γ
Nhận thấy rằng nếu m=0 khi đó stack rỗng nên q1=p do đó (p,e))∈ δ(q,a,p) vì vậy trong G có quy tắc [q,A,p] a.
Giả sử w∈L(G) nghĩa là tồn tại dãy dẫn xuất s * w nên theo tập quy tắc vừa xây dựng ta có
s [q0, Z0, q] * w ⇔w:(q0,Z0) ⇒ (q,e) vì thế w∈ N(M)
$5. Máy Turing.
5.1. Lịch sử phát triển và mô tả máy Turing.