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

inexact-contraction

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

上级:analysis

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

压缩映射

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

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

则称 T 是一个因子为 k 的压缩映射。 Banach 不动点定理: T 存在唯一的不动点 x∗=Tx∗x^* = Tx^*,且精确迭代 xn+1=T(xn)x_{n+1} = T(x_n) 都以几何速度收敛到 x∗x^*(从任意起点 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,不动点为 x∗x^*)下的一个非精确迭代。则:

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

当 n→∞n \to \infty 时,迭代序列收敛到 x∗x^* 周围半径为 ε1−k\frac{\varepsilon}{1-k} 的球:

lim sup⁡n→∞d(xn,x∗)  ≤  ε1−k.\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∗)≤ε+k d(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∗)≤k d(xn−1,x∗)+ε≤k(k d(xn−2,x∗)+ε)+ε=k2d(xn−2,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+⋯+kn−1)=knd(x0,x∗)+ε 1−kn1−k.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。第二项则趋向 ε1−k\frac{\varepsilon}{1-k},且随着 n→∞n \to \infty 不断增大。因为 0<k<10 < k < 1,所以 1−kn→11 - k^n \to 1,于是 lim sup⁡n→∞d(xn,x∗)≤ε1−k\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.11−0.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 = ε1−k\frac{\varepsilon}{1-k},恰好落定在定理所保证的那个上界上。

读法——映射到 harness

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

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

放大因子 11−k\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。

inexact-contraction — Sijie Wang