We reexamine the classical subset sum problem: given a set $X$ of $n$ positive integers and a number $t$, decide whether there exists a subset of $X$ that sums to $t$; or more generally, compute the set $\mbox{out}$ of all numbers $y\in\{0,\ldots,t\}$ for which there exists a subset of $X$ that sums to $y$. Standard dynamic programming solves the problem in $O(tn)$ time. In SODA'17, two papers appeared giving the current best deterministic and randomized algorithms, ignoring polylogarithmic factors: Koiliaris and Xu's deterministic algorithm runs in $\widetilde{O}(t\sqrt{n})$ time, while Bringmann's randomized algorithm runs in $\widetilde{O}(t)$ time. We present the first deterministic algorithm running in $\widetilde{O}(t)$ time. Our technique has a number of other applications: for example, we can also derandomize the more recent output-sensitive algorithms by Bringmann and Nakos [STOC'20] and Bringmann, Fischer, and Nakos [SODA'25] running in $\widetilde{O}(|\mbox{out}|^{4/3})$ and $\widetilde{O}(|\mbox{out}|\sqrt{n})$ time, and we can derandomize a previous fine-grained reduction from 0-1 knapsack to min-plus convolution by Cygan et al. [ICALP'17].


翻译:我们重新审视经典的子集和问题:给定一个包含 $n$ 个正整数的集合 $X$ 和一个目标值 $t$,判断是否存在 $X$ 的一个子集,其元素之和等于 $t$;或者更一般地,计算集合 $\mbox{out}$,其中包含所有满足条件的 $y\in\{0,\ldots,t\}$,使得存在 $X$ 的一个子集,其元素之和等于 $y$。标准的动态规划方法可以在 $O(tn)$ 时间内解决该问题。在 SODA'17 会议上,两篇论文提出了当前最优的确定性和随机化算法(忽略多对数因子):Koiliaris 和 Xu 的确定性算法运行时间为 $\widetilde{O}(t\sqrt{n})$,而 Bringmann 的随机化算法运行时间为 $\widetilde{O}(t)$。我们提出了首个运行时间为 $\widetilde{O}(t)$ 的确定性算法。我们的技术还具有若干其他应用:例如,我们还可以对 Bringmann 和 Nakos [STOC'20] 以及 Bringmann、Fischer 和 Nakos [SODA'25] 提出的、运行时间分别为 $\widetilde{O}(|\mbox{out}|^{4/3})$ 和 $\widetilde{O}(|\mbox{out}|\sqrt{n})$ 的近期输出敏感算法进行去随机化,并且可以对 Cygan 等人 [ICALP'17] 提出的从 0-1 背包问题到最小加卷积的先前细粒度规约进行去随机化。

0
下载
关闭预览

相关内容

在数学和计算机科学之中,算法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。精确而言,算法是一个表示为有限长列表的有效方法。算法应包含清晰定义的指令用于计算函数。 来自维基百科: 算法
专知会员服务
37+阅读 · 2021年9月12日
专知会员服务
15+阅读 · 2021年8月29日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
82+阅读 · 2020年8月13日
面试题:数组中子序列的个数
七月在线实验室
15+阅读 · 2019年6月26日
从信息论的角度来理解损失函数
深度学习每日摘要
17+阅读 · 2019年4月7日
简述多种降维算法
算法与数学之美
11+阅读 · 2018年9月23日
干货|掌握机器学习数学基础之优化[1](重点知识)
机器学习研究会
10+阅读 · 2017年11月19日
机器学习之确定最佳聚类数目的10种方法
炼数成金订阅号
13+阅读 · 2017年10月12日
从点到线:逻辑回归到条件随机场
夕小瑶的卖萌屋
15+阅读 · 2017年7月22日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
VIP会员
相关VIP内容
专知会员服务
37+阅读 · 2021年9月12日
专知会员服务
15+阅读 · 2021年8月29日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
82+阅读 · 2020年8月13日
相关资讯
面试题:数组中子序列的个数
七月在线实验室
15+阅读 · 2019年6月26日
从信息论的角度来理解损失函数
深度学习每日摘要
17+阅读 · 2019年4月7日
简述多种降维算法
算法与数学之美
11+阅读 · 2018年9月23日
干货|掌握机器学习数学基础之优化[1](重点知识)
机器学习研究会
10+阅读 · 2017年11月19日
机器学习之确定最佳聚类数目的10种方法
炼数成金订阅号
13+阅读 · 2017年10月12日
从点到线:逻辑回归到条件随机场
夕小瑶的卖萌屋
15+阅读 · 2017年7月22日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员