正则语言的闭包属性是什么?

在自动机理论中,正则语言有不同的闭包特性。它们如下 -

  • 联盟

  • 路口

  • 级联

  • Kleene 闭合

  • 补充

举个例子一一看看

联盟

如果 L1 和 If L2 是两种正则语言,它们的并集 L1 U L2 也将是正则的。

示例

L1 = {an | n > O} 和 L2 = {bn | n > O}

L3 = L1 U L2 = {an U bn | n > O} 也是正则的。

路口

如果 L1 和 If L2 是两种正则语言,它们的交集 L1 ∩ L2 也将是正则的。

例子

L1= {am bn | n > 0 和 m > O} 和

L2= {am bn U bn am | n > 0 和 m > O}

L3 = L1 ∩ L2 = {am bn | n > 0 和 m > O} 也是规则的。

级联

如果 L1 和 If L2 是两种常规语言,则它们的串联 L1.L2 也将是常规语言。

例子

L1 = {an | n > 0} 和 L2 = {bn | n > O}

L3 = L1.L2 = {am . 十亿 | m > 0 和 n > O} 也是规则的。

Kleene 闭包

如果 L1 是正则语言,它的 Kleene 闭包 L1* 也将是正则的。

例子

L1 = (a U b )

L1* = (a U b)*

补充

如果L(G)是正则语言,它的补L'(G)也将是正则的。可以通过L(G)从所有可能的字符串中减去包含的字符串来找到语言的补码。

例子

L(G)= {an | n > 3} L'(G) = {an | n <= 3}

注意- 如果两个正则表达式生成的语言相同,则它们是等效的。例如,(a+b*)* 和 (a+b)* 生成相同的语言。每个由 (a+b*)* 生成的字符串也由 (a+b)* 生成,反之亦然。