如果一元语言的指数是线性函数,它是否是正规语言?


13

在为我的正式语言和自动机课程做当前的工作时,我有点陷入涉及一元语言(我希望这是正确的术语)的练习,即基于单个字母的语言。不过,我不想询问具体的练习,而是想出一个更笼统的猜想:

令和。我的猜想是:Σ={a}L={af(n)Σ:nN0}

L is regularx,yN0:f(n)=xn+y

这个问题以前见过科学的治疗方法吗?是“明显”正确/错误吗?

对我来说,显然是“,因为人们可以只建立一个DFA与”方向为真的状态,通过所述循环的状态后通过具有读状态和接受当且仅当在状态数。x+yxyy


干得好,做这个观察对我来说是普通学生所没有的!
拉斐尔

同意 这是一个非常好的观察。
瑞克·德克

从标题看并不太明显,但是我们之前有一个问题,直到一个很小的等价引理:普通语言中可能的单词长度集合是什么?
吉尔斯(Gilles)'所以

Answers:


9

线性接近,但您要寻找的技术术语是半线性:,即线性集合的有限并集。

证明这一点的一半是Parikh定理的推论,该定理指出,任何上下文无关的语言都具有半线性的Parikh映射(即,向量集,其中包含字母表中每个字母的出现)。

对于一元语言,该语言的缩写图是该语言本身(即,每个单词由其具有的几个字母唯一标识),因此每种一元常规语言都是半线性的。

证明的另一半表明,您可以构造包含每个一元半线性集的常规语言。这需要一些工作,但是如果您使用正则表达式并不难:

  • ak识别语言{k}
  • (ak)识别{xkxN0}
  • R1R2如果识别且识别,则识别,其中这里是逐元素加法S1+S2R1S1R2S2+
  • R1|R2如果识别并且识别,则识别这是正则表达式联盟。S1S2R1S1R2S2|

6

你几乎是正确的。您需要考虑以下事实:您可能具有多个线性函数,例如 或者您可能拥有有限的语言,例如 (在两种情况下,我们只是采用常规语言的并集,因此一切正常。)

L={akk=3n+1 or k=7n+4}
L={akk=4n+2 or k=13}
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.