正規表現のクロスワードはNP困難ですか?


13

先日、このWebサイトhttp://regexcrossword.com/でだまされていましたが、それを解決する最善の方法は何かと疑問に思いました。

次の問題を多項式時間で解決できますか、それともNP困難ですか?

列にN個、行にM個の正規表現を含むNxMグリッドが与えられた場合、すべての正規表現が満たされるようなグリッドの解を見つけるか、解が存在しないと言います。


まだサイトに見えたが、正規表現との質問には、PSPACEの完全、NPとしてとして少なくともハードであるクラスになりがちなかった
jmite

1
@jmite正規表現に適合する文字列を推測することは、正規表現のグローバルプロパティを導出する必要がないという点で「簡単」です。実際、問題はNPにあると思います(FrankWの回答の下のコメントを参照してください。)
ラファエル

回答:


11

問題はNP困難です。

頂点のカバーを減らすことでこれを示します。

グラフ所与と閾値、サブセットが存在するカーディナリティのは、最大での各エッジように、、少なくとも一つのノードに入射する?のk V 'V K E V 'G=VEkVVkEV

これを列とを持つ正規表現クロスワードに変換します 次の行:| V ||E|+1|V|

最初の列を除くすべての列は、エッジに対応しています。正規表現を取得します。010|1

すべての行は頂点に対応します。彼らはどちらかを書くことができる正規表現を取得します

  • 最初の列と他のすべての列で、そのノードとゼロにエッジの入射に対応し、各列の1

  • 0

最後に、最初の列は頂点カバーのサイズをカウントします。最大で正規表現を取得します。k

正規表現のクロスワードと頂点カバーのソリューション間の対応は明らかです。

例:

次のグラフのサイズ2の頂点カバーを見つけます。

https://i.imgur.com/TY6sjjV.png

VA=0|10110

VB=0|11101

VC=0|10011

VD=0|11000

Coあなたはnter=0|010|01010

E1=010|1

E2=010|1

E3=010|1

E4=010|1

VAVDCoあなたはnterE1E4

VAVBVCVB

Coあなたはnter0|010


2
a)正規表現の多項式サイズのNFAを計算し、b)解およびc)すべてのNFAの(線形サイズの)計算、およびd)計算が推測された単語に適合することを(多項式時間で)検証できるため、問題はNPにもあります。
ラファエル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.