Có cách nào để kiểm tra nếu hai NFA chấp nhận cùng một ngôn ngữ không?


10

Hoặc ít nhất tạo ra một chuỗi các chuỗi mà một NFA chấp nhận, vì vậy tôi có thể đưa chuỗi đó vào NFA khác. Nếu tôi thực hiện tìm kiếm thông qua mọi đường dẫn của NFA, liệu nó có hoạt động không? Mặc dù điều đó sẽ mất một thời gian dài.


Không (không phải theo kiến ​​thức của chúng tôi, ít nhất). Bình đẳng NFA là PSPACE hoàn chỉnh. Xem cuộc thảo luận này .
Shaull

@Shaull: OP đã không như một cách hiệu quả .
frafl

@frafl: Bạn nói đúng. Tôi giả định rằng "sẽ mất nhiều thời gian" rằng OP muốn một giải pháp hiệu quả. Tuy nhiên, bình luận của tôi đề cập rằng đó là trong PSPACE, vì vậy nó có thể quyết định được.
Shaull

Câu trả lời:


10

Vấn đề quyết định là PSPACE-đầy đủ như Shaull lưu ý.

Tuy nhiên, hóa ra trong thực tế, thường có thể quyết định tương đương NFA một cách hợp lý nhanh chóng. Mayr và Clemente (dựa trên bằng chứng thực nghiệm) cho rằng độ phức tạp của trường hợp trung bình quy mô theo phương pháp bậc hai . Các kỹ thuật của họ dựa trên việc cắt tỉa hệ thống chuyển tiếp được dán nhãn cơ bản thông qua các xấp xỉ cục bộ của các vùi có dấu vết.

Giống như SAT hoàn thành NP trong phân tích trường hợp xấu nhất, nhưng thường biến thành đáng ngạc nhiên đối với các trường hợp trong thế giới thực, do đó có vẻ như khả năng tương đương NFA có thể được quyết định hiệu quả cho nhiều trường hợp trong thế giới thực.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.