๊ตญ๋ฏผ๋ํ๊ต์์ "์ฝ๊ฒ ๋ฐฐ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ" ๊ต์ฌ๋ฅผ ์ด์ฉํ
๋ฐํ๋ช ๊ต์๋์ ๊ฐ์ ๊ต์์ ์ด์ฉํ์ฌ ์์ ๋ด์ฉ์ ์ ๋ฆฌํ์์ต๋๋ค
Motivation
์ธํ์ ์ํ ๋ฌธ์ (TSP : Travelling salesman problem)
๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ๊ณ ์์ ์ ์ ์ผ๋ก ๋์์ค๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ธ๋ฐ
Brute-force ๋ฐฉ์์ผ๋ก n๊ฐ์ ์ ์ ์ ๋ชจ๋ permutation(์์ด)์ ์กฐ์ฌํด์ผํจ
=> O(n!)
TSP ๋ฌธ์ ๋ฅผ ๋คํญ์๊ฐ์ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ ๊น?
์ด๋ก ์ ๋ถ๊ฐ๋ฅํจ
Types of Problems
Tractable Problem : ์
๋ ฅ n์ ๋ํ์ฌ ํธ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ๋คํญ ํจ์ f(n) ์ผ๋ก ํํ ๋๋ ๋ฌธ์
Intractable Problem: ๋คํญ ์๊ฐ์์ ํ ์ ์๋ ๋ฌธ์
=> Θ(2^n) ์ด๋ Θ(n!) ๊ฐ์ ๊ฒ ๋ค์ Intractable Problem
Decision Problem / Optimization Problem
ํ ์ ์๋ ๋ฌธ์ ์ ๋ถ๋ฅ
- ๊ฒฐ์ ๋ฌธ์ (Decision Problem)
- Yes / No ์ ๋๋ต์ ์๊ตฌํ๋ ๋ฌธ์
- ex. ์ ์ u -> v ๋ก ๊ฐ๋ ๊ธธ์ด 100 ์ดํ์ธ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋๊ฐ?
- Yes / No ์ ๋๋ต์ ์๊ตฌํ๋ ๋ฌธ์
- ์ต์ ํ ๋ฌธ์ (Optimization Problem)
- ๊ฐ์ฅ ์ข์ ํด๋ฅผ ์๊ตฌํ๋ ๋ฌธ์
- ex. ์ ์ u -> v ๋ก ๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก์ ๊ธธ์ด๋ ์ผ๋ง์ธ๊ฐ?
- ๊ฐ์ฅ ์ข์ ํด๋ฅผ ์๊ตฌํ๋ ๋ฌธ์
NP-Completeness ์ด๋ก ์ ๊ฒฐ์ ๋ฌธ์ ๋ฅผ ๋์์ผ๋ก ํจ
=> ์ต์ ํ ๋ฌธ์ ๋ ๋์๋๋ ๊ฒฐ์ ๋ฌธ์ ๋ก ๋ณํํ์ฌ ๋ถ์
(๊ฒฐ์ ๋ฌธ์ ๊ฐ ์ด๋ ค์ฐ๋ฉด ๋์๋๋ ์ต์ ํ ๋ฌธ์ ๋ ์ด๋ ค์)
P, NP
P : ๋คํญ ์๊ฐ์ ํ ์ ์๋ Yes/No ๋ฌธ์ ์งํฉ
=> ์ง๊ธ๊น์ง ๋ค๋ฃฌ ์๊ณ ๋ฆฌ์ฆ ํฌ์คํ
์ ๋ชจ๋ ๋ฌธ์ ๋ P ๋ฌธ์ ์์
(Sorting, Selection, MST, SSSP, String Matching ...)
NP : ๋น๊ฒฐ์ ๋ก ์ (Non-deterministic)์ผ๋ก ๋คํญ ์๊ฐ์ ํ ์ ์๋ Yes/No ๋ฌธ์ ์งํฉ
=> Non-Polynomial ์ด ์๋!!
Deterministic / Non-deterministic
์ ์ S์์ F๋ก ๊ฐ๋ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋์ง ํ์ธํ๋ ๋ฌธ์ ๋ฅผ
๊ฒฐ์ ๋ก ์ ์ผ๋ก ํผ๋ค๋ฉด ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๋ค ๊ฐ๋ณด๋ ์ ๋ฐ์ ์์
=> ๊ฐ ์ง์ ์ ๋ฐ๋ผ๊ฐ๋๋ฐ 1๋งํผ ๊ฑธ๋ฆฐ๋ค๋ฉด, ์ต์ ์ ๊ฒฝ์ฐ 14๋งํผ์ ์๊ฐ์ด ๊ฑธ๋ฆผ
๊ฒฐ์ ๋ก ์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋์ ์ํ์์ ํ ๊ฐ์ง ๊ฒฐ์ ๋ง ๋ด๋ฆด ์ ์์
๋น๊ฒฐ์ ๋ก ์ ๊ด์ ์์๋ 3์ ์๊ฐ์ด ๊ฑธ๋ฆผ
=> F๊น์ง ๊ฒฝ๋ก๊ฐ ์กด์ฌํ๋ค๋ฉด, ๊ทธ ๊ฒฝ๋ก ๊ธธ์ด์ ๋์ผํ ์๊ฐ์ด ๊ฑธ๋ฆผ
(์์ชฝ ๋ฐฉํฅ์ผ๋ก ๋์์ ๊ฐ ์ ์์ผ๋ฏ๋ก)
๋น๊ฒฐ์ ๋ก ์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋์ ์ํ์์ ๋ชจ๋ ๊ฒฐ์ ์ ๋์์ ๋ด๋ฆด ์ ์์
์๊น NP ๋ฌธ์ ๋ ๋น๊ฒฐ์ ๋ก ์ ๋คํญ ์๊ฐ ๋ฌธ์ ๋ผ๊ณ ํ๋๋ฐ
์ด๋ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ๋คํญ์๊ฐ์ ์ ๋ต ๊ฒ์ฆ์ด ๊ฐ๋ฅํ ๋ฌธ์ ๋ฅผ ์๋ฏธํจ
=> S์์ ์ค๋ฅธ์ชฝ, ์ผ์ชฝ, ์ผ์ชฝ์ผ๋ก ๊ฐ์ ๋ F๊ฐ ๋์ค๋?
P = NP ?
์ปดํจํฐ ๊ณตํ ๋ถ์ผ์์ ์์ง ํ๋ฆฌ์ง ์์ ๋์ ๋ค ์ค ํ๋์..
์ผ๋จ ๋ชจ๋ P๋ฌธ์ ๋ NP๋ฌธ์ ์
=> P ⊆ NP
๊ฒ์ฆํ๋๊ฒ ํธ๋ ๊ฒ ๋ณด๋ค ์ฌ์
(ํ ์ค ์๋ฉด ๊ฒ์ฆ๋ ํ ์ ์์ผ๋ P ⊆ NP)
๊ทธ๋ฐ๋ฐ
NP - P = ∅ ์ธ์ง๋ ๊ฒ์ฆ๋์ง ์์
=> NP ๋ฌธ์ ์ด์ง๋ง P๋ฌธ์ ๋ ์๋ ๊ทธ๋ฐ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋์ง ๋ชจ๋ฆ
Polynomial-time Reduction
๋ฌธ์ A์ ์ ๋ ฅ α๋ฅผ ๋ฌธ์ B์ ์ ๋ ฅ β๋ก ๋ฐ๊พธ๋
1. ๋ณํ์ ๋คํญ์๊ฐ์ ์ด๋ค์ง๋ค
2. ๋ ์ฌ๋ก์ ๋ต์ด ์ผ์นํ๋ค
๋ฅผ ๋ง์กฑํ๋ฉด ๋คํญ์๊ฐ ๋ณํ ์ด๋ผ ํ๊ณ , ์ด๋ฅผ α ≤p β ๋ผ๊ณ ํ๊ธฐํจ
Example of Reduction
Hamiltonian cycle problem -> TSP (Traveling Salesman Problem)
๋ฌดํฅ ๊ทธ๋ํ G์ hamiltonian cycle์ด ์กด์ฌํ๋๊ฐ?
๋ผ๋ ๋ฌธ์ ๋ฅผ ๋ณํํ์ฌ
๊ฐ์ค์น๋ฅผ ๊ฐ๋ ๋ฌดํฅ ์์ ๊ทธ๋ํ G์ ๊ธธ์ด๊ฐ K ์ดํ์ธ hamiltonian cycle์ด ์กด์ฌํ๋๊ฐ? ๋ก ํด๊ฒฐํ ์ ์์
(์์ ๊ทธ๋ํ์์๋ hamiltonian cycle์ด ํญ์ ์กด์ฌํจ)
HAM-CYCLE์ ์ ๋ ฅ G๋ฅผ TSP์ ์ ๋ ฅ G'๋ก ๋ณํ
- G์ ๋ชจ๋ ๊ฐ์ ์ ๊ฐ์ค์น๋ฅผ 1๋ก ์ค์ ํ๊ณ
- ์๋ ๊ฐ์ ์ ์์ฑํ์ฌ ๊ฐ์ค์น๋ฅผ ๋ฌดํ๋๋ก ์ค์
- ๋ณํ ๊ณผ์ ์์ ์ ์ ์ ์๊ฐ n์ผ ๋, O(n^2)๋ผ๋ ๋คํญ์๊ฐ ๋งํผ์ด ํ์ํจ
K = n์ธ TSP ๋ฌธ์ ์ ์ ๋ต = HAM-CYCLE์ ์ ๋ต
Implication of Poly-time Reduction
๋ฌธ์ B๋ฅผ ์ฝ๊ฒ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ค๋ฉด => ๋ฌธ์ A๋ ์ฝ๊ฒ ํ ์ ์์
๋ฌธ์ B๋ฅผ ์ฝ๊ฒ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์์ด๋ => ๋ฌธ์ A๋ฅผ ์ฝ๊ฒ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ ์กด์ฌ ๊ฐ๋ฅ
์ฆ, ๋ฌธ์ B๊ฐ ๋ฌธ์ A๋ณด๋ค ์ฝ์ง ์๋ค
NP-Hard, NP-Complete
NP-Hard
๋ชจ๋ NP ๋ฌธ์ ์์ ๋คํญ์๊ฐ ๋ณํ์ด ๊ฐ๋ฅํ ๋ฌธ์ ์ ์งํฉ
=> ์ฆ, ๋ชจ๋ NP ๋ฌธ์ ๋ฅผ ๋ฌธ์ A๋ก ๋คํญ์๊ฐ ๋ณํ ๊ฐ๋ฅํ๋ฉด ๋ฌธ์ A๋ฅผ NP-Hard ๋ฌธ์ ๋ผ๊ณ ํจ
NP-Hard์๋ yes/no ๋ฌธ์ ๋ฟ๋ง ์๋๋ผ ์ต์ ํ ๋ฌธ์ ๋ ํฌํจ
NP-Complete
NP-Hard ์ด๋ฉด์ NP์ธ ๋ฌธ์
'๐ฅ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
L17 - A* Algorithm (3) | 2024.12.07 |
---|---|
L16 - NP-Completeness (2) (0) | 2024.12.05 |
L15 - Boyer-Moore Algorithm (0) | 2024.11.30 |
L14 - KMP Algorithm (1) | 2024.11.30 |
L13 - Topological Sorting (0) | 2024.11.29 |