Wiadomo, że minimalizowanie rozmiaru wyrażenia regularnego jest pełne dla PSPACE, nawet jeśli mamy specyfikację języka jako DFA .
Jakie są wyniki, jeśli język jest skończony?
Problem ten można rozważyć w dwóch modelach:
- Dane wejściowe to wszystkie ciągi w języku, a rozmiar wejściowy mierzymy sumą długości wszystkich ciągów.
- Dane wejściowe to DFA i mierzymy rozmiar danych wejściowych na podstawie liczby stanów DFA.
Gwiazda Kleene nie jest przydatna w przypadku skończonym, więc only , | i ⋅ (konkatenacja) są używane w wyrażeniu. Oczywiście długość wyrażenia regularnego wydaje się dowolna. Zamiast tego można przypisać wagę każdej operacji (w tym dodanie nawiasu) i poprosić o zminimalizowanie wagi wyrażenia regularnego.
Edycja: Jak zauważył adrianN, jest to związane z kodami gramatycznymi. Jest to NP-zupełne, aby utworzyć gramatykę bezkontekstową o minimalnej długości do opisania zbioru skończonego. Nie jest jasne, dlaczego gramatyka bezkontekstowa minimalnego rozmiaru może wiele sugerować o wyrażeniu regularnym minimalnego rozmiaru. Być może sprytna reguła przepisywania może powiązać te dwa i udowodnić, że w pierwszym modelu problemem jest NP.