Skip to content

定义Definition

搜索关系与 FNP

FNP · Polynomially balanced search relation · 多项式平衡搜索关系

用多项式平衡关系规定可接受见证,处理变长证书与无解返回,并证明前缀语言怎样借助NP完全判定器恢复见证。

形式陈述 ​

判定任务只输出“是”或“否”;搜索任务还必须交出一份对象。固定二进制串集合,关系 R⊆{0,1}∗×{0,1}∗ 表示“y 是输入 x 的合法见证”。记 R(x)={y:R(x,y)},以及存在见证的输入语言

DR={x:∃y R(x,y)}.

关系多项式平衡,是指存在一个固定、可计算的非负整数多项式上界 p,使 R(x,y) 蕴涵 |y|≤p(|x|)。再要求关系本身可由确定性算法在 |x|+|y| 的多项式时间内判定。满足这两个条件的搜索关系组成 FNP;这里采用关系口径,允许同一个输入拥有许多正确答案。NP 的验证器定义立即给出 DR∈NP。

本页的求解接口是:有见证时输出任意 y∈R(x),没有见证时输出专用标记 ⊥,并对所有输入停机。⊥ 不是空串 ε,因为空串可能是正确见证。FNP 的定义只保证候选验证快;它没有保证这个求解接口可在多项式时间完成,也没有给 ⊥ 配备一份容易检查的“无解证书”。若文献只要求算法在有解输入上成功,需要先核对它是否也规定了无解行为。

由一个固定关系构造前缀语言

ER={⟨x,s⟩:∃z, |sz|≤p(|x|) ∧ R(x,sz)}.

元组采用带长度信息的可解析编码。给出后缀 z 后,可以检查总长度并验证 R(x,sz),所以 ER∈NP。这是一个同时接受实例与前缀的新判定接口;它一般不是只接受原实例的 DR。

直觉

关系像验收单:同一张地图可以有多条合法路径,验收单不必预先指定其中哪条。多项式平衡负责保证答案“写得下”,多项式验证负责保证答案“查得快”。两者缺一不可,而“找得快”是第三件事。

前缀询问把一大群候选分成两组。例如当前前缀是 01,询问 010 是否仍有合法补全。回答“是”时可以放心走向这一组;回答“否”时,只有在已经知道 01 确实能补全、且 01 本身还不是答案的前提下,才能转向 011。

例子与边界

变长见证:停止动作不能省略 ​

假设已有准确判定 ER 的 oracle,即一个暂时把内部求解成本单列的黑箱。令 N=|x|,先询问 ER(x,ε);回答否就返回 ⊥。否则置 s=ε,反复执行:

  1. 用关系验证器检查 R(x,s)。若真,立即返回 s
  2. 若假,询问 ER(x,s0)。若真,把 s 改成 s0;若假,把 s 改成 s1

不变量是“当前 s 是某个合法见证的前缀”。初次询问建立它。若 s 不是见证,但有某个见证以 s 开头,那么该见证还有下一位,必为 0 或 1;因此排除 0 后可选 1。每轮长度增加一,最多增长到 p(N);此时不变量只能由 s 本身是见证来满足,故下一次验证必然停止。总共至多 p(N)+1 次 oracle 询问、p(N)+1 次关系验证,每条查询长度为 O(N+p(N)+1),写入与验证开销均为多项式。

以一个可手查的小关系为例,对固定输入允许的见证恰为 {ε,10,111}。算法在初次存在性询问后直接返回 ε。如果删除空串,只允许 {10,111},询问前缀 0 得否,转到 1;验证 1 失败,询问 10 得是,下一轮验证 10 成功并返回。若只知道长度上界为 3,却强行补成三位,100 不在关系里;“所有短证书都能随便补零”不是定义。

另一种正规化会显式编码原长度。取 d=⌈log2⁡(p(N)+1)⌉,用 d 位长度字段加恰好 p(N) 位数据区,长度不足的尾部必须补零;p(N)=0 时长度字段为空。验证器先读长度字段,检查解码整数 0≤ℓ≤p(N),再检查尾部补位并对真正见证运行原验证器;超界长度编码必须拒绝。这样才可合法改成固定长度搜索。上面的直接停止算法不需要做这个转换。

为什么换成 NP 完全 oracle 就够用 ​

固定任意 NP 完全语言 B。由于 ER∈NP,存在 Karp 归约 h,使 ⟨x,s⟩∈ER 当且仅当 h(⟨x,s⟩)∈B。每次前缀询问先计算 h,再调用 B 的判定器,便能执行上述恢复。归约输出长度受其多项式时间约束,因此多项式条查询没有藏入指数长实例。

整套搜索程序是多次自适应 oracle 调用:后一个前缀取决于前一个回答。单次 h 是 Karp 归约,整个恢复过程不是“一次 Karp 映射”。若 DR 本身 NP 完全,可选 B=DR,从而用原问题的判定器恢复;若只知道 DR∈NP,没有这一步结论。

原问题永远有解,判定器也可能毫无指引 ​

考虑一个假定难以求逆的、长度保持的多项式时间置换 f,关系 Rf(x,y) 当且仅当 f(y)=x。置换保证每个 x 恰有一个原像,因此 DRf 是全部二进制串,判定器永远回答“是”。它没有回答“原像首位能否为 0”。若这类置换存在,验证快且总有解,仍不等于能快速找到解。这是条件性边界例,绝不是已证明某个具体置换求逆不在多项式时间。

仅要求验证快也不够定义 FNP。关系“x 编码整数 k,y 恰是 2k 个零”可在输入加候选的总长度的多项式时间检查,但见证长度不受 |x| 的多项式控制。检查一份巨长答案很快,不会使这份答案变短。

推论与应用

若 P=NP,则上述前缀语言都有多项式判定器,全部 FNP 关系都可在多项式时间求解。反过来,若全部 FNP 关系都有满足本页停机和 ⊥ 契约的多项式求解器,给任意 NP 验证关系运行求解器,再检查返回见证,即可多项式判定该语言。这是常说的“P=NP 等价于所有可高效验证的短见证都可高效找到”的精确口径。

SAT 自归约提供更直接的实例:不必绕通用计算编码,而是删去已经满足的子句、删去已经为假的文字,把前缀约束继续交给 SAT 判定器。FP 函数接口进一步区分“允许任意一个答案”的关系与“必须输出指定答案”的单值函数。共同终点要求实际写出这两种接口的查询与停止行为。

参考资料
  • Boaz Barak,Introduction to Theoretical Computer Science, Chapter 16,§16.1,Theorem 16.1 与 Algorithm 16.2:前缀语言的搜索—判定论证。本页另展开变长见证的停止条件、独立无解标记和查询编码账本
  • Christos H. Papadimitriou,“On the Complexity of the Parity Argument and Other Inefficient Proofs of Existence”,Journal of Computer and System Sciences 48(3),1994,pp. 498–532,原文:多项式平衡搜索关系的原始框架
  • Constantinos Daskalakis、Gabriele Farina,MIT 6.7980,Total search and TFNP,§L18.1–L18.2,在线讲义,访问于 2026-10-08:关系口径与搜索归约接口
关系图谱9 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系