考虑以下语言
哪种语言是常规语言?
(A)仅L1和L2
(B)仅L2,L3和L4
(C)仅L3和L4
(D)仅L3答案: (D)
说明:如果存在能够识别该语言的有限自动机(无论是确定性的还是不确定性的),则该语言被称为常规语言。因此,如果对于给定的语言,我们可以提出一个有限的自动机,则可以说该语言是规则的。但是有时候,设计与给定语言相对应的自动机并不是很明显,但是它确实存在。在这种情况下,我们不应该开始认为给定的语言是不规则的。我们应该使用抽水引理来决定给定语言是否正常。
根据抽引引理,
“假设L是一门普通语言,那么存在al≥1使得对于所有字符串s∈L,其中| s | ≥l时,我们总是可以拆分s(至少存在这样的拆分),使得s可以用| xy |表示为xyz。 ≤l且y≠ε,并且对于所有i≥0,xy i z∈L”。 l称为抽运长度。
让我们改写非正规语言的给定引理。假设L是一种语言,如果对于所有l≥1都存在一个带有| s |的字符串s∈L ≥l使得对于x的所有s分裂(不存在不遵循该规则的单个分裂),形式为xyz,例如
那个| xy | ≥l且y≠ε,则存在i≥0使得xy i z∉L,则L不规则。请注意,如果我们想证明某种语言不是正规语言,那么我们着重于找到这样的。
问题选择:
(a)在选择1中,首先考虑w为长度n且仅包含a。在这种情况下,语言表示n n n 。语言表示的字符串的长度应为偶数。考虑l = n,然后xyz = a n a n和xy = a n 。让我们假设y = a,然后考虑i = 0的xy i z的隶属关系。这将只是奇数长度,不属于L。因此L不是正则。为了更详细地讨论它,让我们考虑另一个示例。假设w = a p b,则由L形成的字符串将是长度为2p + 2的p ba p b。假设l = p,则xy = a p 。假设y = a,然后考虑i = 0的xy i z的隶属关系。这当然不属于L。因此L不是正规的。
(b)在选项2中,第一个示例将如上所述工作。在第二个示例中,字符串将为p bba p ,并且在处理过程中不会有任何变化证明它是不规则的。
(c)在选择3中,假设我们考虑的是0和0 2 ∗ n之间的整数会导致空字符串,这也是可以接受的,我们可以简单地构造如下所示的DFA。如果它为空或包含零个偶数,则它只接受一个字符串。所以语言是正规的。
(d)在选择4,我们可以简单地假设泵送长度L = I 2/2。现在考虑xy = 0 l和y = 0,现在,如果我们检查xy 2 z的隶属关系,我们可以发现这将代表0 i ^ 2 +1,并且对应于不存在j使得
j 2 = i 2 +1,其中i和j是整数,但j = 1和i = 0除外。但是由于i不能为零。简而言之,使用抽水引理,我们可以生成0 i ^ 2 +1以及0 i ^ 2 -1,这在L中将不可用。
所以L不是正规的。
这种解释是由Durgesh Pandey贡献的。
这个问题的测验