Digamos que uno tiene un idioma , pero uno no sabe qué cadenas son realmente parte del idioma. Todo lo que uno tiene es una vista finita del lenguaje: un conjunto finito de cadenas que se sabe que están en el idioma, y un conjunto finito de cadenas que se sabe que no están en el idioma.
Por ejemplo, supongamos que tengo y . Puede que tenga el idioma , ya que y son consistentes con , o podría tener un lenguaje completamente diferente.
Mi pregunta es: ¿hay alguna forma conocida de crear un DFA (autómata finito determinista) que acepte las cadenas en y rechace las cadenas en , con un número mínimo o casi mínimo de estados? ¿Cuál es la complejidad de este problema? ¿Qué tan bueno es aproximar (suponiendo que tenga una complejidad descriptiva bastante baja, y y son grandes)?
Pregunta original en math.stackexchange.com. Decidí volver a publicar aquí después de no obtener respuestas a la pregunta original, y no tener idea de dónde buscarlas. Si alguien pudiera señalarme hacia una investigación en esta área, sería muy apreciado.