使用Pumping引理证明语言是正常的还是不规律的?

时间:2015-03-28 12:11:22

标签: regular-language finite-automata automata pumping-lemma

任何人都可以帮助弄清楚L = {a m b n ,m≥n+ 2,m≤3}是否有规律或不使用泵浦引理,似乎有点难以证明。

我试图使用抽水引理,它表明它是常规语言,但我真的很困惑,这是对的。

2 个答案:

答案 0 :(得分:3)

  

我试图使用抽水引理并且它表明它是常规语言但我真的很困惑,这是对的。

首先请注意,可以使用抽取引理 来证明“某些语言是常规语言”。但是我们不能使用抽取引理来证明“某些语言 是常规的”。

是的,常规语言的抽象引理描述了所有常规语言的基本属性,如果语言不满足conditions described by pumping lemma或者说不满足抽取引理属性那么该语言实际上不是常规语言,但反过来说这不是真的!! & mdash-有“语言满足抽水引理的条件,可能仍然 -regular”,意思是: -

  

抽样引理是'necessary but not sufficient condition',因为语言是常规的。

这就像:每个工程师都是数学学生 - 所以如果一个学生是工程师,我们可以说他懂数学,但他们是那些不懂工程的数学学生。 (只是给你一个解释的例子)

从你的问题来看,我的印象是你基本上不理解 - "what is a regular language?"

与普通语言的抽取引理不同,我们需要学习常规语言的其他一些特征 - 用语言来证明语言是常规语言。如果您可以使用有限自动机或/和正则表达式来表示语言,则可以证明该语言是常规语言。

现在,来看你原来的问题:

  

如何证明语言{a m b n ,m≥n+ 2,m≤3}是否有规律?

因为“m”或“n”都不是负数(没有出现任何符号的字符串是可能的,例如空字符串 1 ,但是不可能出现具有负面语言符号的字符串并且根据条件“m≥n+ 2”,'m'总是大于'n' - 所以'm'的最小值(当'n'为0时)是2.从第二个条件“m≤3” ,'m'的最大值为'3',因此'm'可以是2或3.

如果你再次注意到第一个条件:“m≥n+ 2”对于m = {2,3}可能的'n'值可以是:

  • 对于m = 2,n可以是0,这使得字符串'aa'。
  • 对于m = 3,n可以是0或1,这使得字符串'aaa','aaab'。

因此,语言是有限的语言e。只包含三个字符串。每种有限语言都是常用语言,请查看维恩图:

See venn-diagram

(更倾向于阅读这篇文章:Finiteness of Regular Language

您的语言的正则表达式L = {a m b n ,m≥n+ 2,m≤3}将 aa(a +Λ )(b +Λ), 因此证明语言是一种常规语言。

1 没有出现任何符号的字符串在正式语言中称为空字符串或空字符串,在大多数正式语言书籍中为空字符串符号
。  Λ是空符号。

答案 1 :(得分:-1)

我们不能使用抽取引理证明语言是正常的。要证明一种语言是常规的,我们应该为该语言设计DFA