NP-hard and NP-complete
2020-1νκΈ°, λνμμ βμκ³ λ¦¬μ¦β μμ μ λ£κ³ 곡λΆν λ°λ₯Ό μ 리ν κΈμ λλ€. μ§μ μ μΈμ λ νμμ λλ€ :) μ 체 ν¬μ€νΈλ Algorithm ν¬μ€νΈμμ νμΈνμ€ μ μμ΅λλ€.

βP and NPβ ν¬μ€νΈμμ $\textbf{NP}$ λ¬Έμ λ non-deterministic and polynomial-time solvableν λ¬Έμ λ₯Ό λ§νλ€. λλ set of all search problemsλΌκ³ λ νλ€. κ·Έλ°λ° μμ κ·Έλ¦Όμ 보면, $\textbf{P}$μ $\textbf{NP}$ μΈμλ β$\textbf{NP-complete}$β, β$\textbf{NP-hard}$βλΌλ ν΄λμ€κ° λμ 보μΈλ€. μ΄λ² ν¬μ€νΈμμλ κ·Έλ€μ λν΄ μ΄ν΄λ³΄κ² λ€.
NP-hard
Complexity Spaceλ₯Ό ννν μμ κ·Έλ¦Όμ 보면, $\textbf{NP-complete}$κ° $\textbf{NP}$μ $\textbf{NP-hard}$μ κ΅μ§ν©μΈ κ²μ λ³Ό μ μλ€. κ·Έλμ $\textbf{NP-complete}$λ₯Ό μ΄ν΄νκΈ° μν΄μ $\textbf{NP-hard}$λ₯Ό μ΄ν΄ν΄μΌ νλ€.
Definition. $\textbf{NP-hard}$
A problem $x$ is $\textbf{NP-hard}$ if every problem $y \in \textbf{NP}$ reduces to $x$.
μ¦, $\textbf{NP}$μ μνλ λͺ¨λ λ¬Έμ λ₯Ό polynomial-time reduction ν μ μλ λ¬Έμ λΌλ©΄, κ·Έ λ¬Έμ κ° $\textbf{NP-hard}$λΌλ λ§μ΄λ€. Reductionμ μλ―Έλ₯Ό μκ°νμ λ, $A \le_p B$κ° βλ¬Έμ $B$κ° λ¬Έμ $A$λ³΄λ€ λ μ΄λ ΅λ€βλ μ¬μ€μ λ§ν΄μ£Όλ, λͺ¨λ λ¬Έμ κ° νμλλ λμμ΄λΌλ©΄ κ·Έ λ¬Έμ λ μ λ§μ λ§μ λ§λ‘ μ΄λ €μ΄ λ¬Έμ μΌ κ²μ΄λ€. κ·Έλμ βhardβλΌλ ννμ΄ λΆμλ€.
$\textbf{NP-hard}$ is βharderβ than any problem of $\textbf{NP}$, in other words, βharderβ than any search problem.
$\textbf{NP-hard}$μ μνλ λνμ μΈ λ¬Έμ λ‘λ <Halting Problem>μ΄ μλ€. CSμμ μλ μ λͺ ν Undecidable λ¬Έμ μ΄κΈ°μ ν΄λΉ λ¬Έμ μ λν΄ μ μ€λͺ ν μμμΌλ‘ μ€λͺ μ λ체νλ€.
<Halting Problem>μ κ²½μ° Search Problemμ΄ μλκΈ°μ $\textbf{NP}$μ μνμ§ μλλ€. κ·Έλ¬λ $\textbf{NP}$μ μνλ, μ¦ search problemμΈ $\textbf{NP-hard}$ λ¬Έμ λ μ‘΄μ¬νλ€. κ·Έκ²μ΄ λ°λ‘ μλμμ μ΄ν΄λ³Ό $\textbf{NP-complete}$ λ¬Έμ λ€!
NP-complete
Definition. $\textbf{NP-complete}$
A problem $x$ is $\textbf{NP-hard}$ if $x \in \textbf{NP}$ and $x \in \textbf{NP-hard}$.
$\textbf{NP}$μ $\textbf{NP-hard}$μ κ΅μ§ν©λΌλ μλ―Έλ₯Ό κ·Έλλ‘ λ΄μ $\textbf{NP-complete}$μ μ μλ€. Search Problemμ μνλ $\textbf{NP-hard}$λΌλ μλ―ΈμΈλ°, λνμ μΈ λ¬Έμ λ‘ SAT λ¬Έμ κ° $\textbf{NP-complete}$ λ¬Έμ λ€.
μ΄μ ν¬μ€νΈμμλ $\textbf{NP-complete}$λ₯Ό μλμ κ°μ΄ μ μνλλ°, μ΄κ²λ λ§λ ννμ΄λ€.
Definition. $\textbf{NP-complete}$
A search problem is $\textbf{NP-complete}$ if all other search problems reduce to it.
λͺ¨λ Search Problem, μ¦ $\textbf{NP}$ Problemμ΄ ν΄λΉ λ¬Έμ λ‘ Reduction κ°λ₯νλ€λ©΄, ν΄λΉ λ¬Έμ λ $\textbf{NP-complete}$λΌλ λ§μ΄λ€. λλκ²λ <Reduction>μ ν΅ν΄ $\textbf{NP-complete}$μ μνλ λ¬Έμ κ° SAT λ¬Έμ νλκ° μλκ³ , 3-SAT, Independent-Set, 3D-Matching λ¬Έμ λ±μ΄ SAT λ¬Έμ λ‘λΆν° νμλλ©°, λ SATλ‘ λ¬Έμ λ‘ νμλ¨μ΄ μ¦λͺ λμλ€. κ·Έλμ μ§κΈκΉμ§ λͺ κ°μ ν¬μ€νΈμ κ±Έμ³ μ΄ν΄λ³΄μλ $\textbf{NP}$ λ¬Έμ λ€μ λͺ¨λ $\textbf{NP-complete}$μ΄λ€!
κ²°κ΅ $\textbf{NP-complete}$λ₯Ό μ¨μ ν μ΄ν΄νκΈ° μν΄μ κ°μ’ $\textbf{NP}$ λ¬Έμ λΆν°, $\textbf{NP-hard}$μ κ°λ κΉμ§ μμ§ν΄μΌ νλ€. λ€μ ν¬μ€νΈλΆν° κ°μ’ $\textbf{NP}$ λ¬Έμ λ€μ΄ μ΄λ»κ² Reduction λλμ§λ₯Ό νλνλ μ΄ν΄λ³΄μ.
- Reduction (2)
- Reduction (3)
- Reduction (4)