Answers:
不,一个ñ P
这样,无可争议的问题就变得空洞无力了:假设我们可以在多项式时间内解决一个问题。然后,我们使用证明它是可计算且不可计算的矛盾是无可辩驳的证明。从这个错误中,我们可以得出任何结论,即对于正在考虑的任何N P
例如,考虑停机问题^ h
因此,只需调用解决停顿问题的多项式算法,就可以解决多项式时间内的任何N P
这种减少是没有用的,因为它所做的只是告诉是否“如果为假,则为某物”。我们已经知道,没有针对不可解决问题的多重时间算法。
在这个问题上,这个社区似乎有些混乱。我将给出详细的答案,以期清理水面并阐明可计算性与NP硬度之间的关系。
首先,我相信对所涉及的各种定义保持清晰明确将解决许多困惑。
甲串是从一些固定的有限字母表字符的有限序列。
一个决策问题是一组字符串。(该集合通常是无限的。)将决策问题视为测试某些属性的字符串:具有该属性的字符串在集合中,而没有该属性的字符串则不在。
假设我们有两个决策问题,一个和乙。假设存在多项式p (x ),并且算法M有算法M使得A对于所有字符串s,A是多项式时间可归约于B 的,
A B A B p(x) M s
- 如果为M提供输入s,则M停止的步数少于p (| s |)步(其中| s |是字符串s的长度),并输出字符串M (
M s M p(|s|) |s| s s )。M(s) - 当且仅当 M (s )时s在 A中
s A M(s) 是在乙。B 如果对于每个NP决策问题A,决策问题B都是NP难题。
B A A 是可多项式化为B的多项式时间则。B 如果存在算法M,则对于所有字符串s,决策问题都是可计算的。
M s
- 如果为M提供输入s,则M暂停并输出“是”或“否”。
M s M - 如果s在A中,则输出为“ yes”,否则为“ no”。
s A
通过以上定义,我们可以立即弄清我认为可能是您的问题的根源:决策问题,减少量或NP硬度的定义中没有要求决策问题是可计算的。这些定义将决策问题视为任意字符串集是很有意义的,而这些集确实确实很讨厌。
剩下两个问题:
问题1更容易回答。有两种特别重要的方法可以找到难以解决的NP问题决策问题。首先是停机问题:停机问题,^ h,具有每个属性可计算的决策问题是多项式时间还原到^ h。由于NP问题是可计算的,因此每个NP问题都是多项式时间可归约为H,因此H
建立不可计算的NP困难问题的另一种重要方法是观察到,我们可以将任何已知的NP困难问题与任何已知的不可计算问题结合起来。令A为NP-hard,而B为不可计算。形成决策问题甲⊕ 乙如下:甲⊕ 乙包含表单的那些字符串“0,接着在一个字符串甲 ”和那些形式的“1,随后在一个字符串乙 ”。甲⊕ 乙是NP难题,因为我们可以把(任何问题的)的任何减少到甲成还原成甲⊕ 乙
问题2相当棘手,但实际上存在一些不可争议的决策问题,这些问题并非NP难的(假设P ≠ NP)。尤瓦尔的好答案明确地构造了这样的决策问题。(有关在房间里,任何“科恩任何可计算理论家Π 0 1
NP硬度和不可计算性都表示一个问题在很一般的意义上是“困难的”,但是它们是非常不同的,不应将其归为同一类现象。具体地说,NP硬度是“正性”属性:从某种意义上说,NP难题A很难解决,只要获得A的备忘单,就可以解决一类难题
(“强制”的方式,是用于生产“科恩的技术Π 0 1通用的”我提到。要非常非常模糊,迫使是制作东西的一般方式是“通用的”,因为它们具有没有积极的性质,也没有任何消极的性质。这就是为什么强迫会直接产生一个既不可计算又难于解决NP问题的问题。)
不。NP-Hard表示它比最难的NP问题同样困难。凭直觉,无法计算将使它比NP困难得多。
维基百科:
存在NP难但NP不完全的决策问题,例如停止问题。
每个人都知道这是不可计算的
problem()
可以调用的函数。
For completeness, let us prove the following theorem:
There exists an uncomputable language which is not NP-hard if and only if P≠
≠ NP.
If P=NP then any non-trivial language (one which differs from ∅,{0,1}∗
Now suppose that P≠
In step 2i
In step 2i+1
After infinitely many steps, we get a {0,1,?}
The resulting language L
A language L
ANTM={⟨M,w⟩∣M is a nondeterministic Turing machine that accepts w}
is undecidable and is NP-hard. For consider an L′∈NP
f(x)=⟨M,x⟩
I think what causes people to think there is no uncomputable NP-hard problem is that they miss the point that NP-hardness is a lower bound on the hardness of a problem, not an upper bound on their hardness like P or NP.
A language L being NP-hard means that it is above language in NP and that is. Now if you understand this what need is to show that there are arbitrary harder problem.
Let A
In computablity theory this is called jump of A and is denoted by A′. So A<A′ strictly. And nothing stops us from repeating this: A<A′<A″<A‴<...