NP-hard Problem
IT 위키
NP-hard problem refers to a class of problems in computational complexity theory that are at least as hard as the hardest problems in NP (nondeterministic polynomial time). NP-hard problems do not necessarily belong to NP, meaning they may not have a polynomial-time verification process.
1 Definition[편집 | 원본 편집]
A problem is NP-hard if:
- Every problem in NP can be reduced to it in polynomial time.
- It does not have to be in NP itself (i.e., it may not be decidable in polynomial time).
This means that solving an NP-hard problem efficiently would allow all NP problems to be solved efficiently, but verifying a solution does not necessarily have to be efficient.
2 Relationship to NP and NP-complete[편집 | 원본 편집]
NP-hard problems are related to other complexity classes:
- P – Problems that can be solved in polynomial time.
- NP – Problems whose solutions can be verified in polynomial time.
- NP-complete (NPC) – Problems that are both in NP and NP-hard.
- NP-hard – Problems that are at least as hard as NP-complete problems but may not be in NP.
2.1 Diagram Representation[편집 | 원본 편집]
- P ⊆ NP ⊆ NP-hard
- NP-complete ⊆ NP-hard
3 Example Problems[편집 | 원본 편집]
Problem | Type | Notes |
---|---|---|
Halting Problem | Decision | Undecidable, NP-hard but not in NP. |
Traveling Salesman Problem (TSP) | Optimization | NP-hard in general form. |
Boolean Satisfiability (SAT) | Decision | NP-complete but its optimization version is NP-hard. |
Integer Programming | Optimization | General case is NP-hard. |
4 Example: Traveling Salesman Problem[편집 | 원본 편집]
The Traveling Salesman Problem (TSP) asks:
- Given a set of cities and distances between them, find the shortest route that visits each city exactly once and returns to the starting city.
- The decision version (asking if a path exists below a certain distance) is NP-complete.
- The optimization version (finding the shortest path) is NP-hard.
5 Properties[편집 | 원본 편집]
- Reductions to NP-complete problems
- Any NP-complete problem can be reduced to an NP-hard problem in polynomial time.
- No Known Polynomial-Time Solution
- Unless P = NP, no NP-hard problem has a polynomial-time solution.
- Includes Many Real-World Problems
- Scheduling, optimization, and decision problems often fall under NP-hard.
6 Applications[편집 | 원본 편집]
- Cryptography
- Many encryption schemes rely on NP-hard problems.
- Artificial Intelligence
- Games and planning problems often involve NP-hard computations.
- Operations Research
- Scheduling, routing, and logistics problems.
- Bioinformatics
- Protein folding and sequence alignment.
7 See Also[편집 | 원본 편집]
- Computational Complexity
- NP-Complete Problem
- P vs NP Problem
- Approximation Algorithm
- Hardness of Approximation