O(N^k)
(k : 상수)2^n
)n!
)Yes/No 문제
최적화 문제
Traveling Salesman Problem
(TSP) ~ 아주 유명한 문제임.Yes/No 문제와 최적화 문제는 동전의 앞뒷면 같은 성격을 보인다.
상황
문제 A의 사례 𝞪(instance, 특정 사례)를 문제 B의 사례 𝛃로 바꾸되, 아래 성질을 만족하면 polynomial-time reduction
(다항식 시간 변환)이라 하고, 이를 𝞪 ≤ 𝗉𝛃
로 표기한다.
즉, 문제 B가 쉬운 문제라면 문제 A도 쉬운 문제이다. (둘다 다항식 시간 내 풀이 가능)
P (Polynomial)
NP (Nondeterministic Polynomial) ... Non-Polynomial의 준말아님 주의.
어떤 문제가 NP임을 보이는 것은 대부분 아주 쉽다.
다음 성질을 만족하면 문제 L은 NP-Hard
이다.
다음 두 성질을 만족하면 문제 L은 NP-Complete
이다.
NP-Complete
< 정리 >
✔︎ NP-Complete는 NP-Hard의 일부이므로 NP-Complete인 문제를 NP-Hard라고 불러도 맞다.
✔︎ NP-Complete의 성질 1)은 대부분 자명하므로, 핵심에 집중하기 위해 NP-Hard에 초점을 맞추자.
NP-Hard
이다.NP-Hard
문제인 A로부터, 문제 L로 다항식 시간안에 변환이 가능하다면, 문제 L도 NP-Hard
문제이다.NP-Hard
임은 알고 있다고 가정한다.NP-Hard
임을 보일 수 있다.Shortest path (쉬운문제)
Longest path (어려운 문제)
~~ 이 중 사이클이 없으면 쉬움(DAG:DFS & Dynamic Programming)
NP-Complete
얼핏 비슷해 보이지만 위 두 문제의 난이도는 천지차이다! (지금까지의 연구결과)
NP-Complete
라고 알려져 있음.어떤 문제가 NP-Complete/Hard
임이 확인이 되면,
만약 최적해를 찾고싶다면, 가지치기를 통한(Bounding function) Backtracking을 이용한다. 불가능하면 2)의 방법을 이용.
레오나드 레빈
"때로는 어떤 것이 불가능하다는 사실이 유용할 때도 있다."