5

The definition of NP-complete is

A problem is NP-complete if

  1. it belongs to class NP
  2. all the other problems in NP polynomially transform to it

So, if all other problems in NP transform to an NP-complete problem, then does that not also mean that all NP problems are also NP-complete? What is the point of classifying the two if they are the same?

In other words, if we have an NP problem then through (2) this problem can transform into an NP-complete problem. Therefore, the NP problem is now NP-complete, and NP = NP-complete. Both classes are equivalent.

Just trying to clarify this up for myself.

nbro
  • 15,395
  • 32
  • 113
  • 196
entitledX
  • 670
  • 1
  • 7
  • 13
  • Old comment was removed because it's incorrect - here's an interesting list of problems in NP \ (P $U$ NP-C), though. http://cstheory.stackexchange.com/questions/79/problems-between-p-and-npc – seagaia Sep 11 '11 at 00:33
  • I think this comment I said is wrong. Is the following a correct understanding? : Problems in NP \ (P U NP-C) = NP-I can reduce to NP-C problems (so if an NP-C problem can be solved efficiently, then we can transform the NP-I problem into the NP-C problem, and solve that efficiently, map the solution back. – seagaia Sep 28 '11 at 17:43

5 Answers5

15

Are all NP problems also NP-complete?

Only if P = NP.

enter image description here

Matt Ball
  • 354,903
  • 100
  • 647
  • 710
  • Nice visualization, but it does not explain the contradiction in the definitions or the fault in reasoning written in the question. – user2623008 Jun 16 '17 at 16:29
5

Not necessarily. It can happen that NP is a known upper-bound (ie. we know how to solve it in non-deterministic polynomial time) but not a known lower-bound (a more efficient algorithm may or may not exist).

An example of such a problem is graph isomorphism.

Your sentence "if we have an NP problem then [...] this problem can transform into an NP-complete problem" is incorrect for the simple following reason: any problem in P is also in NP, yet no problem in P is NP-complete (unless P=NP, of course).

Philippe
  • 9,582
  • 4
  • 39
  • 59
  • 4
    If P is in NP, and all NP problems transform to NP-complete problems, therefore P must also transform to NP-complete. – entitledX Sep 10 '11 at 04:01
1

If problem A polynomially transforms to problem B, that does not necessarily mean that problem B polynomially transforms to problem A. A problem can only be reduced to a problem of equal or greater difficulty.

If problem C is in NP, but is not NP-complete, then it can be polynomially transformed into any NP-complete problem, but that is not enough to make it NP-complete, because it does not imply that all the other problems in NP polynomially transform to problem C.

user2623008
  • 311
  • 3
  • 13
0

At least it should be possible to show that a number of NP complete problems are also in P. Take for example the problem of sieving odd prime numbers from from composite odd numbers in a set of odd numbers. It is possible to derive a method in P of doing it. The verification method can also be in P as is discussed in the link below.

https://www.academia.edu/s/bcb7736e1e/proof-of-the-p-verses-np-problem-part-two?source=link

Take the Goldbach conjecture problem, It can be shown to NP complete, the primes adding up to an even number greater than 2 can be obtained in linear time. Each Goldbach number has its own Characteristic line with Goldbach points as points with prime coordinates that add up to the Golbach number. See the link below for more information:

https://www.academia.edu/35904487/Proof_of_the_P_verses_NP_problem-part_one

Samuel
  • 101
  • 1
0

I just want to point out the figure showing P=NP=NPC(if P=NP) in the other answer is wrong. There are 2 cases: empty language ϵ and its complement ∑∗ in P can never be NPC. Because if these two are in NPC, we cannot map any language in P/NP with yes instance to ϵ and map any language in P/NP with no instance to ∑∗, which contradicts the definition of NPC: any NP can be reduced to NPC.

Shawn
  • 49
  • 2