NP-Hard: If every problem in NP can be polynomial time reducible to a problem ‘A’, then ‘A’ is called NP-Hard. If ‘A’ could be solved in polynomial time then every problem in NP is ‘P’. For example. arm wrestling
P = NP, then
![NP Hard Problem](https://gateknowledge.in/wp-content/uploads/2021/05/NP-Hard-300x221.jpeg)
NP-Complete: A problem, if it is in NP and NP-Hard, then it is said to be NP-Complete problem.
![NP Hard and NP Complete Example](https://gateknowledge.in/wp-content/uploads/2021/05/NP-Hard-and-NP-Complete-Example-300x172.jpeg)
In order to colve NP = P, if we take any problem from NPC and prove that we can solve it in polynomial time then P = NP, or
We take 1 NPC problem, which is meant to be already present in NP and we say that it can never be solved in polynomial time, then we have found that there is a problem which is present in NP and which is not present in P.
Note:
- If NP-Hard or NP-Complete is solved in polynomial time, then NP = P.
- If NP or NP-Complete problem is proven to be not solvable in polynomial time, then P != NP.
But, till date it is not possible to find out whether NP = P or not.
- Status of NP is still unknown.
Suppose ‘B’ is in NP, ‘A’ is in NP-Hard.
If A can be computed in polynomial time which is NP-Hard and if we are able to convert A to B in polynomial time, then B is also NP-hard.
Now, it is given that B is already in NP and it is also proved to be NP-Hard. Therefore, B is NP-Complete.
Note: To find out whether a problem is NP-Complete, we find out one problem which is known to be NP-Complete and from that problem, we give transformation to some other problem. Then, the problem will become NP-Complete.
![NP and NP Complete NP and NP Complete](https://gateknowledge.in/wp-content/uploads/elementor/thumbs/NP-and-NP-Complete-q8xdma2d29bp6il21ravup72hxxld6yhusk6go103o.jpeg)
If NP-Complete and NP-Hard problem is converted to NP problem then, the NP problem is also NP-Complete.
Problems:-
1. Circuit-satisfyiablity (CS)
Every problem in computer system is converted into digital logic form and inputs are given. If we can find out a circuit which can solve that problem and say Yes/No. So, if we have an algorithm to solve the circuit then that is the algorithm to solve that problem.
If a problem converted in digital form can be solved in polynomial time, then that problem too can be solved in polynomial time.
This is the first problem, i.e., proved to be NP-Complete problem. Example, combination of input that can result value ‘TRUE’.
![Circuit Satisfyiability Circuit Satisfyiability](https://gateknowledge.in/wp-content/uploads/elementor/thumbs/Circuit-Satisfyiability-q8xdm5d64351dtu62rsrle1rdh72scnd4r3m93lzck.jpeg)
2. Satisfyiablity (S)
It is nothing but a formula kind. Circuit-satisfyiability problem converted into satisfyiability problem. It is a combination of boolean variables and operators.
Examples, Is there any assignment to the variables such that it produces ‘TRUE’.
(x + y + z) . (xy) . (yz)
Therefore, CS can be converted to S in polynomial time, hence this is also NP-Complete.
As all problems in the diagram are in NP and we are converting CS into S in polynomial time. Hence, S will become NP-Hard. It is already in NP and now in NP-Hard, hence NP-Complete.
3. 3CNF-Satisfyiability (3CNF-S)
It means ‘anding’ of ‘or’ terms. It contains 3 terms. Example, (x + y + z(bar)) . (a + b(bar) + c)
Now, we can convert S into 3CNF-S, therefore 3CNF-S is also NP-Complete.
4. Clique
If there is a graph then, the maximum sub graph of the given graph which is complete, is clique.
Example,
![Clique Clique](https://gateknowledge.in/wp-content/uploads/elementor/thumbs/Clique-q8xdma2a0mebja7l0p6c5tl724r4jguqxrkr61ev5k.jpeg)
BCED is not complete, but ABC is complete.
Therefore, clique solution is 3
5. Vertex Cover
If there is a graph given, how many vertices should we choose so that we cover all the edges.
Example,
![Vertex Cover Vertex Cover](https://gateknowledge.in/wp-content/uploads/elementor/thumbs/Vertex-Cover-q8xdm6ax9a8ls90rakvdcqpcaqtgesgmzrgz7z1gsw.jpeg)
Here, if we place or choose ‘A’ and ‘C’ then AB and AD is converted by ‘A’ and CD is converted by ‘C’. Therefore, all the edges can be converted by choosing ‘A’ and ‘C’ as vertices. Therefore, this is also NP-Complete problem.
![Set of NP Complete problems Set of NP Complete problems](https://gateknowledge.in/wp-content/uploads/elementor/thumbs/Set-of-NP-Complete-problems-q8xdm5d5i5sctmkvkpstkjdlw6wlwddp79n6ndzsr0.jpg)
In the diagram, Hamiltonian cycle, TSP and subset sum problems can also be converted into NP-Complete problems.
These are the basic set of NP-Complete problems.
Related Links
- Algorithms Notes – Click Here
- Data Structures Notes – Click Here