【问题标题】:Can the intersection of two regular languages be non-regular?两种常规语言的交集可以是非常规的吗?
【发布时间】:2019-10-10 07:13:30
【问题描述】:

两种正则语言的交集可以是非常规的吗?

你能举例说明什么时候会发生这种情况吗?

【问题讨论】:

  • 听起来像功课
  • 我不是在看一个例子,其中 2 种常规语言的联合并不总是规则的,所以想知道它是如何发生在交叉路口的
  • 两种正则语言的并集和交集都是正则的。这可以通过考虑从两个原始 DFA 形成联合和交叉 DFA 的机制来证明。

标签: state automata


【解决方案1】:

不,两种正则语言的交集保证是正则语言。这可以通过很多方法来证明,但一种简单的方法是使用闭包属性。假设您有常规语言 L1 和 L2。这些语言有 DFA M1 和 M2。在两台机器中将所有接受状态更改为不接受,反之亦然;将生成的机器称为 M1' 和 M2'。它们接受 L1 和 L2 的补语,它们必须是常规语言(因为有 DFA 接受它们)。因为这些补码是正则的,所以它们有正则表达式 r1 和 r2。那么正则表达式 r = r1 + r2 也描述了一种正则语言。因此,它有一个 DFA M。将所有接受状态更改为非接受状态,反之亦然,得到 M'。 M' 现在接受常规语言 (L1' union L2')'。但是我们从 De Morgan 知道,这个表达式等价于 L1 intersect L2。

这是一个建设性的证明,它向您展示了如何在给定 L1 和 L2 的 DFA 的情况下构建 L1 的 DFA 与 L2 相交。其他建设性的证明是可能的。另一种流行的选择是使用笛卡尔积机器构造。这将为 L1 和 L2 中的每一对状态生成一个具有一个状态的 DFA,并且转换将对应于从 L1 和 L2 获取的转换对。

【讨论】:

    猜你喜欢
    • 2020-05-05
    • 1970-01-01
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 2013-12-08
    • 2020-10-16
    • 1970-01-01
    相关资源
    最近更新 更多