确定性多项式解的非确定性多项式解

时间:2012-01-26 17:30:41

标签: algorithm time-complexity np

非确定性多项式解决方案总是不可取决于确定性多项式解决方案是否属实?请给出适当的推理。

2 个答案:

答案 0 :(得分:2)

每个确定性多项式解都可以转换为非确定性多项式[因为PNP的子集]

我们不知道对面是否真实[我们不知道P = NP还是P!= NP],所以如果P!= NP,则存在[所有NP-Complete个问题],我们有非确定性多项式解,但不是多项式解。

因此,既然我们可以将确定性多项式解转换为非确定性多项式解,但我们不知道我们是否可以做对位 - 如果我们有一个确定性多项式解 - 我们实际上也有不确定性的多项式解

答案 1 :(得分:0)

作为amit的信息性答案的补充,有时 - 对于实际输入 - NP解决方案可以更好。例如,考虑具有T(n)= 2 ^ n的NP问题的指数算法。考虑一个问题,其最佳案例时间复杂度可证明为T(n)=(1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 ,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,009)N ^ 2。这是多项式,但我可能宁愿解决指数问题。

如果问题是,对于同一问题,您是否更倾向于使用指数或更差的解决方案或多项式解决方案,通常答案是:它取决于您的输入大小。对于大多数合理大小的输入,具有较高渐近复杂度的算法可以更快;尽管使用低复杂度算法是有意义的,但在实践中(或在宇宙的生命周期中)可能永远不会达到这一点。

编辑:它还可以取决于输入的其他特征。例如,quicksort可以胜过mergesort,虽然mergesort在最坏的情况下比quicksort更好。如果您知道您的数据不太可能采用快速排序的最差情况,那么快速排序可能值得尝试。