III. GIẢI QUYẾT CÁC VẤN ĐỀ BAO HÀM TRONG NGÔN NGỮ PHI NGỮ CẢNH
2. Cho một CFG G, L(G) có hữu hạn không?
Định lí 8.1 cho ta cách trả lời 2 câu hỏi đó. Ta biến đổi G vào trong CNF. Cho G′ là văn phạm kết quả. P là số biến trong G′ và n =2p+1. Nếu G′ mô tả bất kì chuỗi nào, nó phải mô tả một chuỗi độ dài nhỏ hơn n. Cách khác, áp dụng bổ đề “Puming” lên một chuỗi u độ dài nhỏ nhất (≥ n) mô tả bởi G′; sau đó u= vwxyz, cho một vài chuỗi v, w, x, y, và z với |wy| > 0 và vxz ∈ L(G′) - nhưng mâu thuẫn với chuỗi nhỏ nhất của u. Tương tự, nếu L(G′) hữu hạn ở đó phải là một chuỗi u ∈
L(G′) với n ≤ |u| < 2n; chứng minh dựa trên kết quả trả về trong chương 5. Bởi vậy chúng ta thu được 2 thuật toán giải quyết bên dưới.
Giải thuật giải quyết cho vấn đề 1 và 2. (Cho một CFG G, L(G) = ∅
không? L(G) có hữu hạn không?) Đầu tiên, kiểm tra Λ có thể được mô tả bởi G hay không, sử dụng giải thuật cho vấn đề thành viên. Nếu nó có thể, thì L(G) ≠∅. Trong mọi trường hợp, cho G′ là văn phạm thuộc dạng chuẩn Chomsky mô tả bởi L(G) – {Λ}, và có n = 2p+1, mà P là số biến trong G′. Tăng biến i với giá trị ban đầu là 1, kiểm tra chuỗi có độ dài i cho mỗi thành viên trong L(G). Nếu không có i < n thì có một chuỗi độ dài i trong L(G′) và Λ ∉ L(G) sau đó L(G′) = L(G) = ∅.
Nếu không có i mà n ≤ i < 2n thì có một chuỗi độ dài i trong L(G), và L(G) là hữu hạn. Nếu có một chuỗi x ∈ L(G) với n ≤ |x| < 2n thì L(G) hữu hạn.
Các thuật toán này dễ dàng mô tả nhưng không dễ để mang ra thực hiện. May thay, với các vấn đề như các vấn đề thành viên với nó là quan trọng thì có thể tìm thấy các giải pháp thích hợp, có nhiều thuật toán có hiệu quả hơn. [ xem sách của Earley (Communications of ACM 13(2): 94-102,1970]. Nếu ta đi xuống dưới xa hơn có danh sách các vấn đề giải quyết trong chương 5, công thức cho các CFG hoặc PDA thay thế biểu thức chính qui hoặc các FA. Ta sẽ đụng đến các vấn đề mà không có một thuật toán giải quyết nào khả thi, thậm chí một cái cực kỳ hiệu quả. Lấy 1 ví dụ, cho 2 CFL, có bao nhiêu chuỗi được mô tả bởi cả 2? Thuật toán trong chương 5 giải quyết các vấn đề thu được cho các FA phụ thuộc vào việc lớp các ngôn ngữ chính qui được đóng dưới phép giao và phép bù. Việc lớp các CFL không đóng dưới các phép toán này không phải là không thể giải quyết, và trong chương 12 chúng ta sẽ nói đến nó.