Learning
토픽 39 / 82

NP 완전 (NP-Complete)

NP 완전 (NP-Complete)

다항 시간 내에 해를 검증할 수 있지만(NP) 다항 시간 알고리즘이 알려지지 않은 가장 어려운 문제 부류로, 모든 NP 문제가 다항 시간에 환원 가능

목적: 문제 난이도 분류, 알고리즘 한계 이해, 근사·휴리스틱 필요성

특징: NP-hard + NP, 다항 시간 미발견, 모든 NP 환원 가능

복잡도 클래스

  • P: 다항 시간 해결, O(n^k)
  • NP: 다항 시간 검증(Nondeterministic Polynomial)
  • NP-hard: NP만큼 어려움, 검증 조건 없음
  • NP-complete: NP ∩ NP-hard

P vs NP 문제: P = NP? (미해결, 밀레니엄 문제)

환원(Reduction): 문제 A를 문제 B로 변환, A ≤ B

주요 NP-완전 문제: SAT(Boolean Satisfiability, 첫 NP-완전), 외판원(TSP), 배낭(0-1 Knapsack), 그래프 색칠, 해밀턴 경로, 부분집합 합

대응 방법: 근사 알고리즘, 휴리스틱, 메타 휴리스틱(유전 알고리즘, 시뮬레이티드 어닐링), 특수 케이스, 지수 시간 허용

장점: 문제 난이도 이해, 최적화 포기 정당화, 연구 방향

단점: 다항 시간 해 없음(추정), 실용적 해결 어려움

적용사례: 스케줄링, 자원 할당, 회로 설계, 암호학, 물류

비교: P(빠름) vs NP(검증빠름) vs NP-complete(가장어려움) vs NP-hard(검증 조건없음)

연관: P vs NP, SAT, TSP, 배낭 문제, 근사 알고리즘