Cho
Tôi đang tìm một bản dựng NFA nhỏ cho ngôn ngữ ghép hai từ có độ dài khác nhau về chỉ số, nghĩa là
Lưu ý rằng vì là cố định, và là ngôn ngữ hữu hạn.
DFA tầm thường cho ngôn ngữ chứa | \ Sigma | \ chọn k trạng thái +1 và chỉ "ghi nhớ" những chữ cái đã thấy trong các chữ cái k đầu tiên , tuy nhiên nếu k = o (| \ Sigma |) , chúng ta có thể tạo NFA nhỏ hơn đáng kể.
Một NFA "đơn giản" cho nó sẽ có kích thước (chính xác hơn là )
Lấy một tập hợp (nghĩa là một tập các vectơ sao cho với mọi vectơ và chỉ số, tồn tại một vectơ sao cho , tức là nếu chúng ta chỉ nhìn vào các chỉ số này trong chúng ta tìm thấy ). Những họ có kích thước được biết đến.
Chúng tôi nghĩ rằng mỗi vectơ là một hàm , trong đó .
Tạo một NFA như sau:
Từ trạng thái bắt đầu tạo -transition đến một trạng thái mới cho bất kỳ . trạng thái này bằng .
Từ mỗi xây dựng một đường dẫn các trạng thái chấp nhận tất cả các từ có chữ đầu tiên được ánh xạ bởi thành 0 và các chữ cái sau được ánh xạ từ đến 1.
Về cơ bản, ý tưởng là tập hợp phổ quát cho phép chúng ta phân vùng các chữ cái được phép xuất hiện trong các ký hiệu đầu tiên từ phần còn lại và chúng ta nhận được mọi từ trong ngôn ngữ vì phải có một vectơ tương ứng phân vùng nó đúng.
Vì vậy, các câu hỏi là:
Kích thước của NFA nhỏ nhất cho gì?
Là xây dựng này tối ưu?
Những gì ràng buộc thấp hơn chúng ta có thể chứng minh cho kích thước tự động như vậy?