这是我的第一个stackoverflow问题,所以要温柔。如果已经被打死了,我会事先道歉......我在NP上读了一些帖子,但我没有找到一个诱人的答案我的问题(如果有的话,我想出了一些新的)。简言之:
我怀疑第一个问题的答案是响亮的'是',而第二个问题的答案是响亮的'不'。
在第一种情况下,示例问题可能是“给定S集合,S的子集T和具有域2 ^ S的函数f,确定T是否最大化f”。对于通用的S,T和f,如果不检查S的所有子集X的f(X),你甚至无法验证这一点,对吗?
在第二种情况下......好吧,我承认这更像是一种预感。出于某种原因,似乎答案是否应该包含一位(用于决策问题)或任何(有限)位数......或换句话说,为什么你不应该考虑TM停止后留在磁带上的符号作为“回答”的一部分。
编辑: 实际上,我有一个问题......你的结构如何表明功能问题“比决策问题更难”?如果有的话,你已经表明,回答功能问题并不比决策问题更容易......这是微不足道的。也许这是以粗心的方式提出这个问题的错。
给定NP中的TM T1解决了问题“X是问题P的解决方案”变量X和(为了论证)固定P,是否保证NP中的TM T2会停止无处不在的T1停止,它停止在“停止接受”状态,并离开,例如磁带上X的二进制表示形式?
答案 0 :(得分:14)
(1)是的,有决定性问题是可以判定的但不是NP。这是time hierarchy theorem NP NEXP的结果,因此任何NEXP难问题都不在NP中。典型的例子就是这个问题:
鉴于用二进制编写的非确定性图灵机 M 和整数 n , M 最多接受空字符串< em> n 步骤?
这个问题当然是可判定的(只是模拟长度为 n 的 M 的所有计算路径,如果看到任何接受的话)。
有关更多NEXP完整问题,请参阅cstheory.stackexchange.com上的this question。当然,在NEXP之外还有一些决策问题:实际上,它们中有exponential hierarchy个......
(2)你的第二个问题的答案是否定的:功能问题并不比决策问题困难。 (在特定技术意义上的“不比硬”。)假设我们有一个函数问题,要求输出 N 。然后是一个决策问题,它接受输入 k 并询问 N 的 k 位是否为1.解决每个位的决策问题在答案中,你已经完成了!
例如,FSAT(找到令人满意的布尔公式赋值的问题)可以是polynomial-time reduced到SAT(确定是否 a的问题布尔公式具有令人满意的赋值)。假设您可以解决SAT问题,并且要求您为公式φ找到令人满意的分配。考虑公式φ中的第一个变量 x ,并询问SAT是否满足 x ∧φ。如果是,则 x 为真的φ必须有令人满意的分配;如果不是,并且φ是可满足的,则对于φ x 为假的φ必须有令人满意的分配。继续第二个变量 y ,询问 x ∧ y ∧φ(或¬ x ∧ y ∧φ,根据你的第一个问题的答案)是可以满足的。等等公式中的每个变量。
[我应该对这个例子添加一个重要的警告。在这里,SAT和FSAT是“自然”相关的:他们都关注同一类事物,即满足公式的赋值。但在我的观点中,搜索一般可以简化为决策,我使用了关于输出的 k 位的高度人为的决策问题。因此,虽然搜索减少到决策,但它不一定会减少到自然对应的决策问题。特别是,Bellare和Goldwasser表明有时搜索不能如此减少。]