**NP**-hardness (non-deterministic polynomial-time hardness), in computational complexity theory, is the

**defining**property of a class of problems that are, informally, "at least as

**hard**as the hardest problems in

**NP**".

Similarly, you may ask, what is NP complete and NP hard problems?

In computational complexity theory, an

**NP**-**complete**decision**problem**is one belonging to both the**NP**and the**NP**-**hard**complexity classes. In this context,**NP**stands for "nondeterministic polynomial time". The set of**NP**-**complete problems**is often denoted by**NP**-C or NPC.What is P NP and NP complete?

**P**is set of problems that can be solved by a deterministic Turing machine in Polynomial time.

**NP**is set of decision problems that can be solved by a Non-deterministic Turing Machine in Polynomial time. Therefore,

**NP**-

**Complete**set is also a subset of

**NP**-

**Hard**set.

What does it mean to be NP?

**NP**stands for Non-deterministic Polynomial time. This

**means**that the problem can be solved in Polynomial time using a Non-deterministic Turing machine (like a regular Turing machine but also including a non-deterministic "choice" function). Basically, a solution has to be testable in poly time.