超过常规语言 L 和 D(L)

Posted

技术标签:

【中文标题】超过常规语言 L 和 D(L)【英文标题】:over regular Languages L and 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),包括:

    有限状态集 (Q)

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

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

    开始状态 (q0)

    接受状态(F⊆Q)

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

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

这对吗?

【问题讨论】:

【参考方案1】:

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

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

绘制 DFA,

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

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

写正则表达式:

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

再次解释 NM 如何接受 D。

【讨论】:

以上是关于超过常规语言 L 和 D(L)的主要内容,如果未能解决你的问题,请参考以下文章

为常规语言抽取引理

使用闭包属性证明正则性

为啥差异列表比 Haskell 中的常规连接更有效?

vi 常规用法

如何从异步迭代器中获取常规迭代器?

2019银川网络赛L:Continuous Intervals