先日、このWebサイトhttp://regexcrossword.com/でだまされていましたが、それを解決する最善の方法は何かと疑問に思いました。
次の問題を多項式時間で解決できますか、それともNP困難ですか?
列にN個、行にM個の正規表現を含むNxMグリッドが与えられた場合、すべての正規表現が満たされるようなグリッドの解を見つけるか、解が存在しないと言います。
先日、このWebサイトhttp://regexcrossword.com/でだまされていましたが、それを解決する最善の方法は何かと疑問に思いました。
次の問題を多項式時間で解決できますか、それともNP困難ですか?
列にN個、行にM個の正規表現を含むNxMグリッドが与えられた場合、すべての正規表現が満たされるようなグリッドの解を見つけるか、解が存在しないと言います。
回答:
問題はNP困難です。
頂点のカバーを減らすことでこれを示します。
グラフ所与と閾値、サブセットが存在するカーディナリティのは、最大での各エッジように、、少なくとも一つのノードに入射する?のk V ' ⊆ V K E V '
これを列とを持つ正規表現クロスワードに変換します 次の行:| V |
最初の列を除くすべての列は、エッジに対応しています。正規表現を取得します。
すべての行は頂点に対応します。彼らはどちらかを書くことができる正規表現を取得します
最初の列と他のすべての列で、そのノードとゼロにエッジの入射に対応し、各列の
最後に、最初の列は頂点カバーのサイズをカウントします。最大で正規表現を取得します。
正規表現のクロスワードと頂点カバーのソリューション間の対応は明らかです。
例:
次のグラフのサイズ2の頂点カバーを見つけます。
すべての正規表現が等しい場合でも、質問はNP完全なままです。 http://arxiv.org/abs/1411.5437