【问题标题】:M is a Turing machine that accepts string w and does not accept string εM 是一个图灵机,接受字符串 w,不接受字符串 ε
【发布时间】:2016-07-14 23:34:56
【问题描述】:

我需要证明这种语言是否可识别:

{ ⟨M, w⟩:M是图灵机,接受字符串w,不接受字符串ε}

我认为我可以对 ATM 进行缩减,但是如何处理空字符串?

【问题讨论】:

  • 我很确定你会在cs.stackexchange.com找到更适合这个问题的人
  • 提示:该语言无法识别。
  • 谢谢!这应该意味着有一个函数可以将 Atm 的补码映射到我的语言。我可以假设 ~Atm 的识别器并输出相反的结果,但仍然不能处理空字符串。

标签: theory turing-machines computation


【解决方案1】:

这是从 ATM 的补码减少到您的语言的一种方法。

给定一个 TM M 和一个字符串 w,构建这个 TM/字符串对:

M' = "On input x:
         If x = "iheartquokkas", accept.
         Otherwise:
            Run M on w.
            If M accepts, accept;
            If M rejects, reject;
            (Implicitly: if M loops, loop.)"
w' = "iheartquokkas"

首先,假设 M 不接受 w。然后机器 M' 确实接受字符串 w',因为它被编程为这样做。此外,当您在 ε 上运行 M' 时,它将在 w 上运行 M 并且永远不会接受,因为 M 不接受 w。因此 M' 接受 w' 但不接受 ε,所以 ⟨M', w'⟩使用您的语言。

其次,假设 M 接受 w。然后当你在 ε 上运行 M' 时,它会接受,所以不是 M' 接受 w' 而不是 ε。因此,⟨M', w'⟩不是你的语言。

您现在有一个从 ATM 的补码到您的语言的映射缩减,因此您的语言无法识别。

现在,你能证明它不是可共同识别的吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-07-02
    相关资源
    最近更新 更多