非循環NFAで受け入れられた単語の数を数える


8

してみましょう非環式NFAなります。M

は非環状なので、は有限です。ML(M)

を計算できますか 多項式時間で?|L(M)|

そうでない場合、近似できますか?


ワード数はの受け入れパスの数と同じではないことに注意してください。これは簡単に計算できます。M


機能しない明らかなアプローチの1つについて説明します。NFAをDFA(これも非循環になります)に変換し、DFA内の受け入れパスの数を数えます。これは多項式時間アルゴリズムにはなりません。変換によってDFAのサイズが指数関数的に増大する可能性があるためです。


任意のオートマトンのキャリーオーバーの技法。例えば、cstheory.SEのオーバーオーバーを参照してください
ラファエル

1
@ラファエル-私はそこでのあなたの答えを理解できません。特に、あいまいなNFAでは機能しないようです。UFAの単語数を数えることは、質問で述べたように単純な、受け入れパスの数を数えることと同じです。
RB

回答:


2

多項式時間の実行時間を使用して、乗数因子の近似を与えると私が期待する1つのアプローチを次に示します。

ましょのサブセットである正規言語である{ 0 1 } nは、例えば、L = L M { 0 1 } NLのおおよそのサイズを計算しようとします。L{0,1}nL=L(M){0,1}nL

高レベルでは、近似へのアプローチ次のようになります:|L|

  1. 0 < p < 1である分数選択します。p0<p<1

  2. 正規言語の選択、大まかに言えば、ようにRがランダムの部分集合であり、{ 0 1 } Nサイズの約P 2 N(すなわち、| R |P 2 nで)。RR{0,1}np2n|R|p2n

  3. かどうかを確認してください非空です。このチェックは多項式時間で実行できることに注意してください。LR

さまざまな値に対して、手順1〜3を繰り返し実行します。これにより、概算を可能にするいくつかの情報が得られますL | p|L|

具体的には、もし、それから私たちは期待します|L|=m

Pr[LR=]=(1p)mepm.

したがって、を選択し、ステップ1〜3を何度も繰り返した場合、約37%の時間で空の交差が発生することが予想されます。空の交差がかなり頻繁に表示される場合は、pを増やして再試行してください。空の交差がそれほど頻繁に表示されない場合は、pを減らして再試行してください。p=1/mpp

このようにして、バイナリ検索のようなものを使用して、近似することができるはずです乗法近似係数内に。|L|

それでも、を選択する方法をいくつか選択する必要があります。これにより、Rは規則的なものになりますが、ランダムなサブセットのように動作します。そこに多くの可能性があるが、あるかもしれない良いの方法は、ランダム2汎用ハッシュ選択するかもしれない時間{ 0 1 } M{ 0 1 2 ... K - 1 }、ピックYを{ 0 1 ... K - 1 }をランダム、およびlet R = { XをRh:{0,1}m{0,1,2,,k1}y{0,1,,k1}。選択 kは= 1 / P ⌉はあなたにランダムな集合与え R約正しいサイズのを、そしてので、 hは 2-普遍的であり、上記の数学のすべてが適切に動作するはずです。R={x{0,1}n:h(x)=y}k=1/pRh

これにより、NFA内のすべての文字列が同じ長さ(である場合の問題が解決されます。長さが異なる場合は、可能な長さごとに個別に処理できます。以来、Mは非環式である、のいずれかの文字列の最大長さL Mはせいぜいの状態数であるM、これはあまりにも多くのランタイムが増加しません。nML(M)M

(この構造は、明確なSATに関するVazirani-Vaziraniの定理を思い出させるかもしれません。)


0

非循環NFAによって与えられた言語の単語数を多項式時間でカウントできると仮定します。この場合、2つの非循環NFA およびA 2を考慮して、A 1(またはA 2)の言語の基数n 1(またはn 2)を多項式時間で計算できます。直接積(非循環性を維持)により、これら2つの言語の共通部分の基数n 3を多項式時間で計算することもできます。2つのオートマトンは、n 1 = n 2 = n 3の場合に同じ言語を受け入れますA1A2n1n2A1A2n3n1=n2=n3。したがって、NP完全問題であることが知られている多項式の非循環オートマトンによって与えられる2つの有限言語の同等性をテストできます。したがって、でない限り、多項式時間で問題を解くことはできません。P=NP


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