Biorąc pod uwagę dwa zbiory ciągów znaków nad alfabetem Σ , czy możemy obliczyć najmniejszy deterministyczny automat skończony (DFA) M taki, że A ⊆ L ( M ) i L ( M ) ⊆ Σ ∗ ∖ B ?
Innymi słowy, reprezentuje zestaw pozytywnych przykładów. Każdy ciąg A musi zostać zaakceptowany przez DFA. B reprezentuje zestaw negatywnych przykładów. DFA nie powinien akceptować żadnego ciągu w B.
Czy istnieje sposób na rozwiązanie tego problemu, być może przy użyciu technik minimalizacji DFA ? Mogę sobie wyobrazić utworzenie automatu podobnego do DFA, który ma trzy rodzaje stanów: akceptuj stany, odrzucaj stany i stany „nie obchodzi” (każde wejście, które kończy się stanem „nie przejmuj się”, może być albo zaakceptowane lub odrzucone). Ale czy możemy znaleźć sposób na zminimalizowanie tego do zwykłego DFA?
Można to potraktować jako problem uczenia się DFA, biorąc pod uwagę pozytywne i negatywne przykłady.
Jest to inspirowane Czy regex golf NP-Complete? , która zadaje podobne pytania o wyrażenia regularne zamiast DFA.