Dato due stringhe xey, voglio creare un DFA di dimensioni minime che accetta xe rifiuta y. Un modo per farlo è la ricerca della forza bruta. Enumera DFA iniziando dal più piccolo. Prova ogni DFA fino a quando non ne trovi uno che accetta x e rifiuta y.
Voglio sapere se esiste un altro modo noto per trovare o creare un DFA di dimensioni minime che accetta xe rifiuta y. In altre parole, possiamo battere la ricerca della forza bruta?
Più dettaglio:
(1) Voglio davvero che un algoritmo trovi un DFA di dimensioni minime, non un DFA di dimensioni minime.
(2) Non voglio solo sapere quanto sia grande o piccolo il DFA minimo.
(3) Proprio qui, sono concentrato solo sul caso in cui tu avessi due stringhe xey.
Modifica :
Ulteriori informazioni per il lettore interessato:
Supponiamo che e siano stringhe binarie di lunghezza al massimo . È noto che esiste un DFA che accetta e rifiuta con al massimo stati. Si noti che esistono circa DFA con un alfabeto binario e al massimo stati. Pertanto, l'approccio della forza bruta non ci richiederebbe di enumerare più di DFA. Ne consegue che l'approccio della forza bruta non potrebbe richiedere molto più di volta.y n x y √ n √ √ n √ n √
Diapositive che ho trovato utili: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf