2つの単語に言語のインターリーブがあるかどうかを確認する複雑さ


9

あるアルファベットAの固定言語について、L -INTERLEAVINGと呼ぶ次の問題を考えてみましょう。LL

  • 入力:二つの単語あなたv
  • 出力:そこに存在するかどうかをインターリーブVであるLがあなたvL

ここで、インターリーブ二つの単語のは、およびVは、単語であるWの文字取ることによって直感的に得ることができ、U及びVをその相対的な順序を維持したまま。形式的には、wuvのインターリーブであり、1つはuに等しく、もう1つはvに等しい2つの互いに素なサブシーケンスに分割できます。たとえば、「bheleloll」は「hello」と「bell」のインターリーブです。あなたvwあなたvwあなたvあなたv

言語Lに応じて、 -INTERLEAVING問題の複雑さはどのくらいですか?LL特に:

  • が規則的である場合、クラスNLにあることを示す2つの文字列の動的アルゴリズムで問題を解決できます。一部の通常の言語ではNLハードですか?ただし、一部の通常の言語では、問題は明らかにL(確定的ログスペース)にあります。問題がLにある言語の特徴はありますか?L
  • が正則でない場合でも、Lが多項式のオンラインの確定的空間複雑性を持っている場合、問題はNLのままです(この概念についてはここを参照、または私の以前の質問を参照)。ただし、これは、たとえばすべての文脈自由言語を網羅しているわけではありません。それでも、他のいくつか(たとえば、回文)はNLであると示すこともできます(たとえば、動的アルゴリズムを最初と最後から同時に実行することによって)。Lインターリーブの問題がNP困難である文脈自由言語はありますか?LLL

回答:


6

Wordのと二つの整数のためのI J1 I J 我々はによって表すワットI J サブワードワットワットI + 1 ... W Jワット。さらに、私たちは聞かせてwは0 0 空の単語を表します。w=w1wj1jwjww+1wjww00

  • ましょうV = V 1 ... V nは、検討中の二つの単語です。あなた=あなた1あなたメートルv=v1vn
  • 文脈自由言語は、チョムスキー標準形の文脈自由文法によって指定されていると仮定します。L

状態が次のように指定される動的プログラムを作成します。[i,j,r,s,A]

  • 二つの整数1 I J MまたはI = J = 0i,j1ijmi=j=0
  • 二つの整数は、1 R S N又はR = S = 0rs1rsr=s=0
  • 文脈自由文法における非終端記号

すべての状態について、文脈自由文法に非終端で始まり、2つの単語u i j w r s )のインターリーブで終わる派生があるかどうかを判断します。この決定は、状態が正しい順序(長いサブワードの前に短いサブワード)で処理される場合、簡単に行うことができます。あなたjwrs

全体として、これにより、コンテキストフリー言語Lインターリーブ問題の多項式時間アルゴリズムが生成されます。LL


ありがとう!実際、このen.wikipedia.org/wiki/CYK_algorithmのバリアントが、問題が文脈自由言語のPにあることを示すために機能することには気づきませんでした。とは言っても、このアルゴリズムを使用してNLに問題があることを示す方法はわかりません。推測の対数(木の高さ)を作成する必要があるようです。各推測は対数(つまり、ストリング)。これについて何かアイデアはありますか?
a3nm 2017

2
@ a3nm空の単語がCFLに属しているかどうかは、すでにPハードです。
シルヴァン2017

@シルヴァン:OK、それはPハードですが、CFLの関数として。:)私の問題では言語(またはそのためのCFL)が固定されており、入力は2つの文字列のみであるため、この議論は当てはまらないと思います。
a3nm 2017

2
@ a3nm申し訳ありませんが、言語が修正されたという事実を見逃しました。その場合、自然な候補はLogCFLの硬度です。
シルヴァン2017

@シルヴァン:そうです、ありがとう!確かに、固定CFL言語(つまり、Greibachの最も難しい言語)でも、問題という言葉はLogCFLハードであると思います。特に、私の問題がLogCFLハードであるCFL言語があります(2番目の文字列が空のインスタンスをとります) )。逆に、GamowのアルゴリズムがLogCFL(?)であると想像します。それでも、これにより、問題がこれよりも簡単になる言語と、それらをどのように分類できるかについて
疑問に思い
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.