Phiên bản mới này - nơi - là decidable.K=K′
Hãy cho thấy rằng ngôn ngữ là một CFL. Sau đó, tính quyết định xuất phát từ tính quyết định của sự trống rỗng của CFL.L:=⋃k≥1(Ak ∩ Bk)
Chúng tôi sẽ thiết kế một PDA chấp nhận . Mở đầu vào x , PDA này sẽ cố gắng để xây dựng hai factorizations của x , một sử dụng lời của A , và những lời sử dụng khác của B . Nó sẽ sử dụng một bộ đếm trên ngăn xếp để đảm bảo hai yếu tố này có cùng độ dài. Về mặt khái niệm tôi sẽ đề cập đến A -factorization của x cho đến khi ngồi trên đỉnh của x và B -factorization như ngồi ở dưới cùng của x . Sau đó, ngăn xếp sẽ chứa n bộ đếm iff giá trị tuyệt đối của sự khác biệt của số lượng từ được khớp ở trên cùng, trừ đi số lượng từ ở phía dưới, làLxxABAxxBxn . Chúng ta cần một trạng thái khác của PDA để ghi lại dấu hiệu phù hợp tương ứng với n (thông báo cho chúng ta biết nếu A -factorization dài hơn B -factorization, hay ngược lại).nnAB
Khi chúng tôi quét các chữ cái của , chúng tôi không đoán được một từ t của A và một từ u của B mà chữ cái này bắt đầu. Khi chúng tôi đoán, chúng tôi cam kết khớp phần còn lại của t và u với x ; nếu tại bất kỳ thời điểm nào trận đấu của chúng tôi thất bại, chúng tôi dừng lại trong sự lựa chọn không xác định này. Vì vậy, chúng tôi cũng duy trì, ở trạng thái của thiết bị PDA của chúng tôi, hậu tố của t và u vẫn còn phù hợp.xtAuBtuxtu
Khi chúng tôi quét thêm các chữ cái, chúng tôi tiếp tục khớp cho đến khi chúng tôi nhấn vào cuối hoặc cuối của u (hoặc cả hai). Khi chúng tôi nhấn vào cuối của một từ, chúng tôi cập nhật ngăn xếp một cách thích hợp và sau đó đoán một từ mới để khớp ở đầu hoặc cuối (hoặc cả hai).tu
Chúng tôi chấp nhận nếu các hậu tố còn lại được khớp đều trống ở trên và dưới và ngăn xếp không chứa bộ đếm.
Chúng ta có thể xây dựng PDA này một cách hiệu quả, vì vậy chúng ta có thể quyết định hiệu quả nếu nó chấp nhận bất cứ điều gì hay không (ví dụ: bằng cách chuyển đổi hiệu quả sang ngữ pháp và sau đó sử dụng phương pháp thông thường để xem G có tạo ra gì không).G
Chỉnh sửa: Người ta cũng có thể biến điều này thành giới hạn trên về mức độ lớn , trong trường hợp xấu nhất. Tôi nghĩ rằng nó sẽ cho một trên ràng buộc của một cái gì đó gần như 2 O ( l 2 ) , nơi l là tổng độ dài của các từ trong một và B .k2O(l2)lAB
Chỉnh sửa: Bây giờ tôi thấy rằng yêu cầu và B là tập hợp hữu hạn cũng có thể được nới lỏng, với yêu cầu A và B là thường xuyên (có thể là vô hạn). Trong trường hợp này, thay vì duy trì hậu tố còn lại để được khớp ở "trên cùng" và "dưới cùng", thay vào đó chúng tôi duy trì trạng thái của DFA tương ứng mà chúng tôi đang ở, sau khi xử lý tiền tố của một từ phù hợp có thể. Nếu chúng ta đạt trạng thái cuối cùng ở "trên cùng" hoặc "dưới cùng", chúng ta có thể chọn một cách không nhất định để quay lại trạng thái ban đầu cho một từ được đoán mới. ABAB