してみましょう非環式NFAなります。
は非環状なので、は有限です。
を計算できますか 多項式時間で?
そうでない場合、近似できますか?
ワード数はの受け入れパスの数と同じではないことに注意してください。これは簡単に計算できます。
機能しない明らかなアプローチの1つについて説明します。NFAをDFA(これも非循環になります)に変換し、DFA内の受け入れパスの数を数えます。これは多項式時間アルゴリズムにはなりません。変換によってDFAのサイズが指数関数的に増大する可能性があるためです。
してみましょう非環式NFAなります。
は非環状なので、は有限です。
を計算できますか 多項式時間で?
そうでない場合、近似できますか?
ワード数はの受け入れパスの数と同じではないことに注意してください。これは簡単に計算できます。
機能しない明らかなアプローチの1つについて説明します。NFAをDFA(これも非循環になります)に変換し、DFA内の受け入れパスの数を数えます。これは多項式時間アルゴリズムにはなりません。変換によってDFAのサイズが指数関数的に増大する可能性があるためです。
回答:
多項式時間の実行時間を使用して、乗数因子の近似を与えると私が期待する1つのアプローチを次に示します。
ましょのサブセットである正規言語である{ 0 、1 } nは、例えば、L = L (M )∩ { 0 、1 } N。Lのおおよそのサイズを計算しようとします。
高レベルでは、近似へのアプローチ次のようになります:
0 < p < 1である分数選択します。
正規言語の選択、大まかに言えば、ようにRがランダムの部分集合であり、{ 0 、1 } Nサイズの約P 2 N(すなわち、| R | ≈ P 2 nで)。
かどうかを確認してください非空です。このチェックは多項式時間で実行できることに注意してください。
さまざまな値に対して、手順1〜3を繰り返し実行します。これにより、概算を可能にするいくつかの情報が得られます。L | 。
具体的には、もし、それから私たちは期待します
したがって、を選択し、ステップ1〜3を何度も繰り返した場合、約37%の時間で空の交差が発生することが予想されます。空の交差がかなり頻繁に表示される場合は、pを増やして再試行してください。空の交差がそれほど頻繁に表示されない場合は、pを減らして再試行してください。
このようにして、バイナリ検索のようなものを使用して、近似することができるはずです乗法近似係数内に。
それでも、を選択する方法をいくつか選択する必要があります。これにより、Rは規則的なものになりますが、ランダムなサブセットのように動作します。そこに多くの可能性があるが、あるかもしれない良いの方法は、ランダム2汎用ハッシュ選択するかもしれない時間:{ 0 、1 } M → { 0 、1 、2 、... 、K - 1 }、ピックYを∈ { 0 、1 、... 、K - 1 }をランダム、およびlet R = { Xを∈。選択 kは= ⌈ 1 / P ⌉はあなたにランダムな集合与え R約正しいサイズのを、そしてので、 hは 2-普遍的であり、上記の数学のすべてが適切に動作するはずです。
これにより、NFA内のすべての文字列が同じ長さ(である場合の問題が解決されます。長さが異なる場合は、可能な長さごとに個別に処理できます。以来、Mは非環式である、のいずれかの文字列の最大長さL (Mは)せいぜいの状態数であるM、これはあまりにも多くのランタイムが増加しません。
(この構造は、明確なSATに関するVazirani-Vaziraniの定理を思い出させるかもしれません。)
非循環NFAによって与えられた言語の単語数を多項式時間でカウントできると仮定します。この場合、2つの非循環NFA およびA 2を考慮して、A 1(またはA 2)の言語の基数n 1(またはn 2)を多項式時間で計算できます。直接積(非循環性を維持)により、これら2つの言語の共通部分の基数n 3を多項式時間で計算することもできます。2つのオートマトンは、n 1 = n 2 = n 3の場合に同じ言語を受け入れます。したがって、NP完全問題であることが知られている多項式の非循環オートマトンによって与えられる2つの有限言語の同等性をテストできます。したがって、でない限り、多項式時間で問題を解くことはできません。