使用 Pumping Lemma 证明 L ={ ww^R : w ∈ Σ*} 不是正则的

Show that L ={ ww^R : w ∈ Σ*} is not regular by using Pumping Lemma

如果我让字符串 w 成为 a^mb^m 那么我们知道 y 将仅由 a 组成,因为规则 |xy| <= m

如果我设置 i=0,那么 ww^R 左侧的 a 将比右侧少。这样,就证明这个语言是不正则的。

但是,我的教科书(形式语言和自动机导论 第 118 页,林茨着)说如果我选择 w = a^2m 并让 y = aa,那我就失败了。

但怎么会这样呢?

在我看来,无论 xyz 是什么,第一个 a^2m 都会有更少的 a 或更多取决于 i 比第二个 a^2m.

原因是 m 上的标量是偶数。由于 L 中的字符串只是一个字符串的反向附加到自身,偶数个 a 将始终在 中L.

对于任何 m >= 1 你有 aa[aa...]。因此,当您的对手选择 y = aa 时,他们会强制您将 L 中的字符串注入 w(i )。不管多少次,如果有的话,你最终会得到:(aa)^k : k = pumps,这是 L[= 中的一个字符串28=]

我认为只使用a是一个糟糕的选择。拥有两个字母符号通常更容易获胜。正如这本书继续说的那样,你不能假设打败你的对手应该很容易;任何尝试都自动无效。