【计算理论】泵引理以及应用(证明某些语言不是正则的)
1、基础知识1.1、一个典型的有穷自动机状态图
本例中q1为起始状态,q2为接受状态。如果一个字符串w经过M1可以到达接受状态那称为M1接受s(比如字符串1,01,001,0011等等会被M1接受)。若A是机器M1接受的全部字符串集,则称A是机器M1的语言,记L(M1)=A; 以q1为例,q1状态遇到0自反,遇到1则进入q2状态; 1.2、正则运算如果一个语言被一台有穷自动机识别,则称它是正则语言。算术运算中基本对象是数,正则运算的基本对象是语言。定义语言的运算包括并、连接、星号三种(类似算术运算中加减乘数角色)。
两者区别如下:
2、泵引理{直接看定义、概念确实枯燥,但看过例子之后回头再看定义就会有“意会”的感觉}
2.1、定义设A为一个正则语言,则存在仅依赖于A的正整数p(泵长度),对于?s∈A,如果|s|≥p 泵长度可理解为等价DFA的状态个数。 Si在qi的间隙中,所以若S长度为n,那么状态集的长度为n+1;
在这样的划分下,条件1和2是满足的。 注意y是两个q9之间的部分,所以|xy|<=p也是满足的。 2.2、证明某些语言不是正则语言(regular language){语言B符合泵引理,是B是正则语言的必要而不充分条件,所以一般都用证明某些语言不是正则的} 运用泵引理证明B不是正则语言的基本步骤:
对3)来讲,比如B中的一个字符串s为000111,分割s为x、y、z的过程,以y=01为例,xyz为000111,xyyz则为00010111,后者不是B的成员,矛盾。 至此,泵引理应该很容易被理解了吧 3、参考资料[1] 计算理论导引 第二版,Michael Sipser [2] 维基百科{http://zh.wikipedia.org/wiki/%E6%B3%B5%E5%BC%95%E7%90%86 http://en.wikipedia.org/wiki/Pumping_lemma http://en.wikipedia.org/wiki/Pumping_lemma_for_regular_languages} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |