给定一个语言,定义长度集的作为设定中的单词长度的:
哪些整数集可以是常规语言的长度集?
给定一个语言,定义长度集的作为设定中的单词长度的:
哪些整数集可以是常规语言的长度集?
Answers:
首先,这不是很关键,但很方便:一个非空字母A上某种规则语言L的整数集L S (L )的集合不依赖于字母表的选择。看到这一点,考虑一个识别L的有限自动机。。中的单词的长度是自动机上从开始状态到任何接受状态的未标记图形的路径长度。特别是,您可以将每个箭头重新标记为并获得在字母设置相同长度的常规语言。相反,如果是一个单元素字母上的常规语言,可以简单地将其注入更大的字母表中,结果仍然是常规语言。
因此,我们正在寻找单例字母表中单词的可能长度集。在单例字母上,语言是一元写的长度:。这样的语言称为一元语言。
令为常规语言,并考虑识别的确定性有限自动机(DFA)。的字长集是DFA中路径的长度集,被视为有向图,从开始状态开始并在其中一种接受状态结束。一元素字母上的DFA非常温和(NFA更为荒谬):它是有限列表或循环列表。如果列表是有限的,请按照列表顺序从到编号状态;否则为0。如果是圆形,则在列表的开头跟随状态,从到编号,沿着循环从到。
设为直到的接受状态的索引集,而为从到的接受状态的索引集。然后
反之,让和是两个整数和和是两个有限集合整数,使得和。然后设置是一个正则语言:它是由上述DFA识别的语言。描述该语言正则表达式是。
总而言之,常规语言的长度集是大于某个值的周期性¹的整数集。
¹ 要坚持一个公认的概念,周期表示集合的特征函数(它是函数,我们将其提升为函数)是周期性的。周期性高于某个值表示该函数限制为 可以延长成周期函数
任意有限子集可以是lenght设定一个正则语言的大号,因为你可以采取一元字母表{ 0 },并定义大号为{ 0 ℓ 1,... ,0 ℓ Ñ }(包括空语言和{ ε })。
现在为无限集。我将进行简短的分析,尽管最终答案可能不够明确。除非您要求,否则我不会详细说明,因为我认为这很直观,而且我现在没有太多时间。
令为分别生成语言L 1和L 2的正则表达式。很容易看到
因此,整数的可能集合,其可为长度设定一个正则语言的是是有限的子集的那些或可以通过采取有限子集来构建š 1,s ^ 2的Ñ以及使用所述先前的公式的有限次数。
在这里,我们使用的是根据定义通过应用有限次数构造规则表达式的规则来构建规则语言的方法。注意,我们可以从任何有限子集开始,即使在正则表达式中,我们仅以长度0和1的单词作为基本情况开始。所有(有限的)单词都是字母符号的(有限的)串联这一事实很容易证明这一点。
根据抽水引理正规语言,存在一个使得串X的长度至少等于ň可以写成如下形式:X = ü v w ^如果以下三个条件成立:| u v | < n | v | > 0 û v ķ瓦特∈
这给我们提供了一组集合的检验:集合不能是常规语言的长度集合,除非它的所有元素都可以表示为不大于固定任意整数集合加上未定值m的某些倍数(长度的v),加上一些任意的有限值。
换句话说,常规语言的可能语言长度集合似乎是集合的集合联合(如EDIT和EDIT2,感谢评论者所讨论)的闭包,描述如下:对于固定一个,b ∈ ñ和所有的有限集合小号,通过正规语言的泵引理(感谢吉尔在我原来的版本指出了一个愚蠢的错误,因此我定义集合ñ)。
编辑:更多讨论。当然,所有有限的整数集都是长度集。同样,两个长度集的并集也必须是长度集,必须是任何长度集的补码(因此相交,因此会有所不同)。其原因是常规语言在这些操作下被关闭。因此,我上面给出的答案(可能)是不完整的;实际上,此类集合的任何结合也是某种常规语言的长度集合(请注意,我已经放弃了交集,补语,差异等,因为这些已被常规语言在这些属性下封闭的事实所覆盖,例如在EDIT3中讨论过;我认为实际上只有工会是必要的,即使其他工会是对的也可能不是这样)。
EDIT2:更多讨论。如果进一步考虑Janoma的答案,我给出的答案基本上就是最终的答案。在部分来自于克莱尼明星,一来自串联,并集,交集,差的讨论和补充来自正则表达式的+(以及正规语言的其他封闭性)的自动机可证明的起点) 。
EDIT3:根据Janoma的评论,让我们忘记我在第一次EDIT中讨论的语言长度集的闭包属性。由于常规语言具有这些封闭属性,并且由于每种常规语言都具有DFA,因此,常规语言的抽动引理适用于常规语言的所有并集,交集,补语和差异,因此我们将其保留下来。 ; 甚至不需要考虑其中的任何一个,除了工会,我仍然认为可能有必要使我的原始作品(经过吉尔斯的帮助修改)正确无误。所以,我的最终答案是:我在原始版本中说的话,以及针对集合并集的语言长度集合的闭包。