字母“a,b,c”的所有字符串的语言是否具有相同数量的子串“ab”& “ba”经常?

时间:2011-08-13 17:39:51

标签: grammar language-theory

字母“a,b,c”的所有字符串的语言是否具有相同数量的子串“ab”& “ba”经常?

我认为答案是否定的,但很难对其进行正式演示,即使是非正式演示。

有关如何处理此事的任何想法?

2 个答案:

答案 0 :(得分:2)

显然不经常。 FA如何识别(abc)^ n c(cba)^ n。像这样的字符串是用你的语言的,对吧?该论证是一个简单的论证,基于在不可区分关系I_l下存在无限多个等价类的事实。

答案 1 :(得分:0)

证明某种语言最常见的方法是使用Pumping Lemmas

使用引理有点棘手,因为它具有所有“存在”等等。要证明一种语言L不是经常使用泵引理,你必须证明

for any integer p,
there is a word w in L of length n, with n>=p,  such that
for all possible ways to decompose w as xyz, with len(xy) <= p and y non empty
there exists an i such that x(y^i)z (repeating the y bit i times) is NOT in L

的whooo!

我将展示证明如何查找“相同数量的as和bs”语言。转换到你的情况应该是直截了当的:

for any given p, we can make a word of length n = 2*p
a^p b^p (p a's followed by p b's)
any way you decompose this into xyz w/ |xy| <=p, y will only contain a's.

Thus, pumping the the y part will make the word have more as than bs,
thus NOT belonging to L.

如果您需要直觉了解其工作原理,请按照您需要如何计算到大量数字来验证单词是否属于这些语言之一。然而,有限自动机描述了常规语言,并且没有有限自动机可以表示代表所有数字所需的无限状态。 (维基百科的文章应该有一个正式的证据)。


编辑:看起来你不能直接在这个特殊情况下直接使用抽取引理:如果你总是让y长一个字符就永远不能让一个字停止接受(aba变成abbbba没有区别等等。)

只要做Patrick87建议的等价类方法 - 它可能会比你需要做的任何肮脏的黑客更清洁,以使泵引理适用于此。