Subset Sum Made Simple.

arXiv: Data Structures and Algorithms(2018)

引用 23|浏览12
暂无评分
摘要
Subset Sum is a classical optimization problem taught to undergraduates as an example of an NP-hard problem, which is amenable to dynamic programming, yielding polynomial running time if the input numbers are relatively small. Formally, given a set $S$ of $n$ positive integers and a target integer $t$, the Subset Sum problem is to decide if there is a subset of $S$ that sums up to $t$. Dynamic programming yields an algorithm with running time $O(nt)$. Recently, the authors [SODA u002717] improved the running time to $tilde{O}bigl(sqrt{n}tbigr)$, and it was further improved to $tilde{O}bigl(n+tbigr)$ by a somewhat involved randomized algorithm by Bringmann [SODA u002717], where $tilde{O}$ hides polylogarithmic factors. Here, we present a new and significantly simpler algorithm with running time $tilde{O}bigl(sqrt{n}tbigr)$. While not the fastest, we believe the new algorithm and analysis are simple enough to be presented in an algorithms class, as a striking example of a divide-and-conquer algorithm that uses FFT to a problem that seems (at first) unrelated. In particular, the algorithm and its analysis can be described in full detail in two pages (see pages 3-5).
更多
查看译文
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要