P and NP
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Search Problems
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ ํ์๋ ๋๋ถ๋ถ์ ๋ฌธ์ ๋ ์ง์์ ์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ์ผ์ด์ค(exponentially possible cases)๋ฅผ ๋ชจ๋ ํ์ํ๋ค๋ฉด ํด๊ฒฐํ ์ ์์๋ค. ์ด๋, ์ฐ๋ฆฌ๊ฐ ์ฐพ๋ ํด(่งฃ)๋ path, tree, matching ๋ฑ์ด ๋ ์ ์๋๋ฐ
- $n$๋ช ์ ์๋ ์ $n$๋ช ์ ์๋ ์ ๋งค์นญ โ $n!$
- $n$๊ฐ ๋ ธ๋๊ฐ ์๋ ์์ ๊ทธ๋ํ์ spanning tree โ $n^{n-2}$ Caleyโs Formula [link]
- undirected graph์์ ๋ ธ๋ $s$์์ ๋ ธ๋ $t$๋ก ๊ฐ๋ path์ ์ โ exponentially many
์์ ๊ฐ์ด ๊ทธ๋ํ๋ ๋งค์นญ ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด โ๊ฐ๋ฅํ ๋ชจ๋ โ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณธ๋ค๋ฉด exponentially manyํ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ชจ๋ ํ์ํด์ผ ํ๊ณ , ์ด๊ฒ์ ์ค์ ์์๋ ๋ถ๊ฐ๋ฅํ๋ค. ๊ทธ๋์ ์ง๊ธ๊น์ง๋ exponentially manyํ ๊ฒฝ์ฐ๋ฅผ ๋ชจ๋ ์ดํด๋ณด๋๊ฒ ์๋๋ผ ์๊ณ ๋ฆฌ์ฆ ํ ํฌ๋์ ํ์ฉํด polynomially manyํ ๊ฒฝ์ฐ๋ง ์ดํด๋ณด๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค!
- Minimum Spanning Tree
- Greedy Algorithm: $O(E \log V)$
- $s-t$ shortest path
- Dijkstraโs Algorithm: $O((V + E) \log V)$
- Chain Matrix Multiplication
- Dynamic Programming: $O(n^3)$
- Bipartitie Matching
- Network Flow(Linear Programming): $O(n^3)$
๊ทธ๋ฌ๋ ์์ ์ผ์ด์ค๊ฐ ์ด์ด ์ข์ ๊ฒ์ผ ๋ฟ, ์ฌ์ ํ ๋ง์ search problem๋ค์ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ด exponential complexity๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ์ด๋ฒ ์ฑํฐ์์๋ ์ด๋ฐ exponential complexity ๋ง์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅํ ๋ฌธ์ ๋ค์ ๋ํด ์ดํด๋ณด๊ฒ ๋ค ๐
P and NP
- ๊ฒฐ์ ๋ฌธ์ (Deterministic Problem)
- ๋ต์ด YES ์๋๋ฉด NO๋ก ๋ฐํ๋๋ ๋ฌธ์
- ex. $a$๋ $b$์ ๋ฐฐ์์ธ๊ฐ?
- ๋คํญ ์๊ฐ ์๊ณ ๋ฆฌ์ฆ(polynomial time algorithm)
- ์๊ฐ ๋ณต์ก๋๊ฐ $O(n^2), O(n^3), โฆ, O(n^k)$์ธ ๊ฒฝ์ฐ๋ฅผ ๋งํจ.
- ์ง์ ์๊ฐ ์๊ณ ๋ฆฌ์ฆ(exponential time algorithm)
- ์๊ฐ ๋ณต์ก๋๊ฐ $O(2^n), O(3^n), โฆ O(n^n)$์ธ ๊ฒฝ์ฐ๋ฅผ ๋งํจ.
์ฌ๊ธฐ๊น์ง๋ ์ด๋ฏธ ์๊ณ ์๋ ๋ด์ฉ์ด๋ค.
โ๋ชจ๋ Search Problem์ proposed solution $S$๊ฐ ์ฃผ์ด์ก์ ๋, ๊ทธ๊ฒ์ด ์ ๋ง๋ก solution์ธ์ง ์๋์ง poly-time ์์ ํ๋จํ ์ ์๋ค.โ
โFor any search problem, there is an efficient checking algorithm $C$ that takes as input the given instance $I$(amount of input data), as well as the proposed solution $S$, and outputs $true$ if and only if $S$ really is a solution the problem. Moreover the running time of $C(I, S)$ is bounded by a polynomial in $| I |$, the length of the instance.โ
๊ฐ์ ค_gazelle๋์ โP vs NP ์ฝ๊ฒ ์ดํดํ๊ธฐโ ํฌ์คํธ๊ฐ ๊ฒฐ์ ์ /๋น๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ ์ดํดํ๋๋ฐ ํฐ ๋์์ด ๋์์ต๋๋ค ๐
- ๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ(deterministic algorithm)
- ๊ณ์ฐ์ ๊ฐ ๋จ๊ณ์์ ๋จ ํ ๊ฐ์ง ์ ํ์ง๋ง ๊ณ ๋ คํ๋ ์๊ณ ๋ฆฌ์ฆ
- DFS๋ deterministic์ด๋ค. ์๋ํ๋ฉด ๋ฐฉ๋ฌธํ๋ ์์๊ฐ ๋ช ํํ ์ ํด์ ธ ์๊ธฐ ๋๋ฌธ์ด๋ค: pre-order, post-order, in-order
- ๋ง์ฐฌ๊ฐ์ง๋ก merge sort๋ deterministic์ด๋ค. Divide-and-Conquer๋ก ํ์ง๋ง ๋ฌธ์ ๋ฅผ ํธ๋ ์์๋ ํจ์์ฝ ์์๋ฅผ ์๊ฐํ๋ฉด stack์ ์์ธ ์์๋๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ์์๊ฐ ๋ช ํํ๋ค.
- ๋น๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ(non-deterministic algorithm)
- ๊ณ์ฐ์ ๊ฐ ๋จ๊ณ์์ ์ฌ๋ฌ ๊ฐ์ง ์ ํ์ง๋ฅผ โ๋์์โ ๊ณ ๋ คํ๋ ์๊ณ ๋ฆฌ์ฆ
- ๊ฐ์ ค๋์ ์ํฐํด์์๋ ๋น๊ฒฐ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด ์ ํ์ง๋ฅผ โ๋์์โ ๊ณ ๋ คํ๋ ๊ฑธ โ๋ถ์ ์ โ์ด ๋น์ ํ์ต๋๋ค!
- ์ ๊ฐ ๊ณต๋ถํ ์ ๊ณต ์์ ์์๋ Non-deterministic Algorithm์ โA special (and quite unrealistic) sort of algorithm can find and verify the search problem in polynomial time.โ์ผ๋ก ๊ธฐ์ ํ๊ณ ์์ต๋๋ค. โ๋ถ์ ์ โ์ด๋ผ๋ unrealistic ๋ฐฉ๋ฒ์ ์ฐ๋ ์๊ณ ๋ฆฌ์ฆ์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์์์๋ง ์กด์ฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด์ฃ .
๋ช๊ฐ์ง ์ฌ๋ก๋ฅผ ํตํด Non-deterministic Algorithm์ ์ดํด๋ด ์๋ค.
[์์ ํฉ์ด 0์ด ๋๋ ๋ถ๋ถ์งํฉ]
$\{ -5, 6, 1, 2, -10, -7, 13 \}$๋ผ๋ ์ ์ $n$๊ฐ์ ์งํฉ์ด ์์ ๋, ์ด ์งํฉ์ ๋ถ๋ถ ์งํฉ ์ค ์์์ ํฉ์ด 0์ด ๋๋ ๋ถ๋ถ ์งํฉ์ด ์กด์ฌํ๋์ง Yes/No๋ก ๋๋ตํ๋ผ.
length $n$์ ๊ฐ๋ boolean sequence $(0, 0, โฆ, 1)$๋ก ๋ถ๋ถ์งํฉ์ ํํํด ๋ชจ๋ ๋ถ๋ถ์งํฉ ์กฐํฉ์ ๋ชจ๋ ํ์ธํด ์์ ํฉ์ด 0์ด ๋๋์ง ํ์ธํ๋ค.
์ด ๋ฌธ์ ๋ฅผ Deterministic Algorithm์ผ๋ก ํธ๋ ค๊ณ ํ๋ค๋ฉด, $O(2^n)$ ๋งํผ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋ฌ๋ ๋ง๋ฒ์ Non-deterministic Algorithm์ผ๋ก ํผ๋ค๋ฉด $O(n)$์ ์๊ฐ์ผ๋ก ํ ์ ์๋ค. ๋ค์์ ๋์ค๊ฒ ์ง๋ง, Non-deterministic polynomial solvable ์ด๋ฏ๋ก Class $\textbf{NP}$์ ์ํ๋ค!
[์ธํ์ ๋ฌธ์ : ๋ชจ๋ ์ ์ ์ ๋จ ํ๋ฒ์ฉ ๋ฐฉ๋ฌธํ๋ ๊ธธ์ด ์กด์ฌํ๋๊ฐ?]
์ด ๋ฌธ์ ๋ polynomial time ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๋ฌ๋ $n$๊ฐ ๋ ธ๋์ permutation์ ๋์์ ์ดํด๋ณผ ์ ์๋ ๋ง๋ฒ์ Non-deterministic Algorithm์ผ๋ก ํผ๋ค๋ฉด $O(n)$์ ์๊ฐ์ผ๋ก ํ ์ ์๋ค. ๋ฐ๋ก ์์ [์์ ํฉ์ด 0์ด ๋๋ ๋ถ๋ถ์งํฉ] ๋ฌธ์ ์ ๋น์ทํ์ง๋ง ์กฐ๊ธ ๋ค๋ฅธ Non-deterministic Algorithm์ด๋ค.
๋งจ ์ฒซ ๋ฐฉ๋ฌธ์ด 1์ธ permutation์ ์๊ฐํด๋ณด์. ๋ค์ ๋ฐฉ๋ฌธ์ $2 \sim n$์ด ๊ฐ๋ฅํ ๊ฒ์ด๋ค. ๋ถ์ ์ ์ ์จ์ $(n-1)$ ๊ฐ๋ฆผ๊ธธ์ ๋์์ ๋ชจ๋ ํ์ธํ๋ค. ๊ฐ๊ฐ์ ๊ฐ๋ฆผ๊ธธ์์ $(n-2)$ ๊ฐ๋ฆผ๊ธธ์ ๋ ๋์์ ๋ชจ๋ ํ์ธํ๋คโฆ
์ด๋ ๊ฒ ๋์์ ๋ฐฉ๋ฌธํ ์ ์๋ค๋ฉด, non-deterministic algorithm์ผ๋ก $O(n)$ ์๊ฐ์ ํด๊ฒฐ ๊ฐ๋ฅํ๋ฏ๋ก Class $\textbf{NP}$์ ์ํ๋ค!
- Class P๋ Deterministic Algorithm์ผ๋ก poly-time ์์ solvableํ ๋ฌธ์ ๋ค.
- ex. $a$๋ $b$์ ๋ฐฐ์์ธ๊ฐ? โ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ผ๋ก ํ ์ ์์
- ๋ฐ๋ฉด Class $\textbf{NP}$๋ Non-deterministic Algorithm์ผ๋ก poly-time ์์ solvableํ ๋ฌธ์
- ๋ชจ๋ Deterministic Algorithm์ Non-deterministic Algorithm์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ Class P๋ Class $\textbf{NP}$์ ํฌํจ๋๋ค.
- Class $\textbf{NP}$ ๋ฌธ์ ์ ํด๋นํ๋๋ผ๋ ์ ์ ํ Algorithm Technique์ ์ฌ์ฉํ๋ฉด Class $\textbf{P}$์ ์ํ๋ ๋ฌธ์ ๋ค๋ ์๋ค.
- ์ ๋ ฌ ๋ฌธ์ ๋ permutation์ ๋ชจ๋ ํ์ธํ๋ Non-deterministic Algorithm์ผ๋ก ํ ์ ์๋ Class $\textbf{NP}$ ๋ฌธ์ ์ด์ง๋ง, ์ ์ ํ Deterministic ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค๋ฉด $O(n^2)$ ๋๋ $O(n \log n)$์ผ๋ก ํด๊ฒฐํ ์ ์๋ Class $\textbf{P}$ ๋ฌธ์ ์ด๋ค.
๊ณ์ฐ ์ด๋ก ์ ๋ฏธํด๊ฒฐ ๋ฌธ์ ๋ก โClass $\textbf{P}$์ Class $\textbf{NP}$๊ฐ ๋์ผํ ์งํฉ์ธ์งโ๋ฅผ ํ๋จํ๋ P=NP ๋ฌธ์ ๊ฐ ์๋ค. ๊ฐ๋ฅํ ๊ฒฐ๋ก ์ผ๋ก๋ ์๋ ์ธ ๊ฐ์ง๊ฐ ์๋ค.
- $\textbf{P} = \textbf{NP}$, ์ฆ โ๋ชจ๋ $\textbf{NP}$ ๋ฌธ์ ๋ $\textbf{P}$๋ฌธ์ ์ด๋ค.โ๊ฐ ์ฐธ์ด๋ผ๋ฉด โ์ฝ๊ฒ ๊ฒ์ฐํ ์ ์๋ ๋ชจ๋ ๋ฌธ์ ๋ค์ ๋ชจ๋ ์ฝ๊ฒ ํ ์ ์๋ค, ์ฆ ์ฝ๊ฒ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๋ค.โ
- $\textbf{P} \neq \textbf{NP}$, ์ฆ โDeterministic Algorithm์ผ๋ก ํ ์ ์๋ Class $\textbf{NP}$ ๋ฌธ์ ๊ฐ ์กด์ฌํ๋ค.โ
- ์ฆ๋ช ํ ์ ์๋ค.
$\textbf{P}$์ $\textbf{NP}$๋ฅผ ์ ์ดํดํ๋ค๋ฉด ๋ค์์ $\textbf{NP-complete}$์ $\textbf{NP-hard}$๋ฅผ ์ดํดํ๊ณ ์ถ์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ Stayโฆ ์ด ๋ ๊ฐ๋ ์ ์ดํดํ๋ ค๋ฉด ํ์(reduction)์ ๋จผ์ ์ดํดํด์ผ ํ๋๋ฐ, reduction์ ์๋ฌด ๋ฐํ์์ด ๋ฐ๋ก ์ดํดํ๋ ค๊ณ ํ๋ฉด ์ด๋ ต์ง๋ง ํ๋ค. ๊ทธ๋์ ์ฌ๋ฌ $\textbf{NP}$ class ๋ฌธ์ ๋ค์ ์ดํด๋ณด๊ณ , ๊ทธ $\textbf{NP}$ class ๋ฌธ์ ๋ค์ด ์๋ก ์ด๋ป๊ฒ ํ์(reduction) ๋๋์ง๋ฅผ ์ดํด๋ณธ ํ์ ๋ง-์ง๋ง์ $\textbf{NP-complete}$์ $\textbf{NP-hard}$์ ๊ฐ๋ ์ ์ดํด๋ณผ ๊ฒ์ด๋ค ๐
- Satisfiability (SAT)
- Traveling Salesman Problem (TSP)
- Hamilton Cycle Problem (HCP)
- Balanced Cut
- 3D Matching
- Integer Linear Programming
- Independent Set, Vertex Cover, Clique
- Longest Path, Subset Sum