Giả sử ta có một ngôn ngữ , nhưng người ta không biết khái niệm về chuỗi thực sự là một phần của ngôn ngữ. Tất cả người ta là một cái nhìn hữu hạn của ngôn ngữ: một tập hữu hạn các chuỗi Một ⊆ L được biết đến là trong ngôn ngữ, và một tập hữu hạn các chuỗi B ⊆ ( Σ * ∖ L ) mà được biết là không có trong ngôn ngữ.
Ví dụ: giả sử tôi có và B = { b , a a b , a a a b a } . Tôi có thể có ngôn ngữ L = { a 2 i + 1 b j | i , j ∈ N } , vì Avà phù hợp với L , hoặc tôi có thể có một ngôn ngữ hoàn toàn khác.
Câu hỏi của tôi là: có cách nào để tạo DFA (automata hữu hạn xác định) chấp nhận các chuỗi trong và từ chối các chuỗi trong B , với số lượng trạng thái tối thiểu hoặc gần như tối thiểu? Sự phức tạp của vấn đề này là gì? Làm thế nào là tốt khi xấp xỉ L (giả sử L có độ phức tạp mô tả khá thấp, và A và B là lớn)?
Câu hỏi gốc trên math.stackexchange.com. Tôi quyết định đăng lại ở đây sau khi không nhận được câu trả lời cho câu hỏi ban đầu và không biết tìm chúng ở đâu. Nếu ai đó có thể chỉ cho tôi nghiên cứu trong lĩnh vực này, nó sẽ được đánh giá rất cao.