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

1 minute read

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” 포슀트λ₯Ό μ°Έκ³ ν•˜μž.

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

Categories:

Updated: