DFA nhỏ nhất chấp nhận các chuỗi đã cho và từ chối các chuỗi đã cho khác


11

Cho hai tập hợp của các chuỗi trên bảng chữ cái , chúng ta có thể tính toán máy tự động trạng thái hữu hạn xác định nhỏ nhất (DFA) M sao cho A \ subseteq L (M)L (M) \ subseteq \ Sigma ^ * \ setminus B ?A,BM Một L ( M ) L ( M ) Σ *BΣMAL(M)L(M)ΣB

Nói cách khác, A đại diện cho một tập hợp các ví dụ tích cực. Mỗi chuỗi trong A cần được DFA chấp nhận. B đại diện cho một tập hợp các ví dụ tiêu cực. Không có chuỗi nào trong B nên được DFA chấp nhận.

Có cách nào để giải quyết vấn đề này, có lẽ là sử dụng các kỹ thuật giảm thiểu DFA ? Tôi có thể tưởng tượng việc tạo ra một máy tự động giống như DFA có ba loại trạng thái: chấp nhận trạng thái, trạng thái từ chối và trạng thái "không quan tâm" (bất kỳ đầu vào nào kết thúc ở trạng thái "không quan tâm" đều có thể được chấp nhận hoặc bị từ chối). Nhưng sau đó chúng ta có thể tìm cách giảm thiểu điều này thành một DFA thông thường không?

Bạn có thể coi đây là vấn đề của việc học DFA, đưa ra các ví dụ tích cực và tiêu cực.

Điều này được lấy cảm hứng từ Regex golf NP-Complete? , đặt câu hỏi tương tự cho biểu thức chính quy thay vì DFA.


1
Tôi nghĩ bạn sẽ cần đưa ra một số hạn chế đối với loại ngôn ngữ AB có thể là gì và chúng có thể được chỉ định như thế nào.
rebierpost

Có rất nhiều tài liệu về các chức năng / ngôn ngữ học tập, ví dụ như nộp theo giới hạn học (cũng là học theo kiểu Vàng). Chúng không phù hợp với vấn đề của bạn một cách chính xác nhưng có thể thú vị.
Raphael

Câu trả lời:


7

Một DFA như bạn mô tả được gọi là DFA tách biệt . Có một số tài liệu về vấn đề này khi và là các ngôn ngữ thông thường, chẳng hạn như Học tối thiểu tách DFA để xác minh thành phần, bởi Yu-Fang Chen, Azadeh Farzan, Edmund M. Clarke, Yih-Kuen Tsay, Bow-Yaw WangBAB

Lưu ý rằng như @reinierpost tuyên bố, không có bất kỳ hạn chế nào đối với A và B, vấn đề có thể trở nên không thể giải quyết được.


Nếu A và B đều là ngôn ngữ thông thường và nếu một ngôn ngữ được phép tùy ý chấp nhận hoặc từ chối bất kỳ đầu vào nào mà A và B sẽ mang lại kết quả như nhau, tôi không thấy vấn đề có thể không thể giải quyết được. Đối với một DFA có kích thước cụ thể, có thể xây dựng một bộ đầu vào toàn diện mà nó nên chấp nhận và các đầu vào mà nó nên từ chối, sao cho bất kỳ DFA nào có cùng số trạng thái hoặc ít hơn xử lý chính xác tất cả các trường hợp thử nghiệm có thể được đảm bảo để hành xử giống hệt nhau trong mọi trường hợp. Vì một cỗ máy chấp nhận mọi thứ, A chấp nhận và từ chối mọi thứ khác sẽ ...
supercat

... Đáp ứng các ràng buộc, người ta có thể đặt giới hạn trên cho số lượng trạng thái mà máy sẽ phải chứa; vì có một số lượng hữu hạn các máy có thể có kích thước bất kỳ và một số trường hợp kiểm tra hữu hạn được đánh giá, người ta có thể tạo ra tất cả các máy có thể nhỏ hơn A và xem liệu chúng có đáp ứng các điều kiện cần thiết không. Không chính xác là một cách nhanh chóng để giải quyết vấn đề, nhưng chắc chắn có thể quyết định nếu A và B thường xuyên. Nếu họ không thường xuyên, một DFA sẽ không thể giải quyết A hoặc B. "khác biệt" đôi khi có thể là thường xuyên ngay cả khi A và B là không, nhưng mà ...
supercat

... sẽ là một trường hợp "bất thường".
supercat

8

Có rất nhiều tài liệu về việc học các DFA được đưa ra các mẫu tích cực và tiêu cực. Nếu và là hữu hạn, tôi không thấy vấn đề sẽ trở nên khó giải quyết như thế nào. Nếu thì rõ ràng DFA chỉ chấp nhận các chuỗi trong thỏa mãn yêu cầu của bạn và người ta có thể chỉ cần liệt kê tất cả các DFA nhỏ hơn. Nếu thì rõ ràng không tồn tại DFA như vậy.B Một B = Một Một B ABAB=AAB

Tìm DFA tối thiểu phù hợp với một chuỗi các chuỗi đã cho là hoàn thành NP. Kết quả này xuất hiện dưới dạng Định lý 1 trong bài viết của Angluin Về sự phức tạp của suy luận tối thiểu của các bộ thông thường . Vì vậy, rõ ràng vấn đề của bạn cũng là NP-đầy đủ.

Để có nhiều liên kết tốt và thảo luận về việc học ngôn ngữ thông thường, hãy xem trang blog của CSTheory về việc học ngôn ngữ thông thường .


Nếu các yêu cầu được thay đổi để một máy tự động có thể tự ý chấp nhận hoặc từ chối bất cứ thứ gì có trong cả A và B, thì vấn đề sẽ luôn có thể giải quyết được đối với bất kỳ A và B nào; nếu việc tìm kiếm máy tự động tối ưu sẽ là NP hoàn thành mà không làm điều đó, thì nó sẽ hoàn thành NP ngay cả với yêu cầu đó.
supercat
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.