in Algorithms edited by
17 votes

The subset-sum problem is defined as follows: Given a set $S$ of $n$ positive integers and a positive integer $W$, determine whether there is a subset of $S$ whose elements sum to $W$. An algorithm $Q$ solves this problem in $O(nW)$ time. Which of the following statements is false?

  1. $Q$ solves the subset-sum problem in polynomial time when the input is encoded in unary
  2. $Q$ solves the subset-sum problem in polynomial time when the input is encoded in binary
  3. The subset sum problem belongs to the class $\text{NP}$
  4. The subset sum problem is $\text{NP-hard}$
in Algorithms edited by


reshown by
Is p & np in syllabus ?
Please correct the right option(at the end) to option A instead of B.

Subscribe to GO Classes for GATE CSE 2022

2 Answers

26 votes
Best answer
Subset problem is NP-Complete - there is reduction proof but I don't remember (Can see the below link). So, (C) and (D) are true as an NPC problem is in NP as well as NPH.
Now, complexity of $Q$ is $O(nW)$, where $W$ is an integer.
  1. Input is encoded in unary. So, length of input is equal to the value of the input. So, complexity $= O(nW)$ where both $n$ and $W$ are linear multiples of the length of the inputs. So, the complexity is polynomial in terms of the input length. So, (A) is true.
  2. Input is encoded in binary. So, length of W will be $\lg W$. (for $W=1024$, input length will be just $10$). So, now $W$ is exponential in terms of the input length of $W$ and $O(nW)$ also becomes exponential in terms of the input lengths. So, $Q$ is not a polynomial time algorithm. So, (B) is false.

Correct Answer: $B$

edited by


Please explain this ENCODING thing.I am not able to understand how encoding in unary and binary come out to be proportional and exponential to input length respectively..

please explain. If possible, any example will be appreciated .

Thank You
@Arjun In part b you said input is encoded in binary so logW. But what about values of n. Won't they be also encoded in binary. And then we can say that Q solves the problem in exponential time with both n and W as exponential inputs.
when input in binary, say 1023, i.e. 10 1's, the time taken will be $(n\times(2^{10})-1)$, which is exponential.
@Arjun sir please explain little bit more how a is correct and b is false?
"Input is encoded in binary"

I am unable to decode it.

What does it mean that all the n inputs of set S are given in binary?

or W in binary?
plz explain this encoding thing properly with a example if possible...
Encoded in unary:

magnitude of number represented = length of unary code

Time for the algorithm to run is O(nW) = O(n * n)

Encoded in binary:

magnitude of number represented = O(2 ^ length of binary code)

Time for the algorithm to run is O(nW) = O(n * 2^n)
Is p & np in syllabus ?

No, it was there till 2015.
This question can still come in GATE. Up to you if you want to study or not.
Yeah, P - NP Problems have been removed not DP.
1 vote
The answer is B.  given that Algorithm Q solves this problem in O(nW) time. W is an integer (constant) so Q solves this problem in O(n) time.

Option A false because if the inputs are encoded in unary then Q solves this problem in O(1) time by just multiplying the unary number by N and checks whether it's equal to W or not.

Option B is True because we just need to iterate through the loop because the input is binary every time we have only two choices either add this to the sum or not when sum reaches to w answer is yes if no thought the loop then answer is no. it runs in O(n) time also

Options C and D false because given complexity of Algorithm Q is polynomial.

Related questions