Polynomial-time Matrix-based Method of Determining Subset Sum Solutions


The subset sum problem is a well-known member of the NP- complete complexity class: given a set of integers A and some constant c, is there some subset of A which sums to c?

There have been no known algorithms or methods to solve the value-unbounded, general-case subset sum problem in polynomial time. A naive algorithm performs in exponential time by cycling through the possible subsets of A until it has either seen all subsets or found one that sums to c. A common pseudo-polynomial algorithm employs a dynamic programming method whose complexity is polynomial with respect to the length of the set and the range of the inputs,O(n(M-N)), where n is the length of the set and M-N is the range of inputs; however, this solution is not truly polynomial, as it is polynomial with respect to M-N, which is exponential in its number of bits. Approximate algorithms exist which can be modified to find exact solutions; however, they too degrade to being exponential in the number of bits required to represent elements in the set.

In contrast to pre-existing algorithms, the method described here does not concern itself with the various subsets that exist within the input set, but rather searches the solution space of a set of linear constraints when applied to an input set to deduce if a solution can exist; this method is a strategy which may be employed to find solutions satisfying the constraints of the subset sum problem in time polynomial with respect only to the length of the input, having general- case applicability on the basis of universally occurring properties in sets satisfying the problem.