格基约化:LLL算法
Hadamard比率它用于描述nnn维线性空间某一组基B={b1,b2,⋯ ,bn}B = \{b_1,b_2,\cdots,b_n\}B={b1,b2,⋯,bn}的正交程度。描述:H(B):=∣det(B)∣∏i=1n∥bi∥H(B) := \frac{|det(B)|}{\prod_{i=1}^{n}\|b_i\|}H(B):=∏i=1n∥bi∥∣det(B)∣其中det(⋅)de
参考文献:
- Lenstra A K, Lenstra H W, Lovász L. Factoring polynomials with rational coefficients[J]. Mathematische annalen, 1982, 261(ARTICLE): 515-534.
Hadamard比率
它用于描述 n n n维线性空间某一组基 B = { b 1 , b 2 , ⋯ , b n } B = \{b_1,b_2,\cdots,b_n\} B={b1,b2,⋯,bn}的正交程度。
描述:
H
(
B
)
:
=
∣
d
e
t
(
B
)
∣
∏
i
=
1
n
∥
b
i
∥
H(B) := \frac{|det(B)|}{\prod_{i=1}^{n}\|b_i\|}
H(B):=∏i=1n∥bi∥∣det(B)∣
其中
d
e
t
(
⋅
)
det(\cdot)
det(⋅)是行列式,
∥
⋅
∥
\|\cdot\|
∥⋅∥是L2范数,
∣
⋅
∣
|\cdot|
∣⋅∣是绝对值。
0
<
H
(
B
)
≤
1
0 < H(B) \le 1
0<H(B)≤1
越接近1,基
B
B
B的正交性越好。若等于1,那么
B
B
B是正交基。
对于格 L L L,基底 B B B。乘以幺模矩阵 U U U,更换基底 B ′ = B U B'=BU B′=BU,其Hadamard比率越大,格基向量的平均长度趋势下降(但不严格)
Gram-Schmidt正交化
给定
n
n
n个线性无关的向量
b
1
,
b
2
,
⋯
,
b
n
∈
R
n
b_1,b_2,\cdots,b_n \in R^n
b1,b2,⋯,bn∈Rn,其Gram-Schmidt正交化为
b
~
i
:
=
b
i
−
∑
j
=
1
i
−
1
μ
i
j
b
~
j
\tilde b_i := b_i - \sum_{j=1}^{i-1} \mu_{ij} \tilde b_j
b~i:=bi−j=1∑i−1μijb~j
且
b
~
i
⋅
b
~
j
=
0
,
0
≤
j
<
i
≤
n
\tilde b_i \cdot \tilde b_j = 0,\,\, 0 \le j <i \le n
b~i⋅b~j=0,0≤j<i≤n
其中
μ
i
j
:
=
b
i
⋅
b
~
j
b
~
j
⋅
b
~
j
\mu_{ij} := \frac{b_i \cdot \tilde b_j}{\tilde b_j \cdot \tilde b_j}
μij:=b~j⋅b~jbi⋅b~j
是向量
b
i
b_i
bi在
b
~
j
\tilde b_j
b~j方向的投影。
Lenstra-Lenstra-Lovász格基约化
LLL算法约化的过程,实际是尽可能用格基去贴近线性空间的正交基的过程。
对于格 L L L的一组劣质基 { b 1 ′ , b 2 ′ , ⋯ , b n ′ } \{b_1',b_2',\cdots,b_n'\} {b1′,b2′,⋯,bn′},LLL算法的输出是一组优质基 { b 1 , b 2 , ⋯ , b n } \{b_1,b_2,\cdots,b_n\} {b1,b2,⋯,bn},并满足如下条件:
-
令优质基 { b 1 , b 2 , ⋯ , b n } \{b_1,b_2,\cdots,b_n\} {b1,b2,⋯,bn}的Gram-Schmidt正交基为 { b ~ 1 , b ~ 2 , ⋯ , b ~ n } \{\tilde b_1,\tilde b_2,\cdots,\tilde b_n\} {b~1,b~2,⋯,b~n}
-
Size条件
μ i j ∈ [ − 1 2 , 1 2 ] \mu_{ij} \in [-\frac{1}{2}, \frac{1}{2}] μij∈[−21,21] -
Lovász条件
∥ b ~ k + 1 ∥ 2 ≥ ( δ − μ k + 1 , k 2 ) ⋅ ∥ b ~ k ∥ 2 \|\tilde b_{k+1}\|^2 \ge (\delta - \mu_{k+1,k}^2) \cdot \|\tilde b_k\|^2 ∥b~k+1∥2≥(δ−μk+1,k2)⋅∥b~k∥2
这是一个有序性条件,适用于任意 1 4 < δ < 1 \dfrac{1}{4} < \delta < 1 41<δ<1,常常取 δ = 3 4 \delta = \dfrac{3}{4} δ=43 -
这种优质基称为 δ − L L L \delta-LLL δ−LLL约简基,满足:
∥ b 1 ∥ ≤ ( 2 4 δ − 1 ) n − 1 λ 1 ( L ) \|b_1\| \le (\frac{2}{\sqrt{4 \delta -1}})^{n-1} \lambda_1(L) ∥b1∥≤(4δ−12)n−1λ1(L)
若取 δ = 3 4 \delta = \dfrac{3}{4} δ=43,那么
∥ b 1 ∥ ≤ 2 n − 1 2 λ 1 ( L ) \|b_1\| \le 2^\frac{n-1}{2} \lambda_1(L) ∥b1∥≤22n−1λ1(L)
这是 S V P SVP SVP问题的 γ = 2 n − 1 2 \gamma = 2^\frac{n-1}{2} γ=22n−1近似解。
对于格
L
L
L的优质基
{
b
1
,
b
2
,
⋯
,
b
n
}
\{b_1,b_2,\cdots,b_n\}
{b1,b2,⋯,bn},若以正交基
{
b
~
1
,
b
~
2
,
⋯
,
b
~
n
}
\{\tilde b_1,\tilde b_2,\cdots,\tilde b_n\}
{b~1,b~2,⋯,b~n}的标准化为基底,那么可以表示为矩阵
B
B
B:
B
=
{
∥
b
~
1
∥
μ
2
,
1
∥
b
~
1
∥
⋯
⋯
μ
n
,
1
∥
b
~
1
∥
0
∥
b
~
2
∥
μ
3
,
2
∥
b
~
2
∥
⋯
μ
n
,
2
∥
b
~
2
∥
⋮
⋱
⋮
0
⋯
⋯
∥
b
~
n
−
1
∥
μ
n
,
n
−
1
∥
b
~
2
∥
0
⋯
⋯
0
∥
b
~
n
∥
}
B = \begin{Bmatrix} \|\tilde b_1\| & \mu_{2,1} \|\tilde b_1\| & \cdots & \cdots & \mu_{n,1} \|\tilde b_1\| \\ 0 & \|\tilde b_2\| & \mu_{3,2} \|\tilde b_2\| & \cdots & \mu_{n,2} \|\tilde b_2\| \\ \vdots & & \ddots & & \vdots \\ 0 & \cdots & \cdots & \|\tilde b_{n-1}\| & \mu_{n,n-1} \|\tilde b_2\| \\ 0 & \cdots & \cdots & 0 & \|\tilde b_{n}\| \\ \end{Bmatrix}
B=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧∥b~1∥0⋮00μ2,1∥b~1∥∥b~2∥⋯⋯⋯μ3,2∥b~2∥⋱⋯⋯⋯⋯∥b~n−1∥0μn,1∥b~1∥μn,2∥b~2∥⋮μn,n−1∥b~2∥∥b~n∥⎭⎪⎪⎪⎪⎪⎬⎪⎪⎪⎪⎪⎫
Size条件意味着,上三角矩阵
B
B
B的非枢轴元素绝对值大小不超过枢轴元素的一半。
Lovász条件意味着,
B
B
B对角线上的
2
×
2
2 \times 2
2×2子矩阵
[
∥
b
~
k
∥
μ
k
+
1
,
k
∥
b
~
k
∥
0
∥
b
~
k
+
1
∥
]
\begin{bmatrix} \|\tilde b_k\| & \mu_{k+1,k} \|\tilde b_k\| \\ 0 & \|\tilde b_{k+1}\| \\ \end{bmatrix}
[∥b~k∥0μk+1,k∥b~k∥∥b~k+1∥]
它的第二列不比第一列短很多。
事实上,
b
~
k
\tilde b_k
b~k是
b
k
b_k
bk在
S
p
a
n
(
b
~
1
,
⋯
,
b
~
k
−
1
)
Span(\tilde b_1,\cdots,\tilde b_{k-1})
Span(b~1,⋯,b~k−1)的正交补空间上投影,
b
~
k
+
1
+
μ
k
+
1
,
k
⋅
b
~
k
\tilde b_{k+1} + \mu_{k+1,k} \cdot \tilde b_k
b~k+1+μk+1,k⋅b~k是
b
k
+
1
b_{k+1}
bk+1在
S
p
a
n
(
b
~
1
,
⋯
,
b
~
k
−
1
)
Span(\tilde b_1,\cdots,\tilde b_{k-1})
Span(b~1,⋯,b~k−1)的正交补空间上投影。
LLL算法
算法描述:
- 输入格 L L L的一组基 { b 1 , b 2 , ⋯ , b n } \{b_1,b_2,\cdots,b_n\} {b1,b2,⋯,bn}
- 设置
k
=
2
k=2
k=2,当
k
≤
n
k \le n
k≤n,循环执行:
- 如果 k = 2 k=2 k=2,那么令 b ~ 1 = b 1 \tilde b_1 = b_1 b~1=b1
- 对于 j = k − 1 , ⋯ , 1 j=k-1,\cdots,1 j=k−1,⋯,1,依次计算 b k = b k − ⌊ μ k j ⌉ b j b_k = b_k - \lfloor \mu_{kj} \rceil b_j bk=bk−⌊μkj⌉bj
- 计算 b ~ k ← G r a m S c h m i d t ( { b ~ 1 , ⋯ , b ~ k − 1 , b k } ) \tilde b_k \leftarrow GramSchmidt(\{\tilde b_1,\cdots,\tilde b_{k-1},b_k\}) b~k←GramSchmidt({b~1,⋯,b~k−1,bk})
- 如果 ∥ b ~ k ∥ 2 ≥ ( δ − μ k , k − 1 2 ) ∥ b ~ k − 1 ∥ 2 \|\tilde b_k \|^2 \ge (\delta - \mu_{k,k-1}^2) \|\tilde b_{k-1} \|^2 ∥b~k∥2≥(δ−μk,k−12)∥b~k−1∥2,那么令 k = k + 1 k=k+1 k=k+1
- 否则,交换 b k − 1 b_{k-1} bk−1和 b k b_k bk,设置 k = max ( k − 1 , 2 ) k=\max(k-1,2) k=max(k−1,2)
- 输出 δ − L L L \delta-LLL δ−LLL约简基 { b 1 , b 2 , ⋯ , b n } \{b_1,b_2,\cdots,b_n\} {b1,b2,⋯,bn}
算法解读:
第2.1
行,暂时选取第一个向量作为Gram-Schmidt正交化的起始向量。
第2.2
行,前
k
−
1
k-1
k−1个向量
b
j
b_j
bj近似于
b
~
j
\tilde b_j
b~j,迭代约简基向量
b
k
b_k
bk;注意
j
j
j的顺序 (这关乎算法正确性?),以及
μ
k
j
\mu_{kj}
μkj需要实时计算。作用:使满足Size条件。
第2.3
行,更新前
k
k
k个Gram-Schmidt正交基;由于只有
b
k
b_k
bk改变了,更新
b
~
k
\tilde b_k
b~k即可。
第2.4
行,计算Lovász条件,若满足条件则继续约简下一个向量。
第2.5
行,不满足条件时,交换相邻的基向量;这一操作不改变前
k
−
2
k-2
k−2个Gram-Schmidt正交基以及它们的Lovász条件,但这使得第
k
k
k步满足Lovász条件成为可能。作用:使得新的
b
~
k
−
1
\tilde b_{k-1}
b~k−1的范数小于旧的
b
~
k
−
1
\tilde b_{k-1}
b~k−1范数的
δ
\delta
δ倍,格基缩短。
事实上,如果前 k − 1 k-1 k−1步满足Lovász条件但第 k k k步新加入的基 b ∗ b^* b∗不满足Lovász条件,那么调整基的排列顺序,存在 k ′ < k k' < k k′<k,使得前 k ′ k' k′个基以及基 b ∗ b^* b∗满足Lovász条件。
算法复杂度:
LLL算法是属于概率多项式时间的。证明过程略。
log
1
/
δ
D
B
≤
1
log
1
/
δ
⋅
n
(
n
−
1
)
2
⋅
log
(
max
∥
b
i
∥
)
\log_{1/\sqrt \delta} D_{B} \le \frac{1}{\log 1/\sqrt \delta} \cdot \frac{n(n-1)}{2} \cdot \log(\max\|b_i\|)
log1/δDB≤log1/δ1⋅2n(n−1)⋅log(max∥bi∥)
其中
D
B
D_B
DB是格基
B
B
B的“potential function”,将格基映射到某个正数,用于描述算法迭代过程中的某些特征的衰减速率。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)