常规语言中可能的字长集有哪些?


Answers:


14

首先,这不是很关键,但很方便:一个非空字母A上某种规则语言L的整数集L S (L )的集合小号不依赖于字母表的选择。看到这一点,考虑一个识别L的有限自动机。大号小号(大号)大号一种大号。大号中的单词的长度是自动机上从开始状态到任何接受状态的未标记图形的路径长度。特别是,您可以将每个箭头重新标记为一种并获得在字母{一种}设置相同长度的常规语言。相反,如果大号是一个单元素字母上的常规语言,可以简单地将其注入更大的字母表中,结果仍然是常规语言。

因此,我们正在寻找单例字母表中单词的可能长度集。在单例字母上,语言是一元写的长度:大号小号(大号)={ñ∈ñ∣一种ñ∈大号}。这样的语言称为一元语言。

令大号为常规语言,并考虑识别大号的确定性有限自动机(DFA)。大号的字长集是DFA中路径的长度集,被视为有向图,从开始状态开始并在其中一种接受状态结束。一元素字母上的DFA非常温和(NFA更为荒谬):它是有限列表或循环列表。如果列表是有限的,请按照列表顺序从0到H编号状态;否则为0。如果是圆形,则在列表的开头跟随状态,从0到H编号,沿着循环从H到H+[R。

列表形自动机

设F为直到H的接受状态的索引集,而G为从H到H+[R的接受状态的索引集。然后

大号小号(大号)=F∪{ķ[R+X∣X∈G,ķ∈ñ}

反之,让H和[R是两个整数和F和G是两个有限集合整数,使得∀x∈F,x≤h和∀x∈G,h≤x≤h+r。然后设置LF,G,r={akr+x∣x∈G,k∈N}是一个正则语言:它是由上述DFA识别的语言。描述该语言正则表达式是aF∣aG(ar)∗。

总而言之,常规语言的长度集是大于某个值的周期性¹的整数集。

¹ 要坚持一个公认的概念,周期表示集合的特征函数(它是函数N→{false,true},我们将其提升为函数Z→{false,true})是周期性的。周期性高于某个值表示该函数限制为[h,+∞[ 可以延长成周期函数


您对字母的不相关性的观察表明,可以应用帕里克定理。具体来说,您表明LS(L)= LS(L'),其中L'中的所有字母都折叠为一个字母。但是LS(L')是语言L的Parikh映射,已知它对于任何常规语言都是半线性的。
— Suresh'3

不错的方法!1)我认为可以将第一段替换为注意到常规语言禁止使用字符串同态。2)为清楚起见,您应考虑将的第二部分表示为{ h + k r + (x − h )∣ … },取模误差为一。3)什么是“周期”整数集?LS(L){h+kr+(x−h)∣…}
— 拉斐尔

1
@Suresh,Raphael(1):我更喜欢以一种基本的方式陈述证明,在我的CS 102课程中没有提到同态和Parikh映射。
— 吉尔斯(Gilles)'所以

@Raphael(2)当你开始建立索引没关系,我可以删除的条件^ h ≤ g ^,如˚F可以为许多小的元素,因为我们希望吸收。(3)周期性地高于某个值的集合可以以上面显示的形式放置。Gh≤GF
— 吉尔(Gilles)'“ SO-不要邪恶”

5

任意有限子集可以是lenght设定一个正则语言的大号,因为你可以采取一元字母表{ 0 },并定义大号为{ 0 ℓ 1,... ,0 ℓ Ñ }(包括空语言和{ ε })。{ℓ1,…,ℓn}⊂NL{0}L{0ℓ1,…,0ℓn}{ε}

现在为无限集。我将进行简短的分析,尽管最终答案可能不够明确。除非您要求,否则我不会详细说明,因为我认为这很直观,而且我现在没有太多时间。

令为分别生成语言L 1和L 2的正则表达式。很容易看到r1,r2L1L2

  • 。LS(L(r1+r2))=LS(L1∪L2)=LS(L1)∪LS(L2)
  • 。这表示为 L S(L 1)+ 2)LS(L(r1r2))=LS(L1L2)={ℓ1+ℓ2:ℓ1∈LS(L1),ℓ2∈LS(L2)}LS(L1)+LS(L2)。
  • LS(L(r1∗))={0}∪⋃n≥1{∑i=1nℓi:(ℓ1,…,ℓn)∈(LS(L1))n}.

因此,整数的可能集合,其可为长度设定一个正则语言的是是有限的子集的那些或可以通过采取有限子集来构建š 1,s ^ 2的Ñ以及使用所述先前的公式的有限次数。NS1,S2N

在这里,我们使用的是根据定义通过应用有限次数构造规则表达式的规则来构建规则语言的方法。注意,我们可以从任何有限子集开始,即使在正则表达式中,我们仅以长度0和1的单词作为基本情况开始。所有(有限的)单词都是字母符号的(有限的)串联这一事实很容易证明这一点。N


我没有任何最终答案。(您是否打算稍后再回答?)我希望对可能的设置进行简单描述,并希望与自动机建立联系。
— 吉尔(Gilles)“所以

最终的答案是:“因此,可能的整数集...”。这确实是一个简单的描述,尽管与正则表达式关联,而不是与自动机关联。
— Janoma'3

有一个更简单的描述,它不涉及固定点。也许这个问题不像我想的那么简单!
— 吉尔(Gilles)“所以,别再邪恶了”

我认为您不能避免最后一条规则,因为星运算符可以产生无限的长度集,就像产生无限的语言一样。
— Janoma'3

@Gilles那么,您想要Janoma提供的归纳解决方案的最小定点的封闭形式吗?
— 拉斐尔

2

根据抽水引理正规语言,存在一个使得串X的长度至少等于ň可以写成如下形式:X = ü v w ^如果以下三个条件成立:| u v | < n | v | > 0 û v ķ瓦特∈nxn

x=uvw
|uv|<n
|v|>0
uvkw∈L

这给我们提供了一组集合的检验:集合不能是常规语言的长度集合,除非它的所有元素都可以表示为不大于固定任意整数集合加上未定值m的某些倍数(长度的v),加上一些任意的有限值。nmv

换句话说,常规语言的可能语言长度集合似乎是集合的集合联合(如EDIT和EDIT2,感谢评论者所讨论)的闭包,描述如下:对于固定一个,b ∈ ñ和所有的有限集合小号,通过正规语言的泵引理(感谢吉尔在我原来的版本指出了一个愚蠢的错误,因此我定义集合ñ)。

{a+bn|n∈N}∪S
a,b∈NSN

编辑:更多讨论。当然,所有有限的整数集都是长度集。同样,两个长度集的并集也必须是长度集,必须是任何长度集的补码(因此相交,因此会有所不同)。其原因是常规语言在这些操作下被关闭。因此,我上面给出的答案(可能)是不完整的;实际上,此类集合的任何结合也是某种常规语言的长度集合(请注意,我已经放弃了交集,补语,差异等,因为这些已被常规语言在这些属性下封闭的事实所覆盖,例如在EDIT3中讨论过;我认为实际上只有工会是必要的,即使其他工会是对的也可能不是这样)。

EDIT2:更多讨论。如果进一步考虑Janoma的答案,我给出的答案基本上就是最终的答案。在部分来自于克莱尼明星,一bna来自串联,并集,交集,差的讨论和补充来自正则表达式的+(以及正规语言的其他封闭性)的自动机可证明的起点) 。

EDIT3:根据Janoma的评论,让我们忘记我在第一次EDIT中讨论的语言长度集的闭包属性。由于常规语言具有这些封闭属性,并且由于每种常规语言都具有DFA,因此,常规语言的抽动引理适用于常规语言的所有并集,交集,补语和差异,因此我们将其保留下来。 ; 甚至不需要考虑其中的任何一个,除了工会,我仍然认为可能有必要使我的原始作品(经过吉尔斯的帮助修改)正确无误。所以,我的最终答案是:我在原始版本中说的话,以及针对集合并集的语言长度集合的闭包。


1
是在正确的轨道上,但你有一个量词错误的地方,要生成 ñ。{一种+bñ∣一种,b,ñ∈ñ}∪小号ñ
— 吉尔斯(Gillles)“所以-别再邪恶了”

1
长度集补码的分析可能会有些微。如果在字母表Σ = { 一个,b },然后的长度集合大号是Ñ和的长度集合¯ 大号是Ñ +,和这些不相互补充的。大号=大号(一种∗)Σ={一种,b}大号ñ大号¯ñ+
— Janoma'3

@Gilles但是所有自然数的集合都是有效的长度集合,对吗?我不会生成自然数的所有子集,对吗?我同意那将是有问题的。编辑:哦,等等,我明白你在说什么。你是对的。回到计算机后将修复。
— Patrick87 2012年

@Janoma的要点,将需要考虑这将如何改变我正在定义的一组东西……
— Patrick87 2012年
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.