๐ง NP-Hard(NP ๋ํด) Problem X๊ฐ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ์ด๋ฅผ NP-Hard๋ผ ๋ถ๋ฆ
๋๋ค. ์ด๋ ํ Y $\in$ NP ์ ๋ํด์๋, Y $\leq_p$ X ๊ฐ ์ฑ๋ฆฝ๋๋ค. ์ฆ NP์ ์ํ ์ด๋ ํ ๋ฌธ์ ์ ๋ํด์๋ X๋ก์ Polynomial Time Reduction์ด ์กด์ฌํด์ผ ํฉ๋๋ค. Halting Problem(์ ์ง ๋ฌธ์ )์ NP-Hard์ ์ํ๋ ๋ํ์ ์ธ ๋ฌธ์ ์
๋๋ค. ๐ง NP-Complete(NP ์์ ) Problem X๊ฐ ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ฉด ์ด๋ฅผ NP-Complete๋ผ๊ณ ๋ถ๋ฆ
๋๋ค. 1) ์ด๋ ํ Y $\in$ NP ์ ๋ํด์๋, Y $\leq_p$ X ๊ฐ ์ฑ๋ฆฝ๋๋ค. 2) X $\in$ NP ์ฌ์ผ ํฉ๋๋ค. ์ฆ NP-Complete๋ NP-Hard์ด๋ฉด์ NP์ธ ๋ฌธ์ ๋ค์ ์๋ฏธํฉ๋๋ค. Haltin..
๐ฅ Computer Science/์๊ณ ๋ฆฌ์ฆ
๐ง Problem ์ด์ ๊ธ์์ ์ดํด๋ณด์๋ problem์ ๊ด๋ จํ ๊ฐ๋
๋ค์ ๋ค์ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. Problem Instance : ์ด๋ค ๋ฌธ์ (problem)๋ฅผ ์ ์ํ๋ input์ด๋ฉฐ, ์ด๋ ํด๋น input์ ์ผ์ข
์ binary string์ผ๋ก ์๊ฐํ ์ ์์ต๋๋ค. Problem : ์ด๋ค ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋(YES๋ผ ๋ตํ๋) problem instance๋ค์ ์งํฉ์ ์๋ฏธํฉ๋๋ค. ์ด๋ Problem์ ์ํ๋ instance๋ค์ YES instance๋ผ ํฉ๋๋ค. Algorithm : ์ด๋ค problem X์ ๋ํ์ฌ, ์ด๋ค mapping ํจ์ A๊ฐ ์์์ s $\in $ X์ ๋ํ์ฌ A(s) = YES์ด๊ณ , ์ญ( A(s) = YES์ผ ๊ฒฝ์ฐ s $\in$ X )๋ ์ฑ๋ฆฝํ๋ ๊ฒฝ์ฐ A๋ฅผ problem X๋ฅผ ํด๊ฒฐํ..
๐ง Reduction ์ด๋ ํ ๋ฌธ์ X์ Y๋ฅผ ๊ฐ์ ํ๋๋ก ํ๊ฒ ์ต๋๋ค. (์๋ฐํ ์ ์๋ ์๋๋๋ค) ์ด ๋ Y๋ฅผ ํด๊ฒฐํ๋ ์ด๋ ํ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ๊ณ , ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ์ฌ ๋ฌธ์ X๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋์์ธ ํ ์ ์๋ ๊ฒฝ์ฐ, ๋ฌธ์ X์์ Y๋ก์ Reduction์ด ๊ฐ๋ฅํ๋ค๊ณ ํฉ๋๋ค. (X is reducible to Y) ์ด๋ฅผ ๋ณดํต X $\leq$ Y ๋ก ํํํฉ๋๋ค. ์ฆ X $\leq$ Y ์ธ ๊ฒฝ์ฐ, X๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ Y๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๋ณด๋ค ์ ๋๋ก ์ด๋ ค์ธ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ง๋ก๋ Y๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์ ์ด๋ X๋ฅผ ํด๊ฒฐํ๋ ๊ฒ ๋งํผ ์ด๋ ต๋ค๊ณ ํ ์ ์์ต๋๋ค. Reduction์ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋์์ธํ๊ฑฐ๋, ์ด๋ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ์ง ์๋(ํน์ ๋งค์ฐ ํด๊ฒฐํ๊ธฐ ํ๋ ) ๊ฒ์ ์ฆ..
๐ง Non-Comparison Sort ์ด์ ๊ธ์์ Comparison Based Sort๋ Lower Bound๊ฐ Ω(n log n)์ด๋ผ๋ ๊ฒ์ ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ์ ์ดํด๋ณผ ์๊ณ ๋ฆฌ์ฆ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(n)์ธ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ์ด๋ Comparison Based Sort๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ์ด์ ์ ๊ตฌํ Lower Bound๋ ์๋ชป๋์ง ์์์์ ๋ฏธ๋ฆฌ ๋ฐํ๊ณ ๋์ด๊ฐ๊ฒ ์ต๋๋ค. ๐ง Counting Sort (๊ณ์ ์ ๋ ฌ) ์ฐ์ ๋ฐฐ์ด A[0, ..., n]๋ฅผ 1๋ถํฐ k ์ฌ์ด์ ์ ์ ๋ฐฐ์ด์ด๋ผ ํ๊ฒ ์ต๋๋ค. ๊ณ์ ์ ๋ ฌ์ ๋ค์๊ณผ ๊ฐ์ด ์ด๋ฃจ์ด์ง๋๋ค. ํฌ๊ธฐ๊ฐ k์ธ Counter ๋ฐฐ์ด C[0, 1, 2, ..., k]๋ฅผ ์ ์ํฉ๋๋ค. ํด๋น ๊ฐ๋ค์ ๋ชจ๋ 0์ผ๋ก ์ด๊ธฐํํฉ๋๋ค. A[0]๋ถํฐ A[n]๊น์ง ์ฝ์ผ๋ฉด์ $0 \leq i ..
๐ง Lower BoundUpper Bound๋ ๋น
์ค ํ๊ธฐ๋ฒ์ ์ฌ์ฉํด ๋ณด์๋ค๋ฉด ์ด๋ฏธ ์์ค ๊ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.Lower Bound ์ญ์ ์ด์ ๋น์ทํฉ๋๋ค. ์ด๋ค ๋ฌธ์ ๊ฐ ์ฃผ์ด์ก์ ๋, 'ํด๋น ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ Lower Bound๊ฐ T์ด๋ค.'์ ์๋ฏธ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.(์ด๋ค ๊ฐ์ ํ์์) ํด๋น ๋ฌธ์ ๋ฅผ T ์๊ฐ๋ณด๋ค ๋ ๋นจ๋ฆฌ ํด๊ฒฐํ ์ ์๋ค.์ด๋ ๊ฐ์ ์ ๊ณ์ฐ ๋ชจ๋ธ, ์ถ๊ฐ ์ฌ์ฉ ๊ณต๊ฐ ๋ฑ์ ์ฌ๋ฌ๊ฐ์ง ๊ฐ์ ์ด ์์ ์ ์์ต๋๋ค.๋ํ ๋น
-์ค๋ฉ๊ฐ(Ω) ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ํ๊ธฐํฉ๋๋ค. ์์๋ฅผ ํ๋ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๊ธธ์ด n์ธ ๋ฐฐ์ด์์ ์ต๋๊ฐ์ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ lower bound๋ Ω(1)์ด๋ผ๊ณ ํํํ ์๋ ์๊ณ , Ω(n)์ด๋ผ ํํํ ์๋ ์์ต๋๋ค.์ด ๊ฒฝ์ฐ Ω(n)์ผ๋ก ๋ํ๋ด๋ ๊ฒ์ด ๋ ์ฐ์ํ(์ ์ฉํ) Lower Bou..
๐ง ํ๋ก์ด๋ ์์ฌ ์๊ณ ๋ฆฌ์ฆ ํ๋ก์ด๋ ์์ฌ ์๊ณ ๋ฆฌ์ฆ์ ์์ ์ฌ์ดํด์ด ์๋ ๊ทธ๋ํ ์์ ์กด์ฌํ๋ ๋ชจ๋ ์ ์ ์ ๋ํ์ฌ, ๊ฐ ์ ์ ๊ฐ์ ์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๊ธฐ๋ณธ ์์ด๋์ด๋ ๊ฑฐ์ณ๊ฐ๋ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๊ฒ์
๋๋ค. V = { 1, 2, ..., n } ์ผ๋ก ๋๊ณ , G์ ์์์ ๋ ์ ์ i, j์ ๋ํ์ฌ dist(i, j, k)๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํฉ๋๋ค. ์ ์ (1, 2, ..., k) ๋ง์ path์ ์ค๊ฐ ์ ์ (intermediate vertex)์ผ๋ก ํฌํจ์ํฌ ์ ์์ ๋, i ์์ j๋ก์ ์ต๋จ ๊ฒฝ๋ก์ ๊ธธ์ด ๐ง Recurrence Relation Base Case( k = 0 ) dist (i, j, 0) = 0 : i = j ์ธ ๊ฒฝ์ฐ dist (i, j, 0) = w(i, j)..
๐ง ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๊ทธ๋ํ G = (V, E) ์์์ ์ ์ u์์ v๋ก์ ๊ฐ์ฅ ์งง์ path์ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ๋ฅผ ์๋ฏธํฉ๋๋ค. ์ ๋ช
ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ์ด ์๋ ๊ทธ๋ํ์ ๋ํด์๋ง ์ฌ๋ฐ๋ฅด๊ฒ ๋์ํ๋ค๋ ์ ์ฝ์ด ์์ต๋๋ค. ๐ง Bellman-Ford ์๊ณ ๋ฆฌ์ฆ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ dp ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ ์ ์ s์์ ๊ทธ๋ํ G์ ์กด์ฌํ๋ ๋ค๋ฅธ ๋ชจ๋ ์ ์ ์ผ๋ก์ ์ต๋จ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ฉฐ, ๋งค ๋จ๊ณ๋ง๋ค ํด๋น ์ต๋จ๊ฑฐ๋ฆฌ์ ๊ธธ์ด๋ฅผ ์
๋ฐ์ดํธํ๋ฉฐ ์งํ๋๋ ์๊ณ ๋ฆฌ์ฆ์
๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก๋ ๋ฐฉํฅ(directed) ๊ทธ๋ํ๋ฅผ ๊ฐ์ ํ์ง๋ง, ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ์ ๋ํด์๋ ์ด๋ฅผ ๋ฐฉํฅ ๊ทธ๋ํ๋ก ์๊ฐํ์ฌ ์ ์ฉํ ์ ์์ต๋๋ค. ๋ฒจ๋งํฌ..
๐ง Edit Distance ์ด๋ค ๋จ์ด์ ๋น์ทํ(๊ฐ๊น์ด) ๋จ์ด๋ ์ด๋ป๊ฒ ์ ์ํ ์ ์์๊น์? ์๋ฅผ ๋ค์ด Word์ spell check ๊ธฐ๋ฅ์ ๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ด ๋น์ทํ ๋จ์ด๋ค์ ์๋ ค์ฃผ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค. Edit distance๋ ๋ string์ด ์ผ๋ง๋ ๊ฐ๊น์ด์ง ๋ํ๋ด๋ ์ฒ๋์
๋๋ค. ๋ ๋ฌธ์์ด $S_1$ ๊ณผ $S_2$ ๊ฐ์ edit distance๋ $S_1$ ์์ ์๋ 3๊ฐ์ง ์ข
๋ฅ์ ์ฐ์ฐ์ ์ต์ํ ๋ช ๋ฒ ์ํํ์ฌ $S_2$ ๋ฅผ ๋ง๋ค ์ ์๋๊ฐ๋ก ์ ์๋ฉ๋๋ค. Insertion : $S_1$ ์ ์๋ฌด ์์น์ ๋ฌธ์ ํ๋๋ฅผ ์ถ๊ฐํฉ๋๋ค. MONDT -> MONEDT Deletion : $S_1$ ์ ์๋ฌด ์์น์์ ๋ฌธ์ ํ๋๋ฅผ ์ ๊ฑฐํฉ๋๋ค. MONEDT -> MOMED Substitution : $S_1$ ..