Hamilton Cycle Problem
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Given a graph, find a cycle that passes through every vertex exactly once.
์ฆ, ํ์ ํ๋ฒ๋ ๋ผ์ง ์๊ณ ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ ์ ์๋์ ๋ํ ์ง๋ฌธ์ด๋ค.
DP ์ฑํฐ์์ ๋ค๋ฃฌ <์ธํ์ ์ํ๋ฌธ์ ; Traveling Salesman Problem>์ ๋น์ทํ๋ค. ๊ทธ๋ฌ๋ ์ธํ์ ๋ฌธ์ ๋ ํด๋ฐํด ์ฌ์ดํด์ ์ฐพ๋, ๊ทธ ์ค์์ ๊ฐ์ฅ ์์ ๋น์ฉ์ ๊ฐ๋ ์ฌ์ดํด์ ์ฐพ์์ผ ํ๋ค. ์ฆ, ์ธํ์ ๋ฌธ์ ๋ ํด๋ฐํด ์ฌ์ดํด ๋ฌธ์ ์์ ์ต์ ํด์ ๋ํ ์กฐ๊ฑด์ด ๋ ๋ถ์ ๊ฒ์ด๋ค.
๊ฐ์ (edge)์ ๋ชจ๋ ๋ฐฉ๋ฌธํด์ผ ํ๋ <์ค์ผ๋ฌ ๊ฒฝ๋ก ๋ฌธ์ ; Euler Path Problem>์ ๋น๊ตํ๋ฉด, ์ ์ (vertex)์ ๋ฐฉ๋ฌธํ๋ ํด๋ฐํด ๊ฒฝ๋ก ๋ฌธ์ ์ชฝ์ด ๋ ์ฌ์ ๋ณด์ผ์ง๋ ๋ชจ๋ฅธ๋ค. ๋ณดํต ๊ทธ๋ํ์์ ๊ฐ์ ์ด ์ ์ ๋ณด๋ค ์๊ฐ ๋ง๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ ํด๋ฐํด ๊ฒฝ๋ก ๋ฌธ์ ์ชฝ์ด ํจ-์ฌ ์ด๋ ต๊ณ , poly-time algorithm๋ ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๊ฒ์ ์ ์ ์ ํ๋ฒ์ฉ๋ง ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด ๊ฐ์ ์ ํ๋ฒ์ฉ๋ง ๋ฐฉ๋ฌธํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐํ ์กฐ๊ฑด์ด๊ธฐ ๋๋ฌธ์ด๋ค!
NP ๋ฌธ์ ์ธ๊ฐ?
<์ธํ์ ๋ฌธ์ >์ ๋ง์ฐฌ๊ฐ์ง๋ก <ํด๋ฐํด ๊ฒฝ๋ก ๋ฌธ์ > ๋ฌธ์ ๋ class NP์ ์ํ๋ค. solution $S$๊ฐ ์ฃผ์ด์ก์ ๋ ๊ฒ์ฐ์ poly-time์ ๊ฐ๋ฅํ์ง๋ง, solution์ ์ฐพ๋ poly-time ์๊ณ ๋ฆฌ์ฆ์ด ์กด์ฌํ์ง ์๋๋ค. ๊ทธ๋์ <ํด๋ฐํด ๊ฒฝ๋ก ๋ฌธ์ >๋ NP ๋ฌธ์ ์ ํด๋นํ๋ค. P, NP์ ํด๋น ๋ด์ฉ์ โP and NPโ ํฌ์คํธ๋ฅผ ์ฐธ๊ณ ํ์.