以下语言上下文是否免费?
如sdcvvc所指出的,该语言中的单词也可以描述为汉明距离为2或更大的两个相同长度单词的串联。
我认为它不是上下文无关的,但是我很难证明这一点。我尝试将此语言与常规语言(例如)相交, 然后使用抽引引理和\或同态性,但是我总是得到一种过于复杂的语言,难以描述和编写下。
以下语言上下文是否免费?
如sdcvvc所指出的,该语言中的单词也可以描述为汉明距离为2或更大的两个相同长度单词的串联。
我认为它不是上下文无关的,但是我很难证明这一点。我尝试将此语言与常规语言(例如)相交, 然后使用抽引引理和\或同态性,但是我总是得到一种过于复杂的语言,难以描述和编写下。
Answers:
注意[2019-07-30]证明是错误的...问题比听起来更复杂。
在尝试失败之后,这是另一个想法。
如果我们将与常规语言相交,我们将获得CF语言。
如果我们使用(一个正好为4 1的字符串),也许我们会有更多的运气。
令,如果可以将分成两半,则非正式地将设为,这样一半就正好包含 或两个半都包含两个,但位置不匹配。
假设为CF,令为Chomsky范式的语法,并令
我们有(偶数长度)和
如果将注意力集中在的四个1的生成方式上,我们将在图1的顶部显示三种情况。图1的中央部分显示了第一种情况(但其他情况类似)。 。
图1(完整图片可在此处下载)
如果我们选择和我们会看到两对1之间的零必须是可独立泵浦的(图中的红色节点):特别是对于足够大的,我们会在内部子树上获得一个重复的非终端节点(图2中的节点X),或者在通向第一个或第二个1的路径中(图2中的节点Y)重复一个子序列。请注意,图2进行了一些简化:两个之间以及两个之间可以有更多的非终端节点(但仅产生第一个1的右侧为0)。
图2
因此,我们可以确定任意,然后选择足够大的以得到第一个和第二个之间的零序列上的可独立泵送的节点。对于第三个和第四个1之间的零序列,我们可以选择。
但是是可独立泵送的,因此有一个可泵送子串,即和。我们得到的字符串是:0 b p ≤ b Ŷ b = X ý ž ,| y | = p ,| x | ≥ 0 ,| z | ≥ 0 X Ŷ 我 Ž = b !+ b
但是。因此,不是CF,最后不是CF。
如果证明正确(???),则可以扩展到每种语言
经过2次失败的尝试后,@ Hendrik Jan(谢谢)拒绝了尝试,这是另一次尝试,但没有成功。@Vor找到了确定性CF语言的示例,如果正确的话,可以使用相同的构造。这允许在引理应用中识别字符串锚定中的错误。引理本身似乎没有错。这显然太简单了。在评论中查看更多详细信息。
语言不是上下文无关的。
记住特征化 很有帮助,其中d是@sdcvvc提出的汉明距离。人们需要考虑的是每个半串中的两个选定位置,以使相应的符号不同。
然后,考虑一个字符串,使得和为偶数。通过将和截去两个1之间的任意位置,显然是语言L。我们想将该字符串 1到1之间的第一部分,这样它将变成,这不应该是该语言的语言。 i < j i + j u x 10 j 10 j
我们首先尝试使用Ogden引理,它类似于抽运引理,但适用于在字符串上标记的或多个可分辨符号,是标记符号的抽运长度(但引理可以抽运更多,因为它也可以抽运未标记的符号)。泵送标记长度仅取决于语言。该尝试将失败,但是失败将是提示。p p
然后,我们可以选择并在 0的第一个序列上标记符号。我们知道两个1都不在泵中,因为它可以抽出一次(指数0)而不是抽入。而抽出1会使我们脱离语言。我
但是,我们可以在第二个1的两侧以同样的速度甚至在右侧更快地进行抽水,以使第二个1永远不会越过弦的中间。而且,奥格登的引理并没有为被抽水的大小设定上限,因此无法组织抽水以使最右边的1准确地穿过琴弦的中部。
我们使用引理的修改版本,这里称为纳什引理,可以处理这些困难。
我们首先需要一个定义(它可能在文献中有另一个名字,但我不知道哪个-欢迎帮助)。一个字符串被说成是一个擦除一字符串的当且仅当它是从获得通过在擦除符号。我们将注意。v v v ü ≺ v
纳什的引理: 如果是上下文无关的语言,则存在两个数字和这样对于长度为的任何字符串至少在为,并且每种方式“标记”或更多,的位置可以写成并带有字符串,,,,,这样p > 0 q > 0 w p L p w w w = u x y z v u x y z v
证明:类似于Ogden引理的证明,但是修剪了与字符串和对应的子树,以使它们不包含具有两倍相同非终结点的任何路径(这两个子树的根除外)。这必然将生成的字符串和的大小限制为常数。对于,对应于树的未修剪版本的字符串和主要与一起使用,以简化应用引理时的记帐。X ž X Ž ý q X Ĵ Ž Ĵ Ĵ ≥ 0 Ĵ = 1
我们通过将最左边的符号标记为0来修改上面的证明尝试,但是在它们后面跟随符号0以确保我们在字符串的左侧部分(两个1之间)抽水。这使得在1之间总共有0(实际上就足够了,因为最右边的1不能在,这将允许简单地将其删除)。2 q 我= p + 2 q 我= p + q ž
剩下的就是选择了以便我们可以准确地泵送正确数量的0,以使两个序列相等。但是到目前为止,对的唯一约束是大于。而且我们也知道,每次抽水时抽水的0的数量在1到q之间。因此,令为前整数的乘积。我们选择。j i h q j = i + h
因此,由于泵浦增量(无论是多少)都在,因此将除以。令为商。如果我们恰好抽了次,我们得到的字符串不在语言中。因此,L不是上下文无关的。
。
我想我永远都不会看到
一串可爱的树。
因为如果没有解析,则
字符串是零,而是闹剧
通过这个问题,我认为是无上下文的,并且由以下语法