Is p & np in syllabus ?

The Gateway to Computer Science Excellence

First time here? Checkout the FAQ!

x

+11 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?

- $Q$ solves the subset-sum problem in polynomial time when the input is encoded in unary
- $Q$ solves the subset-sum problem in polynomial time when the input is encoded in binary
- The subset sum problem belongs to the class NP
- The subset sum problem is NP-hard

+20 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.

- 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. - 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.

+1

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

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

Thank You

0

@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.

+1

when input in binary, say 1023, i.e. 10 1's, the time taken will be $(n\times(2^{10})-1)$, which is exponential.

0 votes

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.

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.

- All categories
- General Aptitude 1.6k
- Engineering Mathematics 7.3k
- Digital Logic 2.7k
- Programming & DS 4.9k
- Algorithms 4.2k
- Theory of Computation 5.4k
- Compiler Design 2.1k
- Databases 4k
- CO & Architecture 3.5k
- Computer Networks 4.2k
- Non GATE 1.4k
- Others 1.5k
- Admissions 570
- Exam Queries 566
- Tier 1 Placement Questions 23
- Job Queries 70
- Projects 18

48,691 questions

52,776 answers

183,434 comments

68,389 users