Hace veinte años, creé un paquete de expresiones regulares que incluía conversiones de expresiones regulares a una máquina de estados finitos (DFA) y soportaba una gran cantidad de operaciones de expresiones regulares cerradas (estrella de Kleene, concatenación, operaciones inversas, de configuración, etc.). No estaba seguro sobre el peor desempeño de mi paquete.
Un DFA tiene el mismo poder expresivo que un NDFA, porque un NDFA de estado n puede convertirse trivialmente en un DFA que tiene 2 ^ n estados. Sin embargo, ¿existen garantías de límite superior inferior para dicha conversión que no requieran una explosión de estado exponencial?
No pude encontrar ejemplos de expresiones regulares de mal comportamiento o NDFA, pero no pasé mucho tiempo pensando en ello. Estoy adivinando una expresión regular como (((((e | A | B | C) * (e | D | E | F)) * (e | G | H | I)) * (e | J | K | L | M)) * que mezcla muchas alternancias y las estrellas de Kleene tendrían un NDFA de tamaño lineal pero un DFA expansivo.