NP-hard Problem

IT 위키
AlanTuring (토론 | 기여)님의 2025년 2월 27일 (목) 08:40 판 (Created page with "'''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. ==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 p...")
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

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[편집 | 원본 편집]