计算复杂性
时间复杂性
度量复杂性
时间复杂度
令
其中
若
大 和小 记法
因为算法精确运行时间通常是一个复杂的表达式,所以一般只估计它的趋势和级别。
通过 渐近分析 , 只考虑算法的时间的表达式的最高次项,忽略低次项和常数系数,可以试图了解算法在长输入上的运行时间。
- 大
记法:
令和 是定义在非负整数集合上的函数。 当且仅当存在一个常数 和一个整数 ,使得对于所有的 ,有 。 - 小
记法: 当且仅当对于所有的常数 ,存在一个整数 ,使得对于所有的 ,有 。
或。
时间复杂性类
P 类
重要性
- 对于 所有 与单带确定
等价的 模型, 类是相同的。 - 无论你使用的是单带图灵机、多带图灵机,还是其他等价的计算模型,只要一个问题在某个模型上可以在多项式时间内判定(属于 P 类问题),那么在其他模型上也可以在多项式时间内判定。
类大致对应于计算机上 的问题。
NP 类
其中
非确定性图灵机中猜测的步骤不算做时间复杂度。 例如选取一个子集 / 一个路径 / 一个排列等。
验证机
称
判断一个问题是否属于
coNP 类
NP 完全问题
若这些问题中的任一个找到
这些问题称为
问题
理论意义
- 研究
和 之间的关系可以只关注于一个问题的算法。 - 由此可以说明一个问题目前还没有找到
时间算法。
多项式时间归约
类似于问题的规约,多项式时间规约定义了问题求解的有效性传递。
若存在多项式时间图灵机
称
函数
即
P 类问题的多项式时间归约
若