复制语言的状态复杂度是多少?


10

设数字。考虑以下语言L n = {nLn={ww|w{0,1}n}

换句话说,是长度为2 n的复制字符串的集合。Ln2n

考虑下面的状态复杂度函数,使得s n 是最小的下推自动机中识别L n的状态数ss(n)Ln

问题:您可以正式证明任何有意义的下界吗?s(n)

我的猜想: s(n)=2Θ(n)

已知UPPERBOUND: s(n)poly(n)2n2

规则:

(1)堆栈字母必须为二进制。

(2)输入带是单向的,不能停在任何输入字符上。


我目前没有任何有意义的下限。在我看来,您也许能够证明可识别该语言的CFG所需的变量数量的下限。虽然,我什至不能完全确定这一点。
Michael Wehar 2015年

1
我的直觉是,当您将字符从输入磁带推入堆栈时,就会遇到问题。如果以后要检索这些位,则必须丢弃所有在其上压入的位。换句话说,堆栈似乎无济于事,因为您压入堆栈的次数越多,以后被迫忘记的次数就越多。
Michael Wehar 2015年

1
备注:对于DFA(无堆栈自动机),可以证明指数状态复杂度的下限。
Michael Wehar 2015年

1
您能为这个更简单的问题给出一个合理的下界吗?{0k1l0k1l}
安德拉斯·萨拉蒙

1
一个更精确的上限似乎是状态。(n+3)2n/2
安德拉斯·萨拉蒙

Answers:


10

Yuval描述的技术:

是否存在描述此有限语言的多项式大小CFG?

(您可能还会阅读: 特定有限语言的CFG大小的下限

可以很容易地显示CFG的指数下限。令以Chomsky范式表示L n的语法。对于每一个字瓦特{ 0 1 } Ñ存在至少一个非末端瓦特接受子字小号瓦特瓦特瓦特之间具有长度ñ / 2Ñ。令p w w w中的位置GLnw{0,1}nA(w)s(w)wwn/2np(w)ww该子字出现的位置。所有单词w w '至少共有这样A w = A w 'p w = p w '。因此,最多可以有2 个n / 2个单词具有相同的A w p w 。因此,至少有2n/2w,wA(w)=A(w)p(w)=p(w)2n/2A(w)p(w)非末端。2Θ(n)

此外,PDA可被转换成一个在CFG CNF,多项式大小的所以这也给出了结合在状态复杂大号Ñ2Θ(n)Ln


太棒了,再次感谢!我现在看到了,会考虑确认。:)
Michael Wehar 2015年

2
[n,2n][n/2,n]

1
(A(w),p(w))A(w)wwp(w)

2
另请参阅我的论文中的定理7:cs.toronto.edu/~yuvalf/CFG-LB.pdf
Yuval Filmus

1
@YuvalFilmus还值得注意的是,安德拉斯花了一些时间试图使上下限匹配。我和我的朋友佩佩(Pepe)定义了一类通用的有限语言,并将该技术应用于它们。不过,我们从未写过任何东西。如果您有任何相关问题,我们将非常乐于合作。再次感谢。
Michael Wehar 2015年
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.