CVP 算法¶
Review
-
(\(\mathsf{CVP}_\gamma\), Search) 给定格基 \(B \in \mathbb{Z}^{m \times n}\) 和点 \(t \in \mathbb{Z}^m\),求点 \(x \in \mathcal{L}(B)\) 使得 \(\forall y \in \mathcal{L}(B)\),\(\lVert x - t \rVert \leqslant \gamma \cdot \lVert y - t \rVert\).
-
(\(\mathsf{CVP}_\gamma\), Optimization) 给定格基 \(B \in \mathbb{Z}^{m \times n}\) 和点 \(t \in \mathbb{Z}^m\),求 \(r \in \mathbb{Q}\) 使得 \(d(t, \mathcal{L}(B)) \leqslant r \leqslant \gamma \cdot d(t, \mathcal{L}(B))\).
-
(\(\mathsf{CVP}_\gamma\), Decision) 给定格基 \(B \in \mathbb{Z}^{m \times n}\)、点 \(t \in \mathbb{Z}^m\) 和 \(r \in \mathbb{Q}\),判断 \(d(t, \mathcal{L}(B)) \leqslant r\) 或 \(d(t, \mathcal{L}(B)) > \gamma \cdot r\).
最近平面算法¶
递归步骤:
-
设 \(s\) 为 \(t\) 在 \(\operatorname{span}(b_1, \ldots, b_n)\) 上的正交投影.
-
寻找整数 \(c\),使得平行超平面 \(c b_n^* + \operatorname{span}(b_1, \ldots, b_{n-1})\) 离 \(s\) 最近.
-
令 \(s' = s - c b_n\). 以 \(s'\) 和 \(\mathcal{L}(b_1, \ldots, b_{n-1})\) 为输入递归调用最近平面算法. 设 \(x'\) 为答案.
-
输出 \(x = x' + c b_n\).
算法正确性¶
Claim
-
对任意 \(t \in \operatorname{span}(B)\),最近平面算法输出的 \(x \in \mathcal{L}(B)\) 满足 \(\lVert x - t \rVert^2 \leqslant \frac{1}{4} \sum_{i=1}^n \lVert b_i^* \rVert^2\).
-
因为 \(B\) 是 LLL 规约的,所以对任意 \(t \in \operatorname{span}(B)\),最近平面算法输出的 \(x \in \mathcal{L}(B)\) 满足 \(\lVert x - t \rVert \leqslant \frac{1}{2} \cdot 2^{n/2} \lVert b_n^* \rVert\).
以上命题表明,当 \(d(t, \mathcal{L}(B)) \geqslant \frac{1}{2} \cdot \lVert b_n^* \rVert\) 时,算法输出的是 \(\mathsf{CVP}\) 的一个 \(2^{n/2}\) 近似解. 但这并没有解决 \(t\) 与格非常接近,或 \(t \not \in \operatorname{span}(B)\) 的情况.
Lemma
对任意 \(t \in \mathbb{Z}^m\),设 \(y \in \mathcal{L}(B)\) 为 \(t\) 的最近点. 那么以上算法输出的 \(x \in \mathcal{L}(B)\) 满足 \(\lVert x - t \rVert \leqslant 2^{n/2} \cdot \lVert y - t \rVert\).
Proof
在秩 \(n\) 上进行数学归纳法. 首先需要归纳证明 \(x\) 满足
其中 \(s\) 是 \(t\) 在 \(\operatorname{span}(B)\) 上的正交投影. 这便可以证明命题,因为
讨论两种情况.
- \(\lVert s - y \rVert \leqslant \frac{\lVert b_n^* \rVert}{2}\). 这样便有 \(y \in c b_n^* + \operatorname{span}(b_1, \ldots, b_{n-1})\),因为其他超平面到 \(s\) 的距离至少为 \(\frac{\lVert b_n^* \rVert}{2}\). 直观上,这说明第二步中选择的超平面是正确的,所以可以获得 \(y' = y - c b_n \in \mathcal{L}(b_1, \ldots, b_{n-1})\). 依据归纳假设,
- \(\lVert s - y \rVert > \frac{\lVert b_n^* \rVert}{2}\). 这说明第二步中选择的超平面并不正确,但依据命题依然可以得到