计算复杂度速览¶
计算复杂度研究问题随输入规模增长时需要多少资源。资源通常包括时间和空间。
神经网络笔记中不需要完整复杂度理论,但理解几个类别有助于判断:
- 为什么精确求解量子 many-body 问题困难。
- 为什么采样和近似方法重要。
- 为什么量子计算复杂度类和经典复杂度类不同。
P¶
P 是 deterministic polynomial time。
如果一个问题可以由确定性算法在多项式时间内解决:
则它属于 P。
直觉:P 中的问题通常被认为是经典计算上可有效求解的。
NP¶
NP 是 nondeterministic polynomial time。
等价说法:如果给定一个候选解,可以在多项式时间内验证它是否正确,则问题属于 NP。
典型例子是 SAT。给定一个布尔赋值,可以快速验证公式是否满足。
NP-complete 与 NP-hard¶
NP-complete 问题满足:
- 它属于 NP。
- 所有 NP 问题都可以多项式归约到它。
NP-hard 则不要求问题本身属于 NP,只要求它至少和 NP 中最难问题一样难。
#P¶
P 是计数复杂度类。它不只问“是否存在解”,而是问“有多少个解”。¶
例如:
计数问题通常比判定问题更难。
统计物理配分函数常常具有计数味道:
它需要对指数多状态求和,所以精确计算通常困难。
BPP¶
BPP 是 bounded-error probabilistic polynomial time。
它允许随机算法,只要求错误概率有界。例如错误概率小于 \(1/3\),并且可以通过重复运行降低。
Monte Carlo 方法通常属于这种随机近似思想。
BQP¶
BQP 是 bounded-error quantum polynomial time。
它描述量子计算机可以在多项式时间内以有界错误概率解决的问题。
Shor 分解算法说明某些问题在量子计算机上可能比已知经典算法快得多。
QMA¶
QMA 是 Quantum Merlin-Arthur。
可以粗略理解为 NP 的量子版本:证明者给出一个量子态作为证据,验证者用量子多项式时间验证。
局域 Hamiltonian 问题是 QMA-complete 的典型例子。这和量子 many-body 基态问题的困难性直接相关。
PSPACE 和 EXP¶
PSPACE 包含可用多项式空间解决的问题。
EXP 包含可用指数时间解决的问题。
一般认为:
但很多包含关系是否严格仍是开放问题。
和 NNQS 的关系¶
电子结构和量子 many-body 问题的 Hilbert space 维度通常指数增长:
这使得完整存储波函数向量不可行。NNQS 的目标不是改变问题的最坏情况复杂度,而是寻找一个可训练的压缩表示:
实际成功依赖物理结构:局域性、对称性、低能态纠缠结构、可采样性,以及优化是否能找到好参数。