[MIT6.006] 23. Computational Complexity 计算复杂度
Posted alvinai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[MIT6.006] 23. Computational Complexity 计算复杂度相关的知识,希望对你有一定的参考价值。
这节课主要讲的计算复杂度,一般有三种表达不同程度的计算复杂度,如下图所示:
- P:多项式时间;
- EXP:指数时间;
- R:有限时间内。
上图还给了一些问题的计算复杂度的对应结果,关于一些细节例如NP, NP-hard等,下面会深入讲到。
在现实应用中,大多数决策问题是不可计算的。
我们先来看下NP是什么?
答:NP是一种计算复杂度,指在运气好的算法下,决策问题能在多项式时间下得到解决。另外,也可以被理解为:决策问题的解决方法能在多项式时间下被检查。百度给出的解释是:NP类问题:所有的非确定性多项式时间可解的判定问题构成NP类问题。
俄罗斯方块就属于NP类问题,但是在数学界有个未解之谜,就是“是否P≠NP?”,通常的说法是认为,NP不能工程上的实现,而且解决问题比检查问题难,所以P≠NP。如果它们不相等,则俄罗斯方块的时间上的计算复杂度为NP-P,因为俄罗斯方块是个NP-hard问题(即每个子问题都属于NP问题)。
在之前的算法课里,碰到过难解问题,通常做法是将它转化为可解问题去做。这种转化叫做Reduction。一些转化例子如下图所示:
以上是关于[MIT6.006] 23. Computational Complexity 计算复杂度的主要内容,如果未能解决你的问题,请参考以下文章
[MIT6.006] 11. Integer Arithmetic, Karatsuba Multiplication 整型算术,Karatsuba乘法
[MIT6.006] 6. AVL Trees, AVL Sort AVL树,AVL排序