【学习笔记】复杂度问题

复杂度问题

前置知识:复杂度。

P

他的意思就是:存在一个算法,能在多项式时间解决该问题。

形式化的:

问题属于 \(P\),而且仅当存在图灵机中可以用 \(O(n^k)\) 的时间判定他

所有的多项式时间都可以称为P问题

NP

他的意思就是:给定一个解,可以在多项式时间内验算出来。

形式化的:

问题属于 \(\text{NP}\),仅当存在非确定型图灵机可以在多项式时间验算他。

等价的:存在多项式时间验算器 \(V\),使得:

\(x\) 是一个实例且 \(x \in L\),其中 \(L\) 是一种语言。

且存在证书 \(y\),其中 \(y\) 为候选解,且 \(|y| \le p(n)\)

且:\(V(x,y)\) 是接受的。

如何理解:

其中 \(V\) 是验算器,相当于一个函数,对于每一组输入 \(a, b\),他会输出“接受”和“拒绝”。

语言可以自行查询。

其中 \(|y|\le p(n)\),\(p\) 为某个多项式。

如果 \(|y| > p(n)\) 那么 \(y\) 就是一个指数级别的算法。

为什么是非确定性图灵机和他的性质有关,自行查阅。

整个式子的含义就是:

若答案真的是“是”,那么就一定可以找到一个足够短的证明 \(y\),让验证器 \(V\) 接受。

这保证了真命题一定有答案,且不会漏掉正确答案。

反之:

如果存在证书 \(y\) 使得 \(V(x,y)\) 接受,那么 \(x\) 是实例。

这保证了假命题不会被证明,且不能被欺骗。

归约

前置知识。

规约的核心思想是:如果解决 \(B\) 的方法可以解决 \(A\),那么称 \(A\) 归约到 \(B\)。

比如:

  • 一个人是否成年可以归约为年龄是否为 \(18\)

形式化的:

若 \(A\) 和 \(B\) 是判定问题,若存在可计算函数 \(f (f \in F)\),使得对于任意 \(x\):

\(x \in A \Longleftrightarrow f(x) \in B\)

称 \(A\) 归约到 \(B\)。

在形式化一点的:
\(\exists f \in F. \forall x \in \mathbb{N}. x\in A \Leftrightarrow f(x) \in B\)

我们写作:

\(A \le_F B\)

注意到:

\(A \le_F B\) 他的意思是:

  • 规约的方向是 \(A \to B\)。

  • 难度的方向是 \(B \ge A\),因为只是 \(\exists f \in F\),说明 \(B\) 的能力更强,反之,会 \(A\) 不一定会 \(B\)。

NP-Hard

如果所有 \(\text{NP}\) 问题都能用多项式时间归约到问题 \(H\),那么称:\(H\) 是 \(\text{NP-Hard}\)

形式化的:

\(H\) 是 \(\text{NP-Hard}\),而且仅当任意 \(L \in \text{NP}\),都有 \(L \le_p H\)

不难发现:

  • \(\text{NP-Hard}\) 问题至少和 \(\text{NP}\) 中最难的问题一样难。

  • 如果 \(\text{H}\) 能被多项式时间解决,那么所有 \(\text{NP}\) 问题都能被多项式时间解决,即 \(\text{P = NP}\)。

所以:

  • \(\text{NP-hard}\) 不一定属于 \(\text{NP}\)

  • \(\text{NP-hard}\) 不一定可以判定。

  • \(\text{NP-hard}\) 可以比 \(\text{NP}\) 难得多。

NP-Complete

\(\text{NP-Complete} = \text{NP} \cap \text{NP-Hard}\)

即:

  • \(\text{NP-Complete} \in \text{NP}\)

  • 任何 \(\text{NP}\) 问题都可以归约到 \(\text{NP-Complete}\)

不难发现:

  • \(\text{NP-Complete}\) 是 \(\text{NP}\) 中“最难”的问题。

  • 只要有一个 \(\text{NP-Complete}\) 问题有多项式算法,那么 \(\text{P = NP}\)。(来自\(\text{NP-Hard}\))

证明有点难,有没有人教教我qwq。

DTIME、NTIME

前置知识。

给定时间函数 \(t(n)\),定义:

\(DTIME(t(n))\) 为所有能在 \(O(t(n))\) 时间内被确定性图灵机判定的语言/问题的集合。

比如:\(\text{DTIME}(n^2)\) 表示在 \(O(n^2)\) 时间内能解决的问题。

不难发现

\[P = \bigcup_{k \ge 1} DTIME(n^k) \]

对应的,也有 \(\text{NTIME}\),对应的定义是非确定性图灵机的。

\[NP = \bigcup_{k \ge 1} NTIME(n^k) \]

EXP、NEXP、EXPSPACE

类 资源 限制
EXP 时间 指数
NEXP 时间 非确定性指数
EXPSPACE 空间 指数

EXP

\(\text{EXP}\) 又称 \(\text{EXPTIME}\)。

问题属于 \(\text{EXP}\),当且仅当存在一个确定性图灵机,在 \(O(2^{n^k})\) 的时间判定。

形式化的:

\[\text{EXP} = \bigcup_{k \ge 1} \text{DTIME}(2^{n^k}) \]

也就是说,只要时间是指数级的,就属于 \(\text{EXP}\)。

比如:

  • 广义国际象棋

  • 广义跳棋

  • 某些电路求值问题

不难发现:

\[P \subseteq \text{EXP} \]

而且:

\[P \subsetneq \text{EXP} \]

这是严格包含,由时间层次定理保证。

也就是说,确实存在一些问题,能在指数时间解决,但不可能在多项式时间解决。

但注意:

\[NP \subseteq \text{EXP} \]

是否严格,目前未知。因为如果 \(P = NP\),那么 \(NP\) 可能等于 \(P\),但仍然小于 \(\text{EXP}\)。

NEXP

\(\text{NEXP}\) 又称 \(\text{NEXPTIME}\)。

问题属于 \(\text{NEXP}\),当且仅当存在一个非确定性图灵机,在 \(O(2^{n^k})\) 的时间判定。

形式化的:

\[\text{NEXP} = \bigcup_{k \ge 1} \text{NTIME}(2^{n^k}) \]

直觉上,\(\text{NEXP}\) 就是 \(\text{EXP}\) 的“非确定性版本”,就像 \(NP\) 是 \(P\) 的非确定性版本。

它对应:

存在一个指数长度的证书,可以在指数时间内验证。

也就是说:

类 证书长度 验证时间
NP 多项式 多项式
NEXP 指数 指数

比如:

  • 广义棋类加上复杂规则

  • 某些组合优化问题的指数版本

  • 简洁表示的图上的问题

不难发现:

\[\text{EXP} \subseteq \text{NEXP} \]

因为确定性是非确定性的特例。

还有:

\[NP \subseteq \text{NEXP} $$\]

\text{NEXP} \subseteq \text{EXPSPACE}

\[ 是否严格,很多未知。 ### EXPSPACE > 问题属于 $\text{EXPSPACE}$,当且仅当存在一个确定性图灵机,使用 $O(2^{n^k})$ 空间判定。 形式化的: \]

\text{EXPSPACE} = \bigcup_{k \ge 1} \text{DSPACE}(2{nk})

\[ 也就是说,空间是指数级的,时间不限。 比如: - 带指数级内存的自动机 - 某些形式语言判定问题 - 广义棋类加上记忆 - 某些逻辑理论判定问题 不难发现: \]

\text{PSPACE} \subseteq \text{EXPSPACE}

\[ 而且: \]

\text{PSPACE} \subsetneq \text{EXPSPACE}

\[ 这是严格包含,由空间层次定理保证。 还有: \]

\text{NEXP} \subseteq \text{EXPSPACE}

\[ 因为非确定性空间可以确定性地模拟,代价是空间指数增长。 ### 他们之间的关系 目前已知: \]

P \subseteq NP \subseteq \text{PSPACE} \subseteq \text{EXP} \subseteq \text{NEXP} \subseteq \text{EXPSPACE}

\[ 其中: - $P \subsetneq \text{EXP}$ 已知严格 - $\text{PSPACE} \subsetneq \text{EXPSPACE}$ 已知严格 - 其他很多是否严格未知 一个常见误解是: > 指数时间肯定比多项式空间强。 不一定。 - $\text{PSPACE}$ 允许时间无限长,只限制空间 - $\text{EXP}$ 限制时间指数,但空间可能很大 - 两者不可直接比较 已知: \]

\text{PSPACE} \subseteq \text{EXP}

\[ 因为多项式空间图灵机最多有指数个配置,所以可以在指数时间内模拟。 但: \]

\text{EXP} \subseteq \text{PSPACE}?

\[ 未知。\]

posted @ 2026-10-05 23:33  Axor  阅读(28)  评论(0)    收藏  举报