|||
我们已经从NP的二个定义等价的流行观点切入,通过解读NDTM、算法复杂度、停机问题,揭示了NP流行定义将NP与P混淆,导致NP的“不确定性”消失,是有“P versus NP”世纪难题的困惑。
这里,我们再来解读另一个重要概念NP-hard,进一步揭示NP流行定义带给人们观念认知的混淆和混乱:
一,流行观念:NP-hard
于流行观念,NP-hard与“优化问题”有关,而NP与“判定问题”有关:
1,优化问题与判定问题(https://en.wikipedia.org/wiki/Optimization_problem)
In mathematics and computer science, an optimization problem is the problem of finding the best solution from all feasible solutions. Optimization problems can be divided into two categories depending on whether the variables are continuous or discrete. An optimization problem with discrete variables is known as a combinatorial optimization problem. In a combinatorial optimization problem, we are looking for an object such as an integer, permutation or graph from a finite (or possibly countable infinite) set.
For each combinatorial optimization problem, there is a corresponding decision problem that asks whether there is a feasible solution for some particular measure. For example, if there is a graph G which contains vertices u and v, an optimization problem might be "find a path from u to v that uses the fewest edges". This problem might have an answer of, say, 4. A corresponding decision problem would be "is there a path from u to v that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'.
2,NP与NP-hard(https://en.wikipedia.org/wiki/NP-hardness)
NP : Class of computational problems for which a given solution can be verified as a solution in polynomial time by a deterministic Turing machine.
NP-hard :Class of problems which are at least as hard as the hardest problems in NP. Problems that are NP-hard do not have to be elements of NP; indeed, they may not even be decidable.
Consequences:
-If P ≠ NP, then NP-hard problems cannot be solved in polynomial time;
-If an optimization problem H has an NP-complete decision version L, then H is NP-hard.
二,解读流行观念:NP-hard
首先,从逻辑的角度,NP-hard的流行定义:Class of problems which are at least as hard as the hardest problems in NP,虽说没错;但从认识问题的角度,此定义却几乎是什么也没说。这也正是为什么人们学完NP完备理论就很快将之忘得干干净净的根本原因。
其次,追本溯源,人们当初遭遇到一类找不到多项式时间算法求解的问题时,这些问题正是以“优化问题”的面貌出现的,优化问题有两类,离散性的优化问题被转换为“判定问题”。“物有本末,事有终始”,也就是说,NP概念的源头在“优化问题”上。然而,由于“优化问题”的解具有不可验证性,人们不是面对现实、直探其“不确定性”的本质,而是采取回避的态度,给出一个“特定的界值(some particular measure)”,将“优化问题”转换成所谓的“判定问题”,让转换后的“判断问题”的“解”变得“可验证(确定性)”,然后用这个“可验证性”去定义NP,其结果却是让原初“优化问题”的“不确定性”消失了,导致人们对NP的误读至今!
再次,正如我们的分析,由于流行的“NP问题”的定义中,不确定性消失了,所以当初提出问题的意义也就消失了,但“问题”仍然存在,这就是原有的理论体系中不得不给这个无法驱除的不死的冤魂留下NP-hard 这个名称的原因。
三,从我们的“不确定性问题(NP)”的角度解读NP-hard
于我们的NP理论,NP被还原成“不确定性问题(Nondeterministic Problem)”,故“优化问题”与其对应的“判定问题”都是NP,由于“优化问题”的“最优解”具有不可验证性,而“解的可验证性”是计算求解问题的一个必要条件,故通常将“优化问题”转化为“判定问题”来解决。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-24 04:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社