Hamilton Cycle Problem
2020-1νκΈ°, λνμμ βμκ³ λ¦¬μ¦β μμ μ λ£κ³ 곡λΆν λ°λ₯Ό μ 리ν κΈμ λλ€. μ§μ μ μΈμ λ νμμ λλ€ :) μ 체 ν¬μ€νΈλ Algorithm ν¬μ€νΈμμ νμΈνμ€ μ μμ΅λλ€.
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β ν¬μ€νΈλ₯Ό μ°Έκ³ νμ.