是{ww'| HamDist(w,w')> 1}是否与上下文无关?


13

阅读最近的问题后,“是的补{www∣...}上下文无关?” ; 我记得我无法反驳的类似问题:

是L={ww′∣w,w′∈{0,1}∗∧|w|=|w′|∧HamDist(w,w′)>1}上下文无关?

在这里,我们要求两个弦至少在两个位置不同(汉明距离必须大于1)。

如果我们要求它是上下文无关HamDist(w,w′)≥1(即,两个字符串必须简单地是不同的)。

我怀疑该语言不是上下文无关的:如果我们将其与常规的0∗10∗10∗10∗相交,则会 遇到PDA在到达字符串的一半后应该以相反的顺序“记住”两个位置的情况。

更新:如果我们将L与正则R={0∗10∗10∗10∗}相交,我们将得到上下文无关的语言,如domotorp在他的回答中所示;一个稍微复杂的L∩R′与 R′={0∗10∗10∗10∗10∗10∗}(多一个1到“追踪”的)还是建议L不应上下文无关。


实际上是更容易的,因为它是完全不属于形式的话瓦特瓦特(由相交 - [R ')。L∩R′wwR′
— domotorp

@domotorp:对!更改为固定的奇数 s(除非对于任何固定的奇数k,除非您的答案也可以适应 { (0 * 1 0 * )k })1{(0∗10∗)k}k
— Marzio De Biasi

最后一条评论:从前导零开始无济于事,因为上下文无关的语言对于各种循环移位都是封闭的。您可以将它们推入堆栈,用特殊符号标记最后一个,然后执行算法的其余部分,假装堆栈从此处开始,最后将其清空。(这使用 -transition,但是这样的PDA等同于没有PDA的转换也很容易。)ϵ
— domotorp

考虑{0,1,2}字母并考虑正好包含两个1和两个2的字符串可能会更简单。如果1s之间的距离和2s之间的距离均为n,则不是您的语言。
— 卡夫

Answers:


4

R={0∗10∗10∗10∗∣偶数长字}的交集是上下文无关的,因为PDA 可以以某种方式记住两个位置。无论如何,首先让我们看看L是什么语言。它的互补物是 R∖L={0a10b10c10d∣b=n/2∨c=n/2∨a+d=n/2}。因此, L={0a10b10c10d∣b≠n/2∧c≠n/2∧a+d≠n/2}。我们可以重写此为 L={0a10b10c10d∣b>n/2∨c>n/2∨a+d>n/2∨b,c,a+d<n/2}。

前3情况可以轻松验证,第4种情况也可以轻松验证。

b>n/2:开始放入堆栈,直到第一个堆栈,然后开始从堆栈中弹出直到其为非空。清空之后,再次开始将其放入堆栈中,直到到达第二个堆栈1。然后弹出堆栈。

c>n/2:相同。

a+d>n/2

b,c,a+d<n/2a+n/2


R∖L{0a10b10c′0c″10d∣ (n/2=a+b+c′=c″+d+1)∧[(a=c″)∨(c′=d)}b=n/2∨c=n/2∨a+d=n/2

R⊂L是HamDist最多为。如果三个1的匹配项中的两个匹配,即一个在上半部分处于相同位置,而另一个在下半部分中处于相同位置,则会发生这种情况。如果这两个1是第一个和第二个1,那么我们得到,如果它们是第二个和第三个1,我们得到,如果它们是第一个和第三个1,我们得到,或等价地,(在这里,我用一些恒定的作弊)。1b=n/2c=n/2b+c=n/2a+d=n/2±1
— domotorp

这能回答完整的问题吗?
— 米歇尔·卡迪哈克(MichaëlCadilhac),

@domotorp:好的,我明白了,谢谢!另一个疑问:从(可以),您写出但是,它等效于:吗?(省略条件)L∩R={...b≠n/2∧c≠n/2...}L∩R={...b>n/2∨c>n/2∨b,c<n/2}一+ dL∩R={...(b<n/2∨b>n/2)∧(c<n/2∨c>n/2)}a+d
— Marzio De Biasi

@迈克尔:号 
— domotorp
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.