μ™ΈνŒμ› 순회 문제 (Traveling Salesman Problem)

λΆ„λͺ… 1ν•™λ…„λ•Œ λ°°μ› μ§€λ§Œ... 기얡이 λ‚˜μ§€ μ•ŠκΈ°μ— κ΄€λ ¨λ¬Έμ œλ₯Ό ν’€λ©° μ•Œμ•„λ³΄μž.

 

μ™ΈνŒμ› μˆœνšŒ λ¬Έμ œ

N 개의 λ„μ‹œκ°€ 있고, λ„μ‹œμ™€ λ„μ‹œλ₯Ό μ—°κ²°ν•˜λŠ” 길이 μžˆλ‹€. 길은 κ°€μ€‘μΉ˜λ₯Ό κ°–λŠ”λ‹€. μž„μ˜μ˜ ν•œ λ„μ‹œμ—μ„œ μΆœλ°œν•˜μ—¬ N개의 λ„μ‹œλ₯Ό λͺ¨λ‘ λ°©λ¬Έν•˜κ³  μ›λž˜μ˜ λ„μ‹œλ‘œ λŒμ•„μ˜€κ³ μž ν•œλ‹€. ν•œλ²ˆ λ°©λ¬Έν•œ λ„μ‹œλ₯Ό λ‹€μ‹œ λ°©λ¬Έν•  수 μ—†λ‹€(μ‹œμž‘ν•œ λ„μ‹œ μ œμ™Έ). 경둜의 κ°€μ€‘μΉ˜λ“€μ˜ 합이 μ΅œμ†Œκ°€ λ˜λŠ” μˆœν™˜κ²½λ‘œλ₯Ό μ°ΎλŠ”λ‹€.

 

즉, μ „λΆ€ λ°©λ¬Έν•  λ•Œ κ°€μž₯ 적은 λΉ„μš©μ΄ λ“œλŠ” 경둜λ₯Ό μ°ΎλŠ”κ²ƒμ΄λ‹€.

 

κ΄€λ ¨ 문제λ₯Ό 보며 ν™•μΈν•΄λ³΄μž

https://www.acmicpc.net/problem/24512

 

24512번: Bottleneck Travelling Salesman Problem (Small)

μ™ΈνŒμ› 순회 λ¬Έμ œλŠ” μ˜μ–΄λ‘œ Traveling Salesman Problem (TSP) 라고 λΆˆλ¦¬λŠ” 문제둜 computer science λΆ„μ•Όμ—μ„œ κ°€μž₯ μ€‘μš”ν•˜κ²Œ μ·¨κΈ‰λ˜λŠ” 문제 쀑 ν•˜λ‚˜μ΄λ‹€. 이 쀑 λ³€μ’… 문제 쀑 ν•˜λ‚˜μΈ Bottleneck Traveling Salesman Probl

www.acmicpc.net

 λ‚œμ΄λ„ Silver 2의 비ꡐ적 μ‰¬μš΄ λ¬Έμ œμ΄λ‹€.

κ΅¬ν•˜κ³ μž ν•˜λŠ” 것은 정점 κ°„ 이동 λΉ„μš©μ˜ μ΅œλŒ“κ°’μ„ μ΅œμ†Œν™”ν•˜λŠ” 것이닀.

 

일단 λͺ¨λ“  경우의 일주에 λŒ€ν•΄ μ•Œμ•„λ΄μ•Όν•˜κΈ°μ— λ‚˜λŠ” μž¬κ·€λ₯Ό μ‚¬μš©ν–ˆλ‹€.

λ¬Έμ œμ—μ„œ μ •μ μ˜ 개수 N은 μ΅œλŒ€ 9이기에 N*N의 리슀트 costλ₯Ό λ§Œλ“€μ–΄ cost[from][to]=value 와 같이 λ‚˜νƒ€λ‚΄μ—ˆλ‹€.

μž¬κ·€λ‘œ permutation을 λ‚˜νƒ€λ‚Όλ•Œμ˜ μ½”λ“œμ™€ λΉ„μŠ·ν•˜κ²Œ μž‘μ„±ν–ˆλ‹€.ν•œλ²ˆ μ „λΆ€ λ°©λ¬Έν–ˆλ‹€λ©΄ κ·Έ μ‚¬μ΄μ˜ cost의 μ΅œλŒ€κ°’μ„ μ°Ύκ³  κ·ΈλŸ¬ν•œ μ΅œλŒ€κ°’λ“€μ˜ μ΅œμ†Œκ°€ λ˜λŠ” 경둜λ₯Ό μ°Ύμ•˜λ‹€.

 

https://www.acmicpc.net/problem/2098

 

2098번: μ™ΈνŒμ› 순회

첫째 쀄에 λ„μ‹œμ˜ 수 N이 μ£Όμ–΄μ§„λ‹€. (2 ≤ N ≤ 16) λ‹€μŒ N개의 μ€„μ—λŠ” λΉ„μš© 행렬이 μ£Όμ–΄μ§„λ‹€. 각 ν–‰λ ¬μ˜ 성뢄은 1,000,000 μ΄ν•˜μ˜ μ–‘μ˜ μ •μˆ˜μ΄λ©°, 갈 수 μ—†λŠ” κ²½μš°λŠ” 0이 μ£Όμ–΄μ§„λ‹€. W[i][j]λŠ” λ„μ‹œ iμ—μ„œ j

www.acmicpc.net

λ‚œμ΄λ„ Gold 1의 λ¬Έμ œμ΄λ‹€.

ν¬μΈνŠΈλŠ” λΉ„νŠΈλ§ˆμŠ€ν‚Ήμ„ μ΄μš©ν•˜λŠ” 것이닀.