Dadas dos cadenas x e y, quiero construir un DFA de tamaño mínimo que acepte x y rechace y. Una forma de hacerlo es la búsqueda de fuerza bruta. Enumera los DFA que comienzan con los más pequeños. Intenta cada DFA hasta que encuentre uno que acepte x y rechace y.
Quiero saber si hay alguna otra forma conocida de encontrar o construir un DFA de tamaño mínimo que acepte x y rechace y. En otras palabras, ¿podemos superar la búsqueda de fuerza bruta?
Mas detalle:
(1) Realmente quiero un algoritmo para encontrar un DFA de tamaño mínimo, no un DFA de tamaño mínimo.
(2) No solo quiero saber qué tan grande o pequeño es el DFA mínimo.
(3) Aquí, solo estoy enfocado en el caso en el que tienes dos cadenas x e y.
Editar :
Información adicional para el lector interesado:
Supongamos que e son cadenas binarias de longitud como máximo . Es un resultado conocido que hay un DFA que acepta y rechaza con como máximo estados. Observe que hay aproximadamente DFA con un alfabeto binario y como máximo estados. Por lo tanto, el enfoque de la fuerza bruta no requeriría que enumeremos más de DFA. De ello se deduce que el enfoque de la fuerza bruta no podría tomar mucho más que tiempo.
Diapositivas que encontré útiles: https://cs.uwaterloo.ca/~shallit/Talks/sep2.pdf