SUBSET-SUM problem can be solved in polynomial time

  • Thread starter Thread starter jetoso
  • Start date Start date
  • Tags Tags
    Polynomial Time
Click For Summary
The discussion centers on the possibility of solving the SUBSET-SUM problem in polynomial time when the target t is represented in unary. It is argued that since the dynamic programming approach for the subset-sum problem runs in O(nt) time, representing t in unary allows the running time to be polynomial in the size of the input. The conversion from unary to binary input is also noted to be a polynomial-time operation. Additionally, the conversation highlights that input format can significantly affect runtime, as seen in various graph problems. Ultimately, the representation of the target in unary can change the complexity of solving the problem.
jetoso
Messages
73
Reaction score
0
Is it possible to show that the SUBSET-SUM problem can be solved in polynomial time if the target t is given in unary?

We know that the subset sum problem consist on finding a subset S' of numbers from a set S such that its sum equals t.

If t is unary, say if t=3 then t=111, how can we find a polynomial-time algorithm?
 
Mathematics news on Phys.org
jetoso said:
Is it possible to show that the SUBSET-SUM problem can be solved in polynomial time if the target t is given in unary?
Maybe. Unary has nothing to do with it. Knapsack is NP-hard.
 


It is well known that there is a dynamic programming recursion that solves the subset-sum problem in O(nt), where t is the target. Thus, if t is given in unary, then the running time must be bounded in polynomial-time of the size of the input.
So, in principle the way in which the target is represented, makes the running time to be polynomial.
What do you think?
 
Any exponential time problem will take polynomial time if the input is represented in unary. Normally the parameter is the number of bits of input. If you take the bits of the input and represent them as a single number in unary, the number of bits of the unary input is exponential in the number of bits of the input. It is then a polynomial-time operation in the size of the unary input to convert back to, say, binary input, and then a polynomial time operation in the size of the unary input to solve the problem from there.

There are plenty of problems where changing the format of the input alters the runtime. A lot of graph problems have different time complexities when the graph is given as an adjacency list vs when the graph is given as an adjacency matrix.
 
Here is a little puzzle from the book 100 Geometric Games by Pierre Berloquin. The side of a small square is one meter long and the side of a larger square one and a half meters long. One vertex of the large square is at the center of the small square. The side of the large square cuts two sides of the small square into one- third parts and two-thirds parts. What is the area where the squares overlap?

Similar threads

  • · Replies 10 ·
Replies
10
Views
2K
  • · Replies 5 ·
Replies
5
Views
2K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
3
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K
  • · Replies 3 ·
Replies
3
Views
2K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 11 ·
Replies
11
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K