繁体   English   中英

正则语言在拼接和星型操作下的闭包性

[英]Closure property of regular languages under concatenation and star operation

在我们的计算理论课程中,我们已经在交集、并集和补集下证明了正则语言(L1,L2)的闭包。 但是它们在 concatenation(L1L2) 和 star(L1*) 操作下的闭包没有完成。 如果有人能向我解释我们如何证明这两个,那就太好了。

提前致谢

这些事实的证据是建设性的。

令 L1 和 L2 为任意正则语言。 因为它们是常规语言,所以我们知道 L1 和 L2 的 DFA 最少; 我们分别称它们为 M1 和 M2。

要看到这些语言的连接必须是规则的,构造一个机器 M* 如下:

  • M* 的状态是 M1 和 M2 的状态加在一起
  • M*的字母表是M1和M2字母表的并集
  • M*的首字母state是M1的首字母state
  • M* 的接受状态是 M2 的接受状态
  • M* 具有与 M1 和 M2 放在一起的所有相同转换,加上从 M1 中的所有接受状态到 M2 的初始 state 的空/epsilon/lambda 转换

这定义了一个 NFA-lambda(具有空/lambda/epsilon 转换的 NFA)。 我们知道这些等价于 DFA,并且所有 DFA 都可以最小化; 让我们称其为等效的最小 DFA M**。

因为 L1 和 L2 的串联存在最小 DFA,所以串联必须是规则的。

L* 的论证是相似的,其中 L 是正则的。 令 M3 为 L 的最小 DFA。然后定义 M*** 如下:

  • M*** 的状态是 M3 的状态加上一个额外的 state q*
  • M***的字母是M3的字母
  • M***的首字母state是q*
  • 接受M***的state是q*
  • M*** 的转换是 M3 的转换,加上从 q* 到 M3 的接受状态 state 的空/epsilon/lambda 转换,以及从 M3 的接受状态到 q* 的空/epsilon/lambda 转换

这定义了一个接受 L* 的 NFA-lambda(具有空/epsilon/lambda 转换的 NFA)。 因为 NFA-lambda 等价于 DFA,并且 DFA 可以最小化,所以 L* 有一个最小 DFA M****。 因此,只要 L 是,L* 就必须是正则的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM