2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :) 전체 ν¬μŠ€νŠΈλŠ” Algorithm ν¬μŠ€νŠΈμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.

3 minute read

2020-1ν•™κΈ°, λŒ€ν•™μ—μ„œ β€˜μ•Œκ³ λ¦¬μ¦˜β€™ μˆ˜μ—…μ„ λ“£κ³  κ³΅λΆ€ν•œ λ°”λ₯Ό μ •λ¦¬ν•œ κΈ€μž…λ‹ˆλ‹€. 지적은 μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ :) 전체 ν¬μŠ€νŠΈλŠ” Algorithm ν¬μŠ€νŠΈμ—μ„œ ν™•μΈν•˜μ‹€ 수 μžˆμŠ΅λ‹ˆλ‹€.


P-and-NP

β€œ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 λ˜λŠ”μ§€λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ μ‚΄νŽ΄λ³΄μž.

ν•¨κ»˜λ³΄κΈ°

Categories:

Updated: