2026-08-28·by Sijie Wang#math#analysis

inexact-contraction

非精确压缩映射——容错执行器下的收敛

上级:analysis

精确的 Banach 迭代假设每一步都被完美地执行;如果每一步都由一个容错求解器执行、误差不超过 ε\varepsilon,会发生什么?答案是:你依然会收敛——但收敛到的是半径为 ε/(1k)\varepsilon/(1-k)一个球,而不是那个点本身。

压缩映射

(X,d)(X, d) 是一个度量空间,T:XXT : X \to X 是一个映射。若存在 0k<10 \le k < 1,使得

d(Tx,Ty)kd(x,y)for all x,yX.d(Tx, Ty) \le k \, d(x, y) \quad \text{for all } x, y \in X.

则称 T 是一个因子为 k压缩映射Banach 不动点定理: T 存在唯一的不动点 x=Txx^* = Tx^*,且精确迭代 xn+1=T(xn)x_{n+1} = T(x_n) 都以几何速度收敛到 xx^*(从任意起点 x0x_0 出发):

d(xn,x)knd(x0,x).d(x_n, x^*) \le k^n d(x_0, x^*).
非精确迭代

非精确迭代是指一个序列 (xn)(x_n),满足

d(xn+1,T(xn))εd(x_{n+1}, T(x_n)) \le \varepsilon

对所有 n 成立——即每一步落点与 T 本该给出的落点之间的偏差不超过 ε\varepsilon。真正的压缩映射 T 并未被调用;取而代之的是一个容错的执行者(例如一个 LLM、一个近似求解器),它只需满足这一距离约束,就能产生 xn+1x_{n+1}

非精确压缩

(xn)(x_n) 是压缩映射 T(因子 k < 1,不动点为 xx^*)下的一个非精确迭代。则:

d(xn,x)    knd(x0,x)+ε1kn1k.d(x_n, x^*) \;\le\; k^n d(x_0, x^*) + \varepsilon \, \frac{1-k^n}{1-k}.

nn \to \infty 时,迭代序列收敛到 xx^* 周围半径为 ε1k\frac{\varepsilon}{1-k} 的球:

lim supnd(xn,x)    ε1k.\limsup_{n \to \infty} d(x_n, x^*) \;\le\; \frac{\varepsilon}{1-k}.
Proof

单步:xn+1x_{n+1} 应用三角不等式和压缩性质:

d(xn+1,x)d(xn+1,Txn)+d(Txn,Tx)ε+kd(xn,x).d(x_{n+1}, x^*) \le d(x_{n+1}, T x_n) + d(T x_n, T x^*) \le \varepsilon + k \, d(x_n, x^*).

展开递推:d(x0,x)d(x_0, x^*) 出发,将单步不等式反复应用 nn 次:

d(xn,x)kd(xn1,x)+εk(kd(xn2,x)+ε)+ε=k2d(xn2,x)+kε+εd(x_n, x^*) \le k \, d(x_{n-1}, x^*) + \varepsilon \le k(k \, d(x_{n-2}, x^*) + \varepsilon) + \varepsilon = k^2 d(x_{n-2}, x^*) + k\varepsilon + \varepsilon \le \cdots

一路展开下去:

d(xn,x)knd(x0,x)+ε(1+k+k2++kn1)=knd(x0,x)+ε1kn1k.d(x_n, x^*) \le k^n d(x_0, x^*) + \varepsilon(1 + k + k^2 + \cdots + k^{n-1}) = k^n d(x_0, x^*) + \varepsilon \, \frac{1-k^n}{1-k}.

第一项以几何速度衰减到 0。第二项则趋向 ε1k\frac{\varepsilon}{1-k},且随着 nn \to \infty 不断增大。因为 0<k<10 < k < 1,所以 1kn11 - k^n \to 1,于是 lim supnd(xn,x)ε1k\limsup_{n \to \infty} d(x_n, x^*) \le \frac{\varepsilon}{1-k}。∎

算例:常数误差下的减半

X=RX = \mathbb{R}T(x)=x/2T(x) = x/2,于是 k = 1/2,不动点为 x=0x^* = 0。假设每一步的最坏误差为 ε=0.1\varepsilon = 0.1——也就是说 xn+1=xn/2+0.1x_{n+1} = x_n/2 + 0.1,从 x0=1x_0 = 1 出发。根据定理,极限球的半径为 0.110.5=0.10.5=0.2\frac{0.1}{1 - 0.5} = \frac{0.1}{0.5} = 0.2

nd(xn,0)d(x_n, 0)(xn/2)+0.1(x_n/2) + 0.1
01.0
10.60.6
20.40.4
30.30.3
40.250.25
50.2250.225
60.21250.2125
0.20.2

迭代序列从 1.0 逐步下降,趋向极限球 0.2 = ε1k\frac{\varepsilon}{1-k},恰好落定在定理所保证的那个上界上。

读法——映射到 harness

在一个寻找不动点的收敛循环中:

  • T = 循环体中一个被验证过的步骤(一个可证明地更靠近目标的函数);
  • k = 验证质量——即 recursion-convergence-contraction 中的压缩因子,衡量每个被验证的步骤能保证多少进展;
  • ε\varepsilon = 一个容错执行者的单步误差,例如被用作理论求解器的 LLM
  • ε1k\frac{\varepsilon}{1-k} = 永久存在的松弛下限——目标的最终 ε 邻域,容许公差的那个球,是设计容差的一个实例。

放大因子 11k\frac{1}{1-k} 是关键:当 k 趋近于 1(验证很弱,几乎没有压缩性)时,同样大小的单步松弛 ε\varepsilon 在极限处会被灾难性地放大。例如在 k = 0.9 时,每一单位的 ε\varepsilon 会变成 10 单位的最终误差;在 k = 0.99 时则会变成 100 单位。

非压缩的毒性

没有压缩性——也就是说,若 k ≥ 1——同样的单步递推式只能给出

d(xn,x)d(x0,x)+nε,d(x_n, x^*) \le d(x_0, x^*) + n\varepsilon,

误差线性累积,永远不会稳定下来。更糟的是,若 k > 1,误差会呈指数增长。所以,放宽每一步(允许最多 ε\varepsilon 的误差)只有在配合强压缩性时才是安全的。没有压缩性的容差就是漂移:你买到的不过是系统性失败的许可。序理论中与 Banach 压缩映射对应的精确表亲,见 kleene-fixed-point