0

I know how to show that a problem X is NP-Complete.

  1. Show that X ∈ NP.
  2. Show Y ≤p X: show a problem Y known to be NP-Complete can be reduced to X in polynomial time.

However, I'm stuck on why this procedure proves that X is NP-Complete. Could someone explain this in a relatively simple way?

CocoaDog
  • 305
  • 1
  • 11
  • 4
    [Computer Science](http://cs.stackexchange.com/) would be a better fit for this question. – 500 - Internal Server Error Apr 05 '14 at 19:47
  • You're probably right; sorry about that. Should I delete the question and re-ask there? – CocoaDog Apr 05 '14 at 19:49
  • For a given NP-complete problem Y, we already know that any other problem in NP can be reduced to it in polynomial time. If you now who that Y <=p X (which is the direction you need), then you know by transitivity of polynomial reductions (polynomial times polynomial = polynomial) that any problem in NP can now be reduced to X. – G. Bach Apr 05 '14 at 19:52
  • That's just *how it's defined*. At the end of the day, it's just a man-made category. – j_random_hacker Apr 05 '14 at 20:05
  • @G.Bach you're right. I updated the question accordingly. Thanks – CocoaDog Apr 05 '14 at 21:17

1 Answers1

0

NP Complete problem is defined to be a problem that is both NP-Hard and in NP (definition), so you basically need to show 2 things:

  1. The problem is in NP (same as your 1)
  2. The problem is NP-Hard

You can show (2) by 2 ways:

  1. Prove directly that there is a reduction from every problem in NP to it (hard to do)
  2. Show a reduction from any known NP-Hard problem to your problem.

The thing is, reduction is transitive, so if you prove there is a reduction from some NP-Hard problem (let it be L1) to your problem (Let it be L2), you basically showed that there is a reduction from EVERY L in NP to L1 (definition of NP-Hard), and from L1 to L2 (your reduction), thus the chain of these reductions (which is itself polynomial, neat things about polynoms), is a reduction by itself from every L in NP to L2 (your problem).

In other words, since L <=p L1 <=p L2 for every L, it follows that L <=p L2 for every L as well, and this is the exact definition of NP-Hardness.

This way, you showed there is a reduction from every problem in NP to your problem, and this is the definition of NP-Hardness.


Since showing directly that there is a reduction from EVERY L in NP to a language, it was done once on SAT (Cook-Levin theorem) [twice actually...], and now you can use reductions to increase the number of known NP-Hard Problems.

amit
  • 175,853
  • 27
  • 231
  • 333
  • 2 is in the wrong direction. You want to reduce an NP-hard problem to your problem, not the other way around. Also, reductions are not transitive in general; polynomial reductions are, however. – G. Bach Apr 05 '14 at 19:53
  • @G.Bach thanks, note that the explanation however follows the "correct" direction. – amit Apr 05 '14 at 19:55
  • @amit Could you take a look at my question? http://stackoverflow.com/questions/29706726/reduction-to-clique-prob – Mary Star Apr 18 '15 at 16:53