The Subset Sum problem is described as follows: given a set of positive integers S and a target sum t, is there a subset of S whose sum is t? It is one of the well-know, so-called “hard” problems in computing. It's actually a very simple problem, and the computer program to solve it is not extremely complicated. What's hard about it is the running time – all known exact algorithms have running time that is proportional to an exponential function of the number of elements in the set (for worst-case instances of the problem).
Over the years, a large number of combinatorial problems have been shown to be in the same class as Subset Sum (called NP-complete problems). But, depending on how you measure the size of the problem instance, there is evidence that Subset Sum is actually an easier problem that most of the others in its class. The goal of this project is to strengthen the evidence that Subset Sum is an easier hard problem.
Suppose we have a set of n positive whole numbers S whose maximum number is m. We will define the ratio n/m to be the density of the set and denote the sum of all elements in the set as ∑S. If you look at the list of sums produced by subsets of S, you notice that very few sums are missing if S is dense enough. In fact, it appears that there is an exact density threshold beyond which no sums between m and half the sum of S will be missing. Our preliminary experiments have led to the following hypothesis: A set of positive integers with maximum element m and size n > floor(m/2)+1 has a subset whose sum is t for every t in the range m < t < ∑S − m.
So here's where you can help. So far, we haven't been able to prove the hypothesis above. If you want to be really helpful, you can send us a proof (or show us where to find one in the research literature), and the project will be done. But if you want to be slightly less helpful and have more fun, you can volunteer your computer as a worker to see how far we can extend the empirical evidence. You will also be helping us figure out better ways to apply distributed computing to combinatorial problems.
You can track the current progress of the project here.
- Read our rules and policies
- This project uses BOINC. If you're already running BOINC, select Attach to Project. If not, download BOINC.
- When prompted, enter
- If you're running a command-line or pre-5.0 version of BOINC, create an account first.
- If you have any problems, get help here.
- Your account - view stats, modify preferences
- Teams - create or join a team