1
20
|
2
12
让我们从“不确定性”开始。确定性机器一次可以处于一种状态。我们真的可以做。不确定性机器是一种理论结构,一次可以处于多个状态。(这里与量子计算有相似之处,但就我们的目的而言,它们是误导性的。别理他们。) 如果我们想用确定性机器来解决一个问题,我们启动它,它会经过一系列的步骤来试图找到一个问题。如果我们使用不确定性机器建模,它可以同时经历所有可能的一系列步骤。 我们将要关注的一组问题是决策问题:给定一个问题陈述,要么有解决方案要么没有。找到一个解决方案或报告没有。例如,假设您有一组逻辑语句:a或not-B,B或C或D,not-D或a或B。。。。给定一个任意的集合,你能找到所有变量的真值吗,这样所有的语句都是真的?
假设我们可以在确定的机器上用多项式时间来解决这个问题。问题在P中,假设我们可以在不确定机器上用多项式时间求解,这与在确定机器上用多项式时间验证所提出的解是一样的。那么这个问题就是NP问题。这里的诀窍是我们不能制造出真正的不确定性机器,所以问题在NP中并不意味着它是可以解决的。 现在开始NP完全。P中的所有问题都是NP。对于NP中的问题A和B,我们可以说,如果A在P中,B也在P中。这是通过找到一种方法,将B重新表述为A类问题来实现的。一个NP完全问题是这样的,如果它在P中,NP中的每一个问题都在P中。正如你可能猜到的,找到一种方法来重述每一个可能的问题作为一个特定的问题是不容易的,我只想说,上面有逻辑陈述的问题(可满足性问题)是第一个被证明的NP完全问题。在那之后就容易多了,因为只要证明问题C在P中,可满足性也在P中。
|
3
10
NP被称为NP(nondeterministicpolymonarytime),因为一个NP问题可以在多项式时间内用不确定图灵机求解。 |
4
7
让我们从NP开始:在NP中,N表示“不确定性”,P表示“多项式时间”。如果你有一个不确定的图灵机,它可以在每个周期分支,并行地探索各种可能性,那么这类问题就可以在多项式时间内得到解决(“验证解决方案”的替代定义最近很流行,但它没有明确“N”是什么意思)。不确定性机器可以比作拥有无限多个处理器的并行计算机,并且具有
如果说问题Q是NP难的,那么NP中的任何问题都可以归结为问题Q(在多项式时间内)。由于问题之间的“可化为”关系是一种序关系,你可以把“NP-hard”看作“至少和所有NP问题一样难”的意思。
|
5
5
NP是所有决策问题的集合,对于这些决策问题,“是”的答案有效地证明了答案确实是“是”的事实。更准确地说,这些证明必须在多项式时间内由 确定性 图灵机
NP-Hard是任何至少和NP中最难的问题一样难的问题。因此,可以说这个问题是NP难的,因此是NP难的。 如果NP完全中的任何一个问题都能快速求解,那么NP完全中的每一个问题都能快速求解。因此,这套完整的NP问题是可以解决的。 编辑2 : Wikipedia's Complete (Complexity) 文章指出: |
Liana78 · 查找和最小化合并排序算法运行时分析 6 年前 |
Lamaman · 素数算法的复杂度是多少? 6 年前 |
irish Senthil · 声明变量是否对大O表示法有效? 6 年前 |
Monk · 为什么大Oh不总是算法的最坏情况分析? 6 年前 |
Faisal Alzahrani · 用Java计算程序的Big-O 6 年前 |
Dazcii · 如何找到3个嵌套循环的复杂性 6 年前 |
svaerth · 使用巨型哈希表在多项式时间内求解数独 6 年前 |