常规语言L和D(L)

时间:2015-05-11 18:29:56

标签: regular-language dfa nfa

假设您将操作D定义为D(L)= {nm | n,m∈L}其中L是SIGMA上的语言。如果L是规则的,D(L)也应该是规则的。

我试图通过以下方式证明这一点:

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

  1. 一组有限的状态(Q)

  2. 一组有限的输入,称为字母(Σ)

  3. 过渡函数(δ:Q×Σ→Q)

  4. 开始状态(q0)

  5. 接受州(F⊆Q)

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

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

    这是正确的吗?

1 个答案:

答案 0 :(得分:1)

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

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

绘制DFA,

  1. 绘制,M(L n )用于L a 的DFA,其起始状态为Q n0 且F n 是最终状态的集合。
  2. 绘制,M(L m )为L m 的DFA,起始状态为Q m0 且F m 是最终状态。
    除了不同的州名之外,两个DFA都是相同的。
  3. 从F n 中的每个最终状态添加空转换,以启动状态Q m 0 。 - 这是NFA。
  4. 逐个删除空转换 - 现在生成的DFA接受语言D。
  5. 注意:如果你不解释它是如何接受语言D的话,你的老师不会给你满分。你必须写第五点 - 因为当你消耗一个∈L你到达最后一个状态时F n ,然后不消耗任何符号,你转移到DFA M的开始状态(L m )然后处理任何m∈L你到达到F n 的最终状态这证明D是常规语言。选一本好书,学习如何正式编写这些步骤。

    写正则表达式:

    1. 假设L n
    2. 的N正则表达式
    3. 假设L m
    4. 的M正则表达式
    5. 然后NM将是D
    6. 的正则表达式

      再次解释NM如何接受D。