Tôi không chắc chắn những gì bạn đang nhận được với các sản phẩm cartesian; điều này mô phỏng cả hai automata song song, sẽ cung cấp cho bạn giao điểm. Nhưng bạn muốn nó xác định tất cả các từ trong có hậu tố từ ! Ở mức độ trực quan, đó là.LR
Giả sử đầu vào của chúng tôi là . Rõ ràng, chúng tôi không thể kiểm tra tất cả các phần tiếp theo có thể (đối với tư cách thành viên trong ) mà chỉ có một số lượng hữu hạn trong số chúng. Nhận xét của Artem là hữu ích nhất ở đây; chúng tôi đoán hậu tố sẽ là gì và chạy cả hai automata trên nó.w∈Σ∗Rx
Đặt và các PDA cho và NFA cho , tương ứng. Xây dựng một máy tự động như sau. Trên đầu vào , mô phỏng . Sau khi được tiêu thụ, chuyển sang giao lộ đã sửa đổi của và , giữ trạng thái từ . Bây giờ, quyết định cho mọi chuyển đổi không nhất định về mặt ký hiệu nào tiếp theo trong đầu vào ảo. Chấp nhận khi và chỉ khi cả hai thành phần của đạt đến trạng thái cuối cùng đồng thời, đó là nếuALARLRAw∈Σ∗ALwAL,RALARALwAL,Rwcó một sự tiếp nối để và .xwx∈Lx∈R
Bạn cũng có thể sử dụng ngữ pháp chính thức. Bạn có thấy làm thế nào bạn có thể rút ra hai ngữ pháp song song không? Nói chung, không rõ làm thế nào để điều chỉnh để bạn có thể xử lý các hậu tố; sử dụng hình thức bình thường Chomsky giúp.GL
Giả sử cả và được đưa ra ở dạng bình thường Chomsky. Sửa đổi sao cho phần không phải cực nhất có thể phân biệt được và biến biểu tượng bắt đầu của nó thành biểu tượng bắt đầu mới. Giới thiệu cho các phiên bản phân biệt của các quy tắc mới khác thường dẫn đến một ngữ pháp xuất phát song song trong và (không phải là thiết bị đầu cuối là cặp không phải thiết bị đầu cuối); nếu cả hai ngữ pháp đồng ý về ký hiệu đầu cuối, hãy xóa tổ hợp không đầu cuối. Bằng cách đó, một hậu tố trong sẽ bị xóa nếu và chỉ nếu nó có thể được bắt nguồn trong và trong , nó vẫn .GLGRGLGLGRGLGLGRw∈L/R