NP and Deterministic Turing Machine
NP is the class of languages accepted by a deterministic Turing Machine verifier in polynomial time. All problems in P are considered to be in NP.
Proving SAT is NP-Hard
How do I prove my SAT is NP-hard? This can be done by checking if the given assignment of variables satisfies the boolean formula.
NP-Hard Problems
-
3 SAT Problem
3-SAT is NP-Complete because any SAT formula can be rewritten as a conjunctive statement of literal clauses with 3 literals, making the satisifiability of the new statement identical to that of the original formula. -
2 SAT Problem
2SAT can be solved efficiently in O(n+m) where n is the number of variables and m is the number of clauses.
Traveling Salesman Problem (TSP) Complexity
Why is TSP not NP-complete? Since it takes exponential time to solve in NP, the solution can’t be checked in polynomial time, making TSP NP-hard but not in NP.
Complexity of TSP
TSP is classified as NP-hard because it has no "quick" solution, and the complexity of calculating the best route increases with more destinations.
Proving SAT as NPC
How did Cook prove that SAT is NPC? The Cook-Levin Theorem establishes that SAT is NP-Complete by showing any problem in NP can be reduced to it.
NP-Hard in Design and Analysis of Algorithms
A problem is NP-hard if an algorithm for solving it can be applied to any NP-problem, implying it is "at least as hard as any NP-problem".