“等式两端分别是P与BPP。这是一个条件性结论。它既没有无条件证明 P=BPP,也没有把假设简化为 P≠NP、某个问题最坏输入很难,或仅在无穷多个长度上需要大电路。[1,2]”
形式陈述
复杂度类 P 是确定性多项式时间语言的集合:
因此
量词是“对每个语言存在一台机器和一个固定指数,再对所有输入作保证”。允许指数依赖输入长度会让
取所有固定次数的多项式,而非预先选定某个
直觉
P 是复杂度理论的粗粒度“可高效判定”基线。它表达存在一个最坏情况下的确定性多项式算法,不评价这个算法的常数、次数、缓存行为或现实输入分布。
图中的
这个基线的价值来自闭合性和模型稳健性,而不是“多项式总是实用”的经验判断。若任务的输出不是一个是/否位,就应先明确其判定版本或另用函数复杂度类,不能仅凭口语上的“容易求解”把它放进 P。
例子与边界
显式图上的连通性
对无向图的邻接表编码,判定给定顶点
伪多项式算法没有自动证明 P 成员性
0–1 背包的常见动态规划按容量建立
保证的边界
启发式在常见实例上快速、随机算法以高概率快速、或某个实现的平均时间良好,都不是 P 定义要求的确定性最坏界。整数改用一元编码可能让原本伪多项式的算法变成输入长度的多项式,但那已经是不同的编码语言。P 也不应与按多数接受概率定义的 PP 混淆。
完整容量 DP:状态、回溯与二进制账单
把前述背包例子的计费展开。输入显式列出
这个 动态规划把可行子集按是否包含第
对
| 已处理件数 | 1 | 2 | 3 | 4 | 5 | |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 0 | 10 | 10 |
| 2 | 0 | 0 | 0 | 8 | 10 | 10 |
| 3 | 0 | 0 | 6 | 8 | 10 | 14 |
回溯从 011。相等时固定不选即可保留最优值。保存所有行或父决策支持这次回溯;若只用两行滚动存储,需要另加重算或决策保存,不能声称最优值滚动数组自动附带完整见证。
现在固定一种具体自分隔编码:令
本例各字段长度依次为
若只统计表访问和整数加比较,初始化加填表需
当容量改为
推论与应用
P 对补、并和交封闭:运行原判定器后交换接受与拒绝即可判定补语言;顺序运行两个判定器并组合结果,只会相加多项式时间。每台确定性机器也可视为不分支的非确定性机器,因此
这项包含是否严格,仍是未解决的 P 与 NP 问题。时间为多项式必然只访问多项式个工作格,所以还有
在已知精确算法仍不实用时,近似比、参数化问题和Meet-in-the-Middle分别改变解质量、复杂度参数或指数搜索结构。这些是三种不同的算法承诺,不能由“属于 P”或“尚无 P 算法”替代。
NP把基线从确定性求解改为多项式时间验证,形成后续归约与完全性理论的入口。
平均情形复杂性把输入分布加入问题,按运行时间正阶矩度量,并证明带概率支配的归约保持性。描述复杂性则在显式编码的有序有限结构上,用固定 FO(LFP) 公式刻画 P;其可达性算例展开全部迭代,并说明固定公式与输入顺序的作用。
参考资料
- Sanjeev Arora and Boaz Barak, Computational Complexity: A Modern Approach, Cambridge University Press, 2009, §2.1.
- Michael Sipser, Introduction to the Theory of Computation, 3rd ed., Cengage, 2013, §7.2.
- David P. Williamson、David B. Shmoys,The Design of Approximation Algorithms,2011,§3.1,Definition 3.2:数值编码与伪多项式界。本页独立给出按容量的完整递推、54位编码及恢复账单。