Biorąc pod uwagę dwa ciągi xiy, chcę zbudować DFA o minimalnym rozmiarze, który akceptuje x i odrzuca y. Jednym ze sposobów na to jest wyszukiwanie siłowe. Wymieniasz DFA zaczynając od najmniejszego. Próbujesz każdego DFA, aż znajdziesz taki, który akceptuje x i odrzuca y.
Chcę wiedzieć, czy istnieje inny znany sposób na znalezienie lub zbudowanie DFA o minimalnym rozmiarze, który akceptuje x i odrzuca y. Innymi słowy, czy możemy pokonać brutalne poszukiwanie siły?
Więcej szczegółów:
(1) Naprawdę chcę, aby algorytm znalazł minimalną wielkość DFA, a nie prawie minimalną wielkość DFA.
(2) Nie chcę tylko wiedzieć, jak duży lub mały jest minimalny DFA.
(3) Tutaj skupiam się tylko na przypadku, gdy masz dwa ciągi x i y.
Edytuj :
Dodatkowe informacje dla zainteresowanego czytelnika:
Załóżmy, i y są binarne łańcuchy o długości co najwyżej n . Wiadomo, że wynik jest DFA przyjmuje X i odrzuca Y z co najwyżej √ stanów. Zauważ, że istnieje okołon √ DFA z alfabetem binarnym i co najwyżej√ stanów. Dlatego podejście z użyciem brutalnej siły nie wymagałoby od nas liczenia więcej niżn √ DFA. Wynika z tego, że podejście brutalnej siły nie mogło zająć więcej niżn √ raz.
Pomocne dla mnie slajdy: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf