3.8 KiB
3.8 KiB
type |
---|
theoretical |
Definition
- Class P
- The set of decision problems that can be solved by a deterministic Turing machine in polynomial time1. These are problems considered to be efficiently solvable.
O(\log n)
- The set of decision problems for which a given solution can be verified in polynomial time by a deterministic Turing machine2. NP stands for "nondeterministic polynomial time."
- :LiLoaderPinwheel: Does
\mathbf{P = NP}
?- This is one of the most important open questions in computer science. It asks whether every problem whose solution can be quickly verified can also be quickly solved.
Understanding P and NP
Class P Problems
- Solvable in polynomial time.
- Algorithms exist that can find a solution efficiently as the input size grows.
- As seen in:
- Prime Testing: Determining if a number is prime.
- Shortest Path: Finding the shortest path in a graph (e.g., Dijkstra's algorithm).
- Sorting Algorithms: Such as Quick Sort and Merge Sort.
Class NP Problems
- Solutions can be verified in polynomial time.
- No known polynomial-time algorithms to solve all NP problems.
- As in:
- Subset Sum: Determining if a subset of a given set of integers sums up to a target integer.
- 3-SAT: Determining if a Boolean formula in conjunctive normal form with at most three literals per clause is satisfiable.
- Hamiltonian Cycle: Determining if a Hamiltonian cycle exists in a graph.
NP-Complete Problems
- The hardest problems in NP. A problem is NP-Complete if:
- It is in NP.
- Every problem in NP can be reduced to it in polynomial time3.
- Implications: If any NP-Complete problem is solvable in polynomial time, then
P = NP
.- Traveling Salesperson Problem (Decision Version): Determining if there's a tour shorter than a given length.
- Clique Problem: Finding a complete subgraph (clique) of a certain size in a graph.
- Vertex Cover: Determining if there exists a set of vertices covering all edges.
Problems
Subset Sum Problem
- Input: A set of integers and a target sum.
- Question: Is there a subset whose sum equals the target?
- Approach:
- Exponential Time: Checking all possible subsets.
- Dynamic Programming: Pseudo-polynomial time algorithm when numbers are small.
3-SAT Problem
- Input: A Boolean formula in 3-CNF (Conjunctive Normal Form).
- Question: Is there a truth assignment that satisfies the formula?
- Importance: The first problem proven to be NP-Complete (Cook-Levin theorem).
Strategies
- Find solutions close to optimal in polynomial time.
- Practical methods that find good-enough solutions without guaranteeing optimality (heuristics).
- Restricting the problem to a subset where it becomes solvable in polynomial time.
NP vs. NP-Complete Differences
Aspect | NP | NP-Complete |
---|---|---|
Definition | Problems whose solutions can be verified quickly. | Hardest problems in NP. All NP problems reduce to them. |
Relation to P | Contains P (P ⊆ NP). | If any NP-complete problem is in P, P = NP. |
Ease of Solution | Some problems may have unknown solution methods. | Believed to be computationally difficult to solve. |
Examples | Subset Sum, 3-SAT | TSP, Clique, Vertex Cover |
-
a theoretical computing machine that uses a predetermined set of rules to determine its actions. ↩︎
-
a theoretical model that, unlike a deterministic Turing machine, can make "guesses" to find solutions more efficiently. ↩︎
-
a method of converting one problem to another in polynomial time, preserving the problem's computational complexity. ↩︎