Sự tương đương giữa ÔĐX và VPPNC

Một phần của tài liệu BÁO CÁO THỰC TẬP-NGÔN NGỮ VÀ BIỂU DIỄN NGÔN NGỮ (Trang 39)

Định lý 1: Nếu L là một NNPNC, thì tồn tại một ÔĐX M sao cho L = N(M).

Giả sử L = L(G) với G = (Σ, ∆, P, S) là một VPPNC. Lập ÔĐX M = (Σ, {q}, Σ∆, ∂, q, S, ) trong đó:

1) Với mọi A∆ thì ∂(A, q,  ) = {αR, q) | (A → α)P} 2) Với mọi aΣ thì ∂(a, q, a) = {( , q)}

Vậy là: - Nếu đỉnh ngăn xếp là một ký hiệu không kết thúc A, thì nó bị thay thế, hệt như một bước suy dẫn trong G với sản xuất A → α. Lúc đó đầu đọc không dịch chuyển.

- Còn khi đỉnh ngăn xếp là một ký hiệu cuối α, thì nó được đọ với ký hiệu trỏ trên băng vào và được rút gọn (loại khỏi ngăn xếp) nếu có sự trùng khớp. Lúc đó đầu đọc chuyển sang phải.

Có thể thấy rằng, hoạt động của M là một quá trình bắt chước một suy dẫn trái trong G cho đến khi sinh ra đúng xâu vào trên băng, trong đó mỗi dạng xâu trái bị ngắt ra làm đôi tại ký hiệu không kết thúc ở bên trái nhất:

- Phần bên phải (có chứa các ký hiệu không kết thúc) nằm ở trong ngăn xếp, nhưng theo thứ tự đảo ngược; lúc khởi đầu nó là S (đáy ngăn xếp).

- Phần bên trái gồm toàn các ký hiệu cuối, đương nhiên phải trùng khớp với phần đầu của xâu vào, cho nên đã được đọ dần với xâu vào trên băng mà không cần lưu lại ở đâu nữa.

Ví dụ: Cho VPPNC G:

S → aAA A → aS | bS | a

ÔĐX tương đương với G có hàm chuyển ∂ như sau: ∂(S, q, ε) = {(aAA, q)}

∂(A, q, ε) = {(aS, q), (bS, q), (a, q)} ∂(a, q, a) = {(ε, q)}

∂(b, q, b) = {(q, ε)}

Xét suy dẫn trái trong G sinh ra xâu abaaaa

SG aAA G abSA G abaAAA G abaaAA GabaaaA Gabaaaa Suy dẫn này sẽ được M bắt trước bởi quá trình đoán nhận xâu abaaaa như sau:

SqabaaaaMAAaqabaaaaMAAqbaaaaMASbqbaaaaMASqaaaaM AAAaqaaaa MAAAqaaaMAAaqaaaMAAqaaMAaqaaMAqaMaqaMq

Định lý 2: Nếu L = N(M) với một ÔĐX M nào đó, thì L là một NNPNC

Cho M = (Σ, Q, Γ, ∂, q0, Z0, ). Thành lập VPPNC G = (Σ, ∆, P, S), trong đó ∆ là tập mọi phần tử có dạng [A, q, p] với A Γ và p, qQ, và bổ sung thêm phần tử mới S. P được thành lập như sau:

1) Với mọi qQ, S → [Z0, q0, q] là sản xuất trong P

2) Nếu (Bm…B2B1, q)∂(A, q, a), với A, B1, …, Bm  Γ; q, q1Q; aΣ {ε}, thì với mọi q2, q3,…, qm+1 trong Q:

[A, q, qm+1]→ a[B1, q1, q2] [B2, q2, q3]… [Bm, qm, qm+1] là một sản xuất trong P (trường hợp m=0, thì sản xuất lập được là [A, q, q1]→ a).

Văn phạm G xây dựng được như trên nhằm làm cho mỗi suy dẫn trái của một xâu w sẽ là một sự bắt trước quá trình đoán nhận xâu w của ÔĐX M. Trong suy dẫn, mỗi dạng câu đều có dạng xα, với xΣ+ và α∆*, và các biến trong α tương ứng với các ký hiệu chứa trong ngăn xếp của M vào lúc M vừa đọc xong xâu con x trên băng vào.

Bài tập:

1. Lập các ÔĐX đoán nhận các ngôn ngữ sau: a) {aibj | i, j0}

b) {aibj | i, j1} c) {aicaj | ij0} d) {aibicj | i, j0}

2. Lập các ÔĐX đoán nhận các xâu trên {a, b} có số a bằng số b 3. Lập các ÔĐX đoán nhận các xâu trên {a, b} có số a gấp đôi số b 4. Lập ÔĐX tương đương với VPPNC: S → +SS | *SS | a

5. Lập văn phạm cho ngôn ngữ N(M) với

M = ({0, 1}, {q0, q1}, {Z0, X}, ∂, q0, Z0, ) trong đó ∂ được cho như sau: ∂(Z0, q0, 1) = {(Z0X, q0)} ∂(Z0, q0, ε) = {(ε, q0)}

∂(X, q0, 1) = {(XX, q0)} ∂(X, q1, 1) = {(ε, q1)} ∂(X, q0, 0) = {(X, q1)} ∂(Z0, q1, 0) = {(Z0, q0)}

Một phần của tài liệu BÁO CÁO THỰC TẬP-NGÔN NGỮ VÀ BIỂU DIỄN NGÔN NGỮ (Trang 39)

Tải bản đầy đủ (PDF)

(41 trang)