回答:
ステートメントを保持するには、単項アルファベットであってもfが指数関数的に増加する必要があります。
[編集:リビジョン2では分析がわずかに改善されました。]
これが証明スケッチです。ステートメントが保持され、fを関数とし、長さが最大でf(n)のすべての文字列を受け入れるn個の状態を持つすべてのNFAがすべての文字列を受け入れるようにします。私たちはすべてのためにすることを証明しますC > 0と十分大きなnは、我々が持っているF(N)> 2 C ⋅√ nは。
素数定理はすべてのためにあることを意味C <LG e及び十分に大きいため、K、少なくともあるC ⋅2 K / K [2範囲の素数K 2、K +1 ]。c = 1 を取ります。このようなため、K、聞かせてN個のkが =⌈2 K / K ⌉とNFA定義MのKを次のように。ましょうP 1、...、P N kは、範囲内の異なる素数[2であるK、2 K +1]。NFA M kの状態はS k = 1 + p 1 +…+ p N k状態です。初期状態とは別に、状態はN kサイクルに分割され、i番目のサイクルの長さはp iです。各サイクルでは、1つの状態を除くすべての状態が受け入れられます。初期状態にはN k個の出力エッジがあり、各エッジは、各サイクルで拒否された状態の直後の状態になります。最後に、初期状態も受け入れられます。
レッツPのkは、製品のことP 1 ... PのNのK。M kがP kより短い長さのすべての文字列を受け入れるが、長さP kの文字列を拒否することは簡単にわかります。したがって、F(SのK)≥ PのK。
なお、SのK ≤1 + N K ⋅2 K +1 = O(2 2 K)とそのPのK ≥(2 K)NのK ≥2 2 K。残りは標準です。
わかりました、これは私が得ることができるほとんど最高の構造です、誰かがより良いアイデアを思い付くかどうか見てください。
定理。それぞれについてがある(5 N + 12 ) -状態NFA Mはアルファベット上Σと| Σ | = 5 (L (M )にない最短文字列の長さ(2 n − 1 )(n + 1 )+ 1)。
これにより、ます。
構造は、最初に正規表現で言語を表すのではなく、NFAを直接構築することを除いて、Shallitの構造とほぼ同じです。させて
。
各について、NFA認識言語Σ ∗ − { s n }を構築します。ここで、s nは次のシーケンスです(たとえばn = 3を使用します)。
。
アイデアは、5つの部分で構成されるNFAを構築できるということです。
我々受け入れたくないことを注意の代わりに{ S nは }私たちは入力シーケンスは、上記のいずれかの動作に背いていることを見つけると、そう、私たちはすぐに順序を受け入れます。それ以外の場合| s n | 手順では、NFAは唯一の拒否状態になります。そして、シーケンスが|よりも長い場合 s n | 、NFAも受け入れます。したがって、上記の5つの条件を満たすNFAは、s nのみを拒否します。
厳密な証拠ではなく、次の図を直接確認するのは簡単かもしれません。
左上の状態から始めます。最初の部分はスターター、カウンター、一貫性のあるチェッカー、ターミネーター、最後にアドオン1チェッカーです。終端ノードのないすべてのアークは、常に右のアクセプターである右下の状態を指します。一部のエッジにはスペースがないためラベルが付いていませんが、簡単に復元できます。破線は、シーケンスを表しと状態N - 2つのエッジを。
NFAは上記の5つのルールすべてに準拠しているため、NFAがのみを拒否することを(苦痛を伴いながら)確認できます。だから、(5 N + 12 )と-state NFA | Σ | = 5が構築され、定理の要件を満たします。
構造に不明瞭/問題がある場合は、コメントを残してください、私はそれを説明/修正しようとします。
この質問はによって研究されてきたジェフリーO. Shallit。ら、実際の最適値依然としてために開放されています| Σ | > 1。(単項言語については、剛の回答のコメントを参照してください)
普遍性に関する彼の講演の 46-51ページで、彼は次のような構成を提供しました:
定理。以下のためにいくつかのためにN十分な大きさがあり、N -状態NFA Mで最短の文字列でないようにバイナリアルファベットオーバーL (Mは)長さであるΩ (2 C 、N)のために、C = 1 / 75。
したがって、の最適値は2 n / 75から2 nの間です。Shallitの結果が近年改善されたかどうかはわかりません。