9、图形卡上的并行最短格向量枚举

GPU并行最短格向量枚举

图形卡上的并行最短格向量枚举

1. 最短格向量枚举算法

最短格向量的枚举以深度优先搜索顺序进行,其关键在于裁剪搜索树的部分分支,即确定哪些子树需要探索,哪些无法得到更短的向量。

设 $i$ 为树的当前层级,$i = 1$ 为树的底部,$i = n$ 为树的顶部。枚举算法的每一步包括:
1. 计算中间平方范数 $l_i$;
2. 在树中向上或向下移动一层(到层级 $i’ \in {i - 1, i + 1}$);
3. 确定坐标 $x_{i’}$ 的新值。

令 $r_i = |b_i^*|^2$,定义 $l_i = l_{i + 1} + y_i^2 r_i$,其中 $y_i = x_i - c_i$,$c_i = -\sum_{j = i + 1}^{n} \mu_{j, i} x_j$。对于特定的坐标选择 $x_i \cdots x_n$,对于所有以相同坐标 $x_i \cdots x_n$ 结尾的坐标向量 $x$,都有 $l_k \geq l_i$($k < i$)。这意味着中间范数 $l_i$ 可用于裁剪不可行的子树。如果 $l_i > A$($A$ 是到目前为止找到的最短向量的平方范数),算法将增加 $i$ 并在树中向上移动;否则,算法将降低 $i$ 并在树中向下移动。通常,最短向量长度的初始边界 $A$ 使用第一个基向量的范数。

$x_{i’}$ 的下一个值在以 $c_{i’}$ 为中心、长度为 $\sqrt{\frac{A - l_{i’ + 1}}{r_{i’}}}$ 的区间内选择。该区间按照 [SE91] 中描述的之字形模式进行枚举。从中心值 $\lfloor c_{i’}\rfloor$ 开始,ENU

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值