硬背包问题的新通用算法与格枚举优化
在算法领域,背包问题和格问题一直是研究的热点。背包问题在密码学、组合优化等领域有广泛应用,而格问题则在公钥密码分析等方面发挥着重要作用。本文将介绍硬背包问题的新通用算法以及格枚举的优化技术。
硬背包问题新算法
在解决硬背包问题时,新算法通过选择合适的参数γ来平衡子例程返回的解的数量以及时间和内存的使用。以下是不同γ值对应的时间和内存指数:
| γ | 时间指数 | 内存指数 | 注释 |
| — | — | — | — |
| 0.5117 | 0.3113 | 0.2996 | 最低时间 |
| 0.5177 | 0.3173 | 0.2936 | 与算法4内存相同 |
| 0.5375 | 0.3372 | 0.2737 | 与算法4时间相同 |
| 0.5613 | 0.3609 | 1/4 | 与Schroeppel - Shamir内存相同 |
| 0.5990 | 0.3986 | 0.2123 | 最低内存 |
通过递归的方式,可以进一步减少内存需求。对于α - 不平衡背包问题,将其切成两半,使用上述启发式方法解决得到的(α/2) - 不平衡背包问题。这样,1/2 - 不平衡背包问题可以在时间˜O(2^0.3113n)内,使用˜O(2^0.2936n)单位的内存解决。
为了验证新算法的实际性能,进行了一个实际实验。构建了一个典型的硬背包问题,使用96个96位的随机元素,并将目标S设置为其中48个元素的和。
- Schroeppel - Shamir算法变体 :实现该算法时,需要区分两种情况。如果
硬背包问题与格枚举优化
超级会员免费看
订阅专栏 解锁全文
58

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



