Powiedzmy, że mamy język , ale nie wiemy, jakie ciągi znaków są w rzeczywistości częścią tego języka. Wszystko, co ma, to skończony widok języka: skończony zestaw ciągów A \ subseteq L , o których wiadomo, że są w języku, oraz skończony zestaw ciągów B \ subseteq (\ Sigma ^ * \ setminus L), które są znane nie być w języku.
Na przykład, powiedzmy, że mam i . Mogę mieć język , ponieważ i są zgodne z , lub mogę mieć całkowicie inny język.B = { b , b , b } L = { 2 i + 1 b j | i , j ∈ N } A B L
Moje pytanie brzmi: czy istnieje znany sposób na utworzenie DFA (deterministycznych automatów skończonych), które akceptują łańcuchy w i odrzucają łańcuchy w , z minimalną lub prawie minimalną liczbą stanów? Jaka jest złożoność tego problemu? Jak dobrze jest w przybliżeniu (zakładając, że ma dość niską złożoność opisową, a i są duże)?B L L A B
Oryginalne pytanie na math.stackexchange.com. Postanowiłem ponownie opublikować tutaj po tym, jak nie otrzymałem odpowiedzi na pierwotne pytanie i nie mając pojęcia, gdzie ich szukać. Byłbym bardzo wdzięczny, gdyby ktoś skierował mnie w stronę badań w tej dziedzinie.