【问题标题】:If pref(L) is regular, does that imply L is also regular?如果 pref(L) 是正则的,这是否意味着 L 也是正则的?
【发布时间】:2015-01-22 12:11:32
【问题描述】:

我有这个家庭作业练习:

假设我们有一种语言 L。我们知道语言 pref(L)L 的所有前缀,包括 L 本身中的所有单词)是一种常规语言。这是否意味着语言L 也是常规语言?

我将pref(L) 的 NFA 划分为(通过来自 q0 的 2 个 epsilon 转换)到 2 个单独的 NFA,其中 1 个定义 L,另一个定义 pref(L)\L

我实际上得到的是L 的 NFA,这意味着它是常规的。

我不确定这种方式是否合法,或者是否合法。我很高兴有另一个线索。

提前致谢,

亚龙。

【问题讨论】:

  • 这个问题似乎是题外话,因为它是关于通用计算机科学,而不是实际编程。试试 cs.stackexchange.com。

标签: regular-language dfa nfa automaton


【解决方案1】:

如果pref(L)是正则的,那么L也不一定是正则的。

例如,让 Σ = {a} 是一元字母表。我将声称如果 L 是 Σ 上的任何无限语言,那么 pref(L) = Σ*。要看到这一点,首先要注意 pref(L) ⊆ Σ* 因为每个 pref(L) 都是 Σ 上的语言。现在,考虑 Σ* 中的任何字符串,其形式必须为 an。如果 L 是 Σ 上的无限语言,它必须包含至少一个形式为 am 的字符串,其中 m ≥ n。那么 an 将是 am 的前缀,所以 an ∈首选项(L)。这表明 Σ* ⊆ pref(L) 和那个 pref(L) ⊆ Σ*,所以在这种情况下 Σ* = pref(L)。

现在,我们需要做的就是在 Σ = {a} 上找到一个非常规语言。例如,以语言 { a2n | n∈ N } 长度为 2 的幂的所有字符串。可以使用 Myhill-Nerode 定理或抽水引理证明这种语言不规则。但是,通过上面的结果,我们知道pref(L)是一个正则语言。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2016-08-25
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-20
    • 2021-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多