对于不是CFL 的


16

这是自动机课程的标准证明,其中和即不是上下文无关语言。L=ΣL=Σ|Σ|2|Σ|2S(L)={ww:wL}S(L)={ww:wL}

对于任何有限的,都是有限的(因此是CFL),这也是事实。我猜想对于不是CFL ,为无限且规则的是不足够的。编辑:非CFL呢?LLS(L)S(L)LLS(L)S(L)LL

是否有任何表征什么有不是一个CFL?LLS(L)S(L)


如果我理解正确,那么问题是在给定常规语言确定是否与上下文无关。LLS(L)S(L)
J.-E.

2
1.您能告诉我们更多有关您正在寻找的特征吗?您是否正在寻找一种算法,给定,该算法确定是否与上下文无关?您是否正在寻找上足以确保与上下文无关的条件?您希望采用哪种形式的表征?2.如果几天后没有收到任何答案,并且希望在CSTheory.SE上查看此答案,请随时对其进行标记以引起主持人的注意,并要求其进行迁移。LLS(L)S(L)LLS(L)S(L)
DW

@DW 1.都可以,但我希望有足够的条件。2.谢谢小费!
瑞安

1
@Ryan刚好有条件吗?那么,这里有几个:(A)L是定期和每瓦特大号瓦特= 瓦特- [R(b)中L为CF以及所有Ñ大号Σ Ñ或者为空或等于Σ Ñ。这些绝对不是必需的。如果您在这里没有找到答案,请务必将问题移至cstheory。我真的对必要和充分的条件感到好奇!wLw=wRnLΣnΣn
aelguindy '16

对于S L 而不是CF而言,无穷且规则的L确实不足。如果Σ = { a b c } L = a ∗,S L = a a 是正则的,因此为CF。LS(L)Σ={a,b,c},L=aS(L)=(aa)
2016年

Answers:


2

更多带有猜想的扩展注释,但这是一个条件,似乎可以解决问题,因为对于S L )而言,在常规L的情况下S L 是无上下文的。LS(L)

条件L的最小DFA A中,任何接受路径最多包含一个循环。AL

例外:如果两个循环的标签和第一个循环之前的前缀的标签都通勤,并且第二个循环之后的后缀为空,则允许两个循环。例如a a b a a 可以。aab(aa)

回想一下,如果两个单词uv是同一个单词t的幂,则它们会通勤。我们可以假定后缀为空,因为后缀不能为非空并且不能与DFA中第二个循环的标签相对应。uvt

足够 假设条件,将构建PDA用于大号通过处理每个接受图案X ü ÿ其中ü标签一个简单的循环。我们要接受形式为x u n y x u n y的单词。我们读x,为u的每次出现推一个符号,读y x,然后为u的每个出现弹出一个符号,最后读yLxuyAuxunyxunyxuyxuy

关于例外情况,如果在这种情况下,则基本接受路径的形式为x u y v,其中u v是循环的标签。我们接受形式为x u n y v m x u n y v m的单词,但是假设(x u v通勤)与u n x y u n v m x y v m相同,则可以由PDA完成:按nxuyvu,vxunyvmxunyvmx,u,vunxyunvmxyvmn次(对于u的出现),读取x y,弹出n次,按m次(对于v),读取x y,弹出m次。uxynmvxym

最终的PDA是每种模式的PDA的并集。

必要 (手动)如果有一条路径有两个循环,即使在最简单的情况下,您必须先走一个再走另一个(例如a b ),您也必须记住每个循环被执行了多少次,但是堆栈结构防止您以相同的顺序重复它们。请注意,DFA最小这一事实在表征中很重要,以避免一个循环就足够的情况下使用两个循环。ab

现在,必要的部分只是一个推测,可能需要更多的例外才能获得确切的条件,我会对反例感兴趣。


“然后再次读取w,在出现该单词的第二次出现的每个循环中弹出一个符号”-但是,w无限多!除非我错误地理解了您的论点。w
瑞安

@Ryan u标记循环的“模式” xuy的数量是有限的,因此我们可以猜测正在读取的模式。
丹尼斯

我进行了编辑以澄清这一部分。
丹尼斯

该条件与我想到的另一个条件类似:S(L)是上下文无关的,如果不存在单词u v w 1w 2,则w 1w 2互不互为前缀和ü 瓦特1 + 瓦特2 * v 大号
holf

@holf你似乎没有工作* b *
丹尼斯
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.