“在已知精确算法仍不实用时,近似比、参数化问题和Meet in the Middle分别改变解质量、复杂度参数或指数搜索结构。这些是三种不同的算法承诺,不能由“属于 P”或“尚无 P 算法”替…”
形式陈述 ​
范式 ​
把分治的
时间和通常同阶空间。
它不是递归分治后合并线性答案,而是显式保存指数状态。Schroeppel–Shamir 可用更复杂生成顺序把某些问题空间降到
直觉
直接枚举全部组合要付
例子与边界
Subset Sum 全程执行 ​
数列
排序双指针从最小左和与最大右和开始:和过大就向左移动右指针,过小就向右移动左指针。若求方案数,重复和要压成
成本和空间 ​
各半
双指针扫描线性,空间为
Schroeppel–Shamir 把每半再次分组,按序惰性生成两两和,用优先队列把空间降到
失效边界 ​
若跨半兼容条件不能由短摘要判断,组合检查可能退回
推论与应用
Meet-in-the-Middle 适合 subset sum、knapsack、密码分析和若干小规模精确搜索,核心条件是跨半兼容性可由紧凑状态快速判定。Schroeppel–Shamir 等方法还能以惰性生成降低空间,但仍保留指数时间与更复杂的生成顺序不变量。
参考资料
- Horowitz, Sahni, “Computing Partitions with Applications to Knapsack,” JACM, 1974.
- Schroeppel, Shamir, “A T=O(2^{n/2}), S=O(2^{n/4}) Algorithm,” SIAM J. Comput., 1981.