Se sabe que minimizar el tamaño de una expresión regular es completo para PSPACE, incluso si tenemos un DFA como la especificación del lenguaje .
¿Cuáles son los resultados si el idioma es finito?
Uno puede considerar este problema en dos modelos:
- La entrada es todas las cadenas en el idioma, y medimos el tamaño de entrada por la suma de la longitud de todas las cadenas.
- La entrada es un DFA y medimos el tamaño de entrada por el número de estados del DFA.
La estrella de Kleene no es útil en el caso finito, así que solo , | y ⋅ (concatenación) se usan en la expresión. Por supuesto, la longitud de una expresión regular parece arbitraria. En cambio, uno puede dar peso a cada operación (incluye agregar paréntesis) y pedir minimizar el peso de la expresión regular.
Editar: como notó adrianN, está relacionado con códigos gramaticales. NP-complete produce la gramática libre de contexto de longitud mínima para describir un conjunto finito. No está claro por qué la gramática libre de contexto de tamaño mínimo puede implicar mucho sobre la expresión regular de tamaño mínimo. Tal vez una regla de reescritura inteligente pueda relacionar estos dos, y demostrar que en el primer modelo, el problema está en NP.