【问题标题】:proving a language is in NP/EXPTIME/Turing decider/turing recognizable (cs theory)证明语言在 NP/EXPTIME/Turing 判定器/turing 可识别(cs 理论)
【发布时间】:2011-12-08 04:26:44
【问题描述】:

通过练习测试为我的 cs 理论考试做准备。在问题中,我需要说明一种语言属于哪个“区域”(RL/DFSA/NFSA)/(CFG/CFL/NPDA)/(NP)/(EXPTIME)/(DL/DTM/NDTM)/( TR) 我意识到我不确定如何证明一种语言会超过(CFG/CFL/NPDA)区域。这里有 2 个问题(3 和 5),我知道它们不能在那个区域,因为它们会导致上下文无关语言的泵引理失败,我如何确定它们将属于哪个区域?


编辑:答案是 3 和 5 都属于 NP,但为什么呢?

【问题讨论】:

  • 更适合 cstheory.stackexchange.com。
  • 没有。 cstheory.SE 是针对研究级别的问题,而不是基本的“这种语言是 CFL 吗?”和“这种语言是 NP 吗?”类问题(并不是说这些问题有什么不好,只是它们不属于 cstheory.SE 的范围)。
  • 这个问题对于即将到来的Computer Science Stack Exchange 来说是完美的。所以,如果你想有一个地方来回答这样的问题,请继续帮助这个提案起飞!

标签: computer-science context-free-grammar turing-machines


【解决方案1】:

您说您可以证明 3 和 5 不在 NPDA 区域内。从那里接。你继续下一个,NP。在这里,您使用各种受限的图灵机。

我可以在对数空间的线性时间内识别语言 3。数一个符号。计算 b 符号。计算 c 个符号。比较计数。这是对数据的线性扫描加上二进制数的比较(小于输入长度的线性时间)。线性时间是 NP 的一个子集。你的教授对你的要求有多详细(即你是否需要明确地引入第三个字母符号来分隔你的计数?你需要说明如何比较二进制数吗?)?

要解决 5,您需要知道二进制乘法的界限。数a,数b,数c。将 a 的计数乘以 b 的计数。将结果与 c 的计数进行比较。这是对输入的线性扫描,加上二进制乘法的复杂性(但请记住,您要相乘的数字是 log(n) 位)。由于您的区域不是很严格,至少可以说我们受多项式时间的约束。因为 P 是 NP 的子集,所以我们在那里。

高于此值,我希望您能得到更多关于问题的冗长描述。我假设 PSPACE 在您的 EXPTIME 区域中,并且想到的典型示例是量化的布尔公式。它有点像 SAT(库克定理证明 SAT 是 NP-Hard),但有量词。有一个很好的证据表明 QBF 是 PSPACE 完备的,这与库克定理非常相似。我猜你的上下文相关语言显然不属于另一个区域的子集也属于这里(以防你得到该语言的生产规则描述)。

下一个区域是停止的图灵机。如果你能描述一个算法,无论多么荒谬(它必须是荒谬的,否则它会被之前的区域捕捉到),它可以停在这里。

下一个区域是关于赖斯定理的。维基那个坏男孩。用赖斯定理再次证明所有的证明都很容易。这个区域比为第一个区域提出正则表达式或 FSA 更容易。

【讨论】:

    猜你喜欢
    • 2017-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-12
    • 2011-10-02
    • 2017-10-28
    • 2012-11-20
    相关资源
    最近更新 更多