利用极端剪枝的格枚举算法解析
1. 极端剪枝算法概述
极端剪枝算法的核心思想是运用成功概率($p_{succ}$)极小的边界函数进行剪枝操作。该算法的输入包含一个格基,以及 $n$ 个实数 $R_1^2 \leq \cdots \leq R_n^2 = R^2$,其中 $R_k$ 对应着深度为 $k$ 时的剪枝操作。算法的目标是找出长度不超过 $R$ 的向量,其具体步骤如下:
1. 对输入基进行随机化处理,然后进行基约化操作。
2. 对以半径 $R_1, \cdots, R_n$ 进行剪枝后的树开展枚举操作。
在步骤 1 中,目前尚未明确最佳的随机化方法,在实验里,我们只是简单地将输入基与随机选取的小幺模矩阵相乘,当然也可采用其他方法。而基约化的选择对整体运行时间影响巨大,必须进行恰当设定。
2. 运行时间分析
- 成功概率估计 :依据启发式方法 2,每次迭代的成功概率可通过 $p_{succ}(R_1, \cdots, R_n)$ 来估计,其计算公式如下:
[p_{succ} = p_{succ}(R_1, \cdots, R_n) = \Pr_{u\sim S^{n - 1}\frac{|v|}{R}}\left[\forall j \in [1, n], \sum_{l = 1}^{j} u_l^2 \leq \frac{R_j^2}{R^2}\right]]
这里的 $S^{n - 1}$ 表示 $n$ 维单位球面。此启发式方法得出的 $p_{succ}$ 估计值与实验结果高度吻合。 - 每次迭代运行时间估计
超级会员免费看
订阅专栏 解锁全文
4452

被折叠的 条评论
为什么被折叠?



