【问题标题】:over regular Languages L and D(L)超过常规语言 L 和 D(L)
【发布时间】:2015-07-22 09:25:12
【问题描述】:

假设你有一个操作 D 定义为 D(L) = {nm| n,m ∈ L} 其中 L 是 SIGMA 上的语言。如果 L 是正则的并且 D(L) 也应该是正则的。

我试图通过这样做来证明这一点:

正则语言的定义:如果存在 L = L(M) 的 DFA M,则语言 L⊆Σ* 是正则语言。 所以我们知道,由于 L 是正则的,所以有一个 DFA A = (Q, Σ, δ, q0, F),包括:

  1. 有限状态集 (Q)

  2. 称为字母表 (Σ) 的有限输入集

  3. 一个转移函数(δ : Q × Σ → Q)

  4. 开始状态 (q0)

  5. 接受状态(F⊆Q)

接受L。所以应该有一个NFA L' = (Σ, Γ, S, σ0, δ, w):

  • Σ 是输入字母表(一组有限的非空符号)。
  • Γ 是输出字母表(一组有限的非空符号)。
  • S 是有限的非空状态集
  • σ0 为初始状态
  • δ 是状态转移函数
  • w 是输出函数。

这对吗?

【问题讨论】:

    标签: regular-language dfa nfa


    【解决方案1】:

    你的证明让我很困惑。我正在写提示以证明语言 D: = { nm |如果语言 L 是正则,则 n, m ∈ L} 是正则的。

    提示:D 是两种常规语言 Ln 和 Lm 的串联(笛卡尔积),其中 Ln = Lm = L — hance D 也是一种常规语言。检查wiki

    绘制 DFA,

    1. 为 La 绘制 M(Ln) 一个 DFA,起始状态为 Qn0 和 Fn 是一组最终状态。
    2. 为 Lm 绘制一个 DFA,M(Lm),起始状态为 Qm0 和 Fm 是一组最终状态。
      两个 DFA 相同,只是状态名称不同。
    3. 从 Fn 中的每个最终状态添加空转换,以开始状态 Qm0。 — 这是 NFA。
    4. 一一删除空转换 - 现在生成的 DFA 接受语言 D。

    注意:如果你不解释它如何完全接受语言 D,你的老师不会给你满分。你必须写第五点 - 因为在消费 an ∈ L 后,你达到了 F 中的最终状态之一n,然后在不消耗任何符号的情况下切换到 DFA M(Lm) 的开始状态,然后在处理任何 m ∈ L 后,您到达 a Fn 中的最终状态有可能证明 D 是常规语言。选择一本好书,学习如何正式编写这些步骤。

    写正则表达式:

    1. 假设 Ln 有 N 个正则表达式
    2. 假设 M 正则表达式为 Lm
    3. 那么 NM 就是 D 的正则表达式

    再次解释 NM 如何接受 D。

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 2019-07-09
      • 1970-01-01
      • 2017-03-13
      • 2021-12-11
      • 2013-05-22
      相关资源
      最近更新 更多