NFA普遍性的条件


28

考虑一个不确定的有限自动机和一个函数。另外,我们定义。A=(Q,Σ,δ,q0,F)f(n)Σk=ikΣi

现在让我们分析以下语句:

如果,则。Σf(|Q|)L(A)L(A)=Σ

很容易证明,对于它是正确的,因此,如果自动机产生的每个单词的长度最大为,那么它将产生。f(n)=2n+12|Q|+1Σ

但是,如果是一个多项式,它仍然成立吗?f

如果不是,那么给定多项式的NFA的构造应该是什么样子?st?p Σ p | Q |大号Σ *ApΣp(|Q|)L(A)Σ


我想证明| \ Sigma | \ geq 2的情况是f(n)= 2 ^ {n-o(n)}。如果没有,我将尽其所能提供最佳结构。f(n)=2no(n)|Σ|2
张显之(张显之)2010年

Answers:


22

为了保持该语句,即使使用一进制字母,f也必须按指数增长。

[编辑:版本2中的分析略有改进。]

这是一个证明草图。假定该语句成立,令f为一个函数,以使每个具有最多n个状态的NFA 都接受长度最大为fn)的所有字符串,并接受所有字符串。我们将证明,对于每一个ç > 0且足够大ñ,我们有˚Fñ)> 2 Ç ⋅√ ñ

素数定理意味着对于每ç <LG e和对于足够大的ķ,至少有Ç ⋅2 ķ / ķ范围素数[2 ķ,2 ķ 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。在每个周期中,除一个状态外,所有状态均为接受状态。初始状态有N k个输出边缘,每个边缘都进入每个周期中被拒绝状态之后的状态。最后,初始状态也被接受。

P k为乘积p 1p N k。很容易看出,M k接受长度小于P k的所有字符串,但拒绝长度为P k的字符串。因此,˚F小号ķ)≥ P ķ

需要注意的是小号ķ ≤1 + Ñ ķ ⋅2 ķ 1 = O(2 2 ķ)和P ķ ≥(2 ķÑ ķ ≥2 2 ķ。其余的是标准的。


您对的最佳值有何猜想?假设或和之间的某个值?˚F Ñ = 2 Ñ + 1 2 Ñ 2 Ç &CenterDot;&ff(n)=2n+12n2cn
张显之

@贤千:我一直在想同样的事情,我没有任何合理的猜想。首先,看f(n)≤2^ n(我们不需要+1)是微不足道的,虽然我希望在此上限上有一些线性改进,但我不知道它是否严格到一个恒定因子。(更多)
伊藤刚

(续)其次,关于下界,如果我没记错的话,对上述分析进行一点细化,就可以得出以下下界:对于每个常数0 <c <和足够大的n,我们有。进一步的改进可能是可能的,但是如果我们使用相同的NTM结构,则对于p> 1/2,我们将无法获得下界,例如2 ^ {n ^ p}。我认为这是一个有趣的问题,即使用质数分布(例如PNT)对于构建不良示例是否必不可少。(更多) ˚FÑ>È Ç 1/2f(n)>ecnlnn
伊藤刚

(续)但是,如果您有兴趣并希望对其进行进一步的研究,那么最好先寻找文献是比较明智​​的。如果这个答案或更好的东西已经出现在文献中,我不会感到惊讶。
伊藤刚(Tsuyoshi Ito)2010年

5
@Tsuyoshi:Chrobak证明,对于的m状态NFA可以模拟一元语言的n状态DFA 。因此,如果语言是一元语言,则您的结构会很紧凑。参见[Chr86]:cs.ust.hk/mjg_lib/Library/Chro86.pdfm=O(enlogn)
张显之张显之

19

在06年10月12日编辑:

好的,这几乎是我可以获得的最佳结构,看看是否有人提出了更好的想法。

定理。对于每个在带有字母上有一个状态NFA,使得不在中的最短字符串的长度为。5 Ñ + 12 中号&Sigma; | Σ | = 5 大号中号2 ñ - 1 Ñ + 1 + 1n(5n+12)MΣ|Σ|=5L(M)(2n1)(n+1)+1

这将给我们。f(n)=Ω(2n/5)

构造与Shallit的构造几乎相同,除了我们直接构造NFA而不是首先使用正则表达式表示语言。让

Σ={[00],[01],[10],[11],}

对于每个,我们将构建NFA识别语言,其中是以下序列(以为例):Σ * - { 小号ñ } š Ñ Ñ = 3nΣ{sn}snn=3

s3=[00][00][01][00][01][10][11][11][01]

我们的想法是,我们可以构建一个由五个部分组成的NFA。

  • 一个启动程序,可确保字符串以;[00][00][01]
  • 一个终止符,可确保字符串以;[11][11][01]
  • 一个计数器,将两个之间的符号数量保持为 ;ñn
  • 一个附加检查器,可确保仅出现形式的符号;最后,xx+1
  • 一个一致的检查,这保证了只与形式符号可以同时出现。xyyz

请注意,我们确实希望接受而不是,因此,一旦发现输入序列违反上述行为之一,我们将立即接受该序列。否则步骤,NFA将处于唯一可能的拒绝状态。并且如果序列长于,NFA也接受。因此,任何满足以上五个条件的NFA都只会拒绝。{ s n } | s n | | s n | 小号ñΣ{sn}{sn}|sn||sn|sn

直接检查下图而不是进行严格的证明可能很容易:

NFA拒绝s_n

我们从左上方开始。第一部分是启动器,然后是计数器,然后是一致性检查器,终结器,最后是加一检查器。所有没有终端节点的圆弧都指向右下角状态,这是一个永远的接受体。由于缺少空间,某些边缘未标记,但可以轻松恢复。虚线表示具有边缘的个状态的序列。n 2n1n2

我们可以(痛苦地)验证NFA 仅拒绝,因为它遵循上述所有五个规则。因此,构造了一个具有的状态NFA ,满足了定理的要求。5 n + 12 | Σ | = 5sn(5n+12)|Σ|=5

如果结构中有任何不清楚/问题,请发表评论,我将尝试解释/解决。


Jeffrey O. Shallit等人已经研究了这个问题,实际上对于仍然有的最优值。(关于一元语言,请参阅Tsuyoshi答案中的注释)| Σ | > 1f(n)|Σ|>1

他关于普遍性的演讲的第46-51页中,他提供了一种结构,使得:

定理。对于对于足够大的,在二进制字母上存在一个状态NFA,使得对于不在中的最短字符串的长度为。。Ñ Ñ 中号大号中号Ω 2 ç Ñc ^ = 1 / 75nNNnML(M)Ω(2cn)c=1/75

因此,的最佳值介于和。我不确定近年来Shallit的结果是否有所改善。2 n / 75 2 nf(n)2n/752n


我正在玩Shallit的作品,希望能更好地限制。通过指定一些长度序列,它们的构造似乎很有趣,这些序列不能用长度的“短”正则表达式以及长度为每个正则表达式表示可以由大小为的NFA来描述。目前,我可以设置,但是更明智的想法是将接近。Ω2 Ñç Ñ + Ö Ñ ˚F Ñ ˚F Ñ + 1 c ^ 22 2 Ñ2nΩ^(2n)cn+o(n)f(n)f(n)+1c222n
张显之张张之之

2
我认为这不会为研究此问题提供更多的见解,但Shallit演讲的恰当学术参考是:K. Ellul,B. Krawetz,J. Shallit,M. Wang:正则表达式:新结果和未解决的问题。Journal of Automata,Languages and Combinatorics杂志10(4):407-437(2005)
Hermann Gruber,2010年

@Hermann:谢谢您的参考,目前我无法访问该论文,但我会找到一种方法。
张显之张张之之2010年

我认为通过使用计数器,我们可以用2状态微型计算机代替启动器终止器。因此,这进一步将NFA的大小减小到。3n+O(1)
张显之张张之之2010年

1
上面提到的JALC论文的作者预印版本在这里:cs.uwaterloo.ca/~shallit/Papers/re3.pdf装订的范围和证据与印刷版相同。
Hermann Gruber 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.