给定一种语言$ l $,将$ l $的长度集定义为$ l $:$$ mathrm {ls}(l)(l)= {| u | 中u in l } $$

哪一组整数可以是常规语言的长度集?

有帮助吗?

解决方案

首先,观察到不是关键但方便的观察:集合 $ MATHSCR {S} $ 一组整数 $ ls(l)$ 对于某种常规语言 $ L $ 在非空字母上 $ mathscr {a} $ 不取决于字母的选择。要看到这一点,请考虑一个有限的自动机识别 $ L $;中的单词的长度 $ L $ 是从开始状态到任何接受状态的自动机上路径的长度。特别是,您可以将每个箭头重新标记为 $ a $ 并获得与字母相同长度相同长度的常规语言 $ {a } $. 。相反,如果 $ L $ 是一种在单元素字母上的常规语言,可以将其琐碎地注入较大的字母中,结果仍然是一种常规语言。

因此,我们正在寻找单词字母上的单词的可能长度集。在单词字母上,该语言是一单元编写的长度: 美元. 。这种语言称为单语言。

$ L $ 成为普通语言,并考虑确定的有限自动机(DFA) $ L $. 。一组单词 $ L $ 是DFA中的一组路径长度,被视为有向图,该图在起始状态开始并以一种接受状态结束。一元素字母上的DFA非常驯服(NFA会很荒谬):它是有限列表,要么是圆形列表。如果列表是有限的,请从 $0$$ h $ 遵循列表订单;如果是圆形的,则将状态从 $0$$ h $ 遵循列表的头脑,并 $ h $$ H+R $ 沿着循环。

list-shaped automata

$ f $ 成为接受状态的一组索引 $ h $, , 和 $ g $ 是接受状态的一组索引 $ h $$ H+R $. 。然后

$$ mathrm {ls}(l)= f cup {k ,r + x mid x in g,k in mathbb {n} } $$

相反,让 $ h $$ r $ 成为两个整数 $ f $$ g $ 是两组有限的整数集 $ forall x in f,x le H $$ forall x in G,h le x le H+r $. 。然后是集合 美元 是一种常规语言:这是上述DFA认可的语言。描述这种语言的正则表达方式是 $ a^f mid a^{g}(a^r)^*$.

总结英语, 普通语言的长度集是超过一定值的周期性的整数集.

¹ 挂在一个 公认的概念, 周期性 表示集合的特征函数(这是一个函数 $ mathbb {n} to { mathtt {false}, mathtt {true} 我们将其提升到功能 $ mathbb {z} to { mathtt {false}, mathtt {true})是周期性的。高于某个值的周期性意味着该函数仅限于 $ [h,+ infty [$ 可以延长到周期性的功能。

其他提示

任何有限的子集$ { ell_1, ldots, ell_n } subset subset mathbb {n} $可以是常规语言$ l $的lenght-set,因为您可以服用Unary alphabet $ {0 {0 {0 } $并将$ l $定义为$ {0^{ ell_1}, ldots,0^{ ell_n} } $(这包括空语言和$ { varepsilon } $)。

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

令$ r_1,r_2 $为正则表达式生成语言$ l_1 $和$ l_2 $。这很容易看到

  • $ mathsf {ls}(l(r_1+r_2))= Mathsf {ls}(l_1 cup l_2)= Mathsf {ls}(l_1) cup mathsf {lssf {ls}(ls}(l_2)$。
  • $ MATHSF {LS}(L(R_1R_2))= MathSf {LS}(L_1L_2)= { ell_1+ ell_2: Ell_1 in Mathsf {lssf {ls}(ls}(l_1) }(l_2)} $。这表示为$ Mathsf {ls}(L_1)+ Mathsf {ls}(L_2)$。
  • $ mathsf {ls}(l(r_1^*))= {0 } cup bigcup_ {n geq 1} big big { sum_ {i = 1}^n ell_i:( ell_1 , ldots, ell_n) in big( mathsf {ls}(l_1) big)^n big }。$$

因此,可能是常规语言的长度集的可能的整数集是$ mathbb {n} $的有限子集,或者可以通过服用有限的子集$ s_1,s_2 $ of $ Mathbb {n} $,并使用以前的公式有限次。

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

根据普通语言的泵送引理,存在$ n $,因此可以以以下形式写出至少等于$ n $的字符串$ x $条件持有:$$ | UV | <n $$ $$ | V | > 0 $$ $$ uv^{k} w in L $$

这为我们提供了一项测试:一组不能是常规语言的长度集,除非其所有元素都可以表示为一组任意的整数集,否则不超过固定的$ n $,再加上一些不确定的值$ m的倍数$($ v $的长度),加上一些任意有限值。

换句话说,看起来普通语言的语言长度可能是关于集合的封闭(如评论者所述,如下所述,如下所述)所述的集合如下:$ {a + bn | n in mathbb {n} } cup s $$用于固定$ a,b in mathbb {n} $和所有有限的$ s $,由普通语言的泵送引理(感谢Gilles指向Gilles在我的原始版本中出一个愚蠢的错误,我在其中定义了集合$ mathbb {n} $)。

编辑:更多讨论。当然,所有有限的整数集都是长度集。同样,两个长度集的结合也必须是一个长度集,就像任何长度集的补充一样(因此相交,因此差异)。这样做的原因是,在这些操作下,普通语言是关闭的。因此,我上面给出的答案是(可能)不完整的。实际上,此类集合的任何结合也是一些普通语言的长度集(请注意,我放弃了需要交集,补充,差异等的时间,因为这些属性是在这些属性下关闭的事实,例如在Edit3中进行了讨论;我认为,即使其他人是对的,实际上也只有工会是必要的,情况并非如此)。

Edit2:更多讨论。我给出的答案基本上是如果您进一步提出了Janoma的答案,您最终会出现。 $ bn $零件来自克莱恩之星,$ a $来自串联,对联合,交叉点,差异和补充的讨论来自正则表达式的 +(以及普通语言的其他封闭属性)来自自动机)。

EDIT3:根据Janoma的评论,让我们忘记我在第一个编辑中讨论的语言长度集的闭合属性。由于普通语言具有这些封闭属性,并且由于每种普通语言都有DFA,因此,因此,普通语言的泵送引理适用于普通语言的所有工会,交叉点,补语和差异,我们将其留下来;除了联合之外,甚至无需考虑其中的任何一个,我仍然认为这对于使我的原始作品(由于Gilles的意见而修改)可能是正确的。因此,我的最终答案是:我在原始版本中说的话,以及与设置联合有关的语言长度设置的关闭。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top