QUICK REVIEW
[论文解读] Efficient Computation of Terms of Linear Recurrence Sequences of Any Order
Dmitry I. Khomovsky|arXiv (Cornell University)|Oct 20, 2016
Advanced Mathematical Theories and Applications参考文献 5被引用 3
一句话总结
本文提出了一种高效算法,利用模多项式平方技术计算任意阶线性递推序列的项,显著降低了计算复杂度。通过推导索引加倍的闭式公式并利用矩阵表示,该方法实现了 O(n² log N) 次乘法,相较于 Fiduccia 的方法在高阶递推中的实际效率更高。
ABSTRACT
In this paper we give efficient algorithms for computing second-, third-, and fourth-order linear recurrences. We also present an algorithm scheme for computing terms with the indices $N,\ldots,N+n-1$ of an $n$th-order linear recurrence. Unlike Fiduccia's algorithm our approach uses certain formulas for modular polynomial squarings.
研究动机与目标
- 开发一种快速算法,用于计算 n 阶线性递推序列的第 N 项。
- 通过优化模多项式平方运算,改进 Fiduccia 的算法。
- 提供一个统一框架,适用于二阶、三阶和四阶递推,并推广至任意阶。
- 通过利用递推结构和矩阵恒等式,最小化所需乘法次数,尤其针对大 N 的情况。
提出的方法
- 该方法使用递推转移的矩阵表示,特别关注索引 2k 和 2k+1 的加倍公式。
- 基于特征多项式的系数,推导出 X_{2k+i} 和 X_{2k+1+i} 关于 X_{k+j} 的显式递推关系。
- 该算法基于推导出的公式采用递归加倍策略,避免完整的矩阵幂运算。
- 通过迭代平方中间状态向量,计算 X_{N+i}(i=0 到 n-1),从而减少乘法次数。
- 该方法使用模多项式平方技术,经硬编码以提高效率,无需完整矩阵求逆即可计算所需项。
- 提供 Mathematica 实现作为概念验证,函数 AnyOrderRecurrence 接受初始值和递推系数。
实验结果
研究问题
- RQ1如何优化高阶线性递推项的计算,以减少乘法复杂度?
- RQ2能否系统性地推导出任意阶线性递推的闭式加倍公式?
- RQ3计算 n 阶线性递推序列第 N 项所需的最少乘法次数是多少?
- RQ4对于大 N 和高 n 的情况,该方法与 Fiduccia 算法相比效率如何?
主要发现
- 该算法使用 O(n² log N) 次乘法计算 n 阶线性递推序列的第 N 项,当 μ(n) 较大时,比 Fiduccia 的 O(μ(n) log N) 更高效。
- 对于偶数 n,每步恰好需要 n(n+1)/2 log₂N 次乘法,奇数 n 的情况通过类似推导可得相同上界。
- 该方法可推广至任意阶 n,提供了基于多项式恒等式的 X_{2k} 和 X_{2k+1} 的显式公式。
- 该方法可实现 W_N, W_{N+1}, ..., W_{N+n-1} 多项的并行计算,且开销极小。
- Mathematica 中的实现验证了该算法的正确性和高效性,尤其在大 N 和中等 n 的情况下表现突出。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。