言語の仕様としてDFAを使用している場合でも、正規表現のサイズを最小化することはPSPACE完全であることが知られています。
言語が有限の場合、結果はどうなりますか?
この問題は2つのモデルで検討できます。
- 入力は言語のすべての文字列であり、すべての文字列の長さの合計によって入力サイズを測定します。
- 入力はDFAであり、DFAの状態の数によって入力サイズを測定します。
Kleene starは有限の場合には役に立たないため、、式では(連結)が使用されます。もちろん、正規表現の長さは任意です。代わりに、各操作に重みを付け(括弧の追加を含む)、正規表現の重みを最小化するように要求できます。
編集: adrianNが指摘したように、それは文法ベースのコードに関連しています。有限集合を記述するために最小長の文脈自由文法を生成することはNP完全です。最小サイズの文脈自由文法が最小サイズの正規表現について多くを暗示している理由は明らかではありません。巧妙な書き換えルールがこれら2つを関連付け、最初のモデルでは問題がNPにあることを証明できます。