¿Encuentra el DFA más pequeño que separa dos palabras sin usar la búsqueda de fuerza bruta?

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...