Skip to content

Latest commit

ย 

History

History
332 lines (207 loc) ยท 24.3 KB

CombinatorialSearch.md

File metadata and controls

332 lines (207 loc) ยท 24.3 KB

๊ฐœ์š”

์ง€๊ธˆ๊นŒ์ง€ ๋‹ค๋ฃฌ ๋™์  ๊ณ„ํš๋ฒ•์ด๋‚˜ ๋ถ„ํ•  ์ •๋ณต ๋“ฑ์˜ ๋””์ž์ธ ํŒจ๋Ÿฌ๋‹ค์ž„์€ ์ ์ ˆํžˆ ์ ์šฉ๋  ๋•Œ๋Š” ๋งค์šฐ ์œ ์šฉํ•˜์ง€๋งŒ, ๋ชจ๋“  ๋ฌธ์ œ์— ์ ์šฉํ•  ์ˆ˜๋Š” ์—†๋‹ค.

์ ์ ˆํ•œ ๋ถ„ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋Š” ๋ฌธ์ œ๋ฅผ ๋ถ„ํ•  ์ •๋ณต์œผ๋กœ ํ’€ ์ˆ˜๋„ ์—†๊ณ , ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ๊ฐ€ ์ „ํ˜€ ์—†๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ์— ๋™์  ๊ณ„ํš๋ฒ•์„ ์“ธ ์ˆ˜๋„ ์—†๋‹ค. ์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์šฐ๋ฆฌ๋Š” ๊ฒฐ๊ตญ ์‹œ์ž‘์ ์ธ ์™„์ „ ํƒ์ƒ‰์œผ๋กœ ๋Œ์•„์™€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋Œ€๊ฐœ ๋‹ต์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์„ ํƒ์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค, ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์ด์šฉํ•ด ๊ฐ๊ฐ์˜ ์„ ํƒ์ง€๋ฅผ ์ฑ„์›Œ๊ฐ€๋Š” ํ˜•ํƒœ๋กœ ๊ตฌํ˜„๋˜๊ณค ํ•œ๋‹ค. ์ด๋•Œ ๋ถ€๋ถ„ ๋‹ต๊ณผ ์™„์„ฑ๋œ ๋‹ต์˜ ์ง‘ํ•ฉ์„ ํƒ์ƒ‰ ๊ณต๊ฐ„(search space)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์—ฌํ–‰ํ•˜๋Š” ์™ธํŒ์› ๋ฌธ์ œ(TSP)์—์„œ ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ํ•œ ์›์†Œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฉ๋ฌธํ•œ ์ •์ ์˜ ๋ชฉ๋ก๊ณผ ํ˜„์žฌ ์œ„์น˜๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

์™„์ „ ํƒ์ƒ‰์€ ๋ชจ๋“  ๋‹ต์„ ๋‹ค ๋งŒ๋“ค์–ด ๋ณด๋ฉด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฏ€๋กœ, ์™„์ „ ํƒ์ƒ‰์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์€ ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ์— ์ง์ ‘์ ์œผ๋กœ ๋น„๋ก€. ๊ทธ๋Ÿฐ๋ฐ ๋Œ€๋ถ€๋ถ„์˜ ๋ฌธ์ œ์—์„œ ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋Š” ๋ฌธ์ œ์˜ ๊ทœ๋ชจ์— ๋”ฐ๋ผ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ์ œ๋ฅผ n๊ฐœ์˜ ์„ ํƒ์ง€๋กœ ์กฐ๊ฐ๋ƒˆ๋Š”๋ฐ, ๊ฐ ์„ ํƒ์ง€๋งˆ๋‹ค ์„ธ ๊ฐ€์ง€์˜ ์„ ํƒ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„๋•Œ, ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋Š” ๋ฌธ์ œ์˜ ํฌ๊ธฐ๊ฐ€ 1 ์ปค์งˆ ๋•Œ๋งˆ๋‹ค ์„ธ ๋ฐฐ๋กœ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ ์„ ํƒ์˜ ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ ํ™•์ธํ•ด์•ผ ํ•  ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ์›์†Œ๊ฐ€ ๊ธ‰๊ฒฉํžˆ ๋Š˜์–ด๋‚จ์„ ๋ณด์—ฌ์ค€๋‹ค. ๋”ฐ๋ผ์„œ ์™„์ „ ํƒ์ƒ‰์€ ๋ฌธ์ œ์˜ ๊ทœ๋ชจ๊ฐ€ ์กฐ๊ธˆ์ด๋ผ๋„ ํด ๊ฒฝ์šฐ ์‚ฌ์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋ฌธ์ œ์ ์ด ์กด์žฌ.

์™„์ „ ํƒ์ƒ‰์„ ํฌํ•จํ•ด ํฌ๊ธฐ๊ฐ€ ์œ ํ•œํ•œ ํƒ์ƒ‰ ๊ณต๊ฐ„์„ ๋’ค์ง€๋ฉด์„œ ๋‹ต์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์ด ์ฑ…์—์„œ๋Š” ์กฐํ•ฉ ํƒ์ƒ‰(combinatorial search)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์กฐํ•ฉ ํƒ์ƒ‰์—๋Š” ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์ด ์žˆ์œผ๋ฉฐ, ์ด๋“ค์€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅด์ง€๋งŒ ๋ชจ๋‘ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋‘ ์ตœ์ ํ•ด๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ๋‹ต๋“ค์„ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜์—ฌ ๋งŒ๋“ค์–ด ๋ด์•ผ ํ•  ๋‹ต์˜ ์ˆ˜๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•œ๋‹ค.

์กฐํ•ฉ ํƒ์ƒ‰์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ• ์ง€ ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ์€ ๋ฌธ์ œ ์ž์ฒด์— ๋Œ€ํ•œ ๊นŠ์€ ์‹๊ฒฌ์„ ์š”๊ตฌํ•˜๋ฉฐ, ์†๋„์™€ ์ •ํ™•๋„ ์‚ฌ์ด์˜ ์ƒ์ถฉ ๊ด€๊ณ„, ๋‹ค์–‘ํ•œ ์ž…๋ ฅ ํ˜•ํƒœ ์‚ฌ์ด์˜ ์ƒ์ถฉ ๊ด€๊ณ„ ๋“ฑ์„ ๋ชจ๋‘ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์–ด๋ ค์šด ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— ์กฐํ•ฉ ํƒ์ƒ‰์—๋Š” ๋”ฑํžˆ ์ •๋‹ต์ด ์—†๋‹ค

์กฐํ•ฉ ํƒ์ƒ‰ ์ตœ์ ํ™” ๊ธฐ๋ฒ•๋“ค์€ ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

โ€ข ๊ฐ€์ง€์น˜๊ธฐ(pruning) ๊ธฐ๋ฒ•

ํƒ์ƒ‰ ๊ณผ์ •์—์„œ ์ตœ์ ํ•ด๋กœ ์—ฐ๊ฒฐ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ๋ถ€๋ถ„๋“ค์„ ์ž˜๋ผ๋‚ธ๋‹ค. ํ˜„์žฌ ์ƒํƒœ์—์„œ ๋‹ต์˜ ๋‚˜๋จธ์ง€๋ฅผ ์™„์„ฑํ–ˆ์„ ๋•Œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋‹ต์ด ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” ์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜์˜๋‹ค๋ฉด ํƒ์ƒ‰์„ ๋” ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ฐ€์ง€์น˜๊ธฐ์˜ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์˜ˆ๋กœ, ์ง€๊ธˆ๊นŒ์ง€ ์ฐพ์•„๋‚ธ ์ตœ์ ํ•ด ๋ณด๋‹ค ๋ถ€๋ถ„ํ•ด๊ฐ€ ์ด๋ฏธ ๋” ๋‚˜๋น ์กŒ๋‹ค๋ฉด ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋งˆ์ € ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ์ข…๋ฃŒํ•ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. ์™ธํŒ์› ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ, ๊ธธ์ด๊ฐ€ 10์ธ ๊ฒฝ๋กœ๋ฅผ ์ด๋ฏธ ์ฐพ์•„๋ƒˆ๋‹ค๊ณ  ํ• ๋•Œ, ์žฌ๊ท€ ํ˜ธ์ถœ ๋„์ค‘ ํ˜„์žฌ๊นŒ์ง€ ๋งŒ๋“  ๋ถ€๋ถ„ ๊ฒฝ๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ด๋ฏธ 10 ์ด์ƒ์ด ๋˜ ์—ˆ๋‹ค๋ฉด ๋” ์ด์ƒ ํƒ์ƒ‰ํ•˜์ง€ ์•Š๊ณ  ํƒ์ƒ‰์„ ์ค‘๋‹จํ•ด๋„ ๋œ๋‹ค. ๋‚˜๋จธ์ง€ ๊ฒฝ๋กœ๋ฅผ ๋งŒ๋“ค์–ด๋ด์•ผ 10๋ณด๋‹ค ์งง์€ ๊ฒฝ๋กœ๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ. ๊ฐ€์ง€์น˜๊ธฐ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์กด์žฌํ•˜๋Š” ๋‹ต ์ค‘์˜ ์ผ๋ถ€๋Š” ์•„์˜ˆ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ”„๋กœ๊ทธ๋žจ์˜ ๋™์ž‘ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค. ๋˜‘๋˜‘ํ•œ ๊ฐ€์ง€์น˜๊ธฐ ๊ธฐ๋ฒ•๋“ค์€ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด ํ˜„์žฌ ์ƒํƒœ์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋‹ต์˜ ์ƒํ•œ์„ ์ฐพ์•„ ๋‚ธ๋‹ค.

โ€ข ์ข‹์€ ๋‹ต์„ ๋นจ๋ฆฌ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ๋ฒ•

ํƒ์ƒ‰์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ๊ฑฐ๋‚˜, ํƒ์ƒ‰ ์‹œ์ž‘ ์ „์— ํƒ์š•๋ฒ•์„ ์ด์šฉํ•ด ์ ๋‹นํžˆ ์ข‹์€ ๋‹ต์„ ์šฐ์„  ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. ์™„์ „ ํƒ์ƒ‰์˜ ๊ฒฝ์šฐ ๋‹ต์„ ์–ด๋–ค ์ˆœ์„œ๋กœ ์ฐพ์•„๋‚ด๊ฑด ์ƒ๊ด€์—†์ง€๋งŒ, ๊ฐ€์ง€์น˜๊ธฐ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋” ์ข‹์€ ๋‹ต ์„ ์•Œ๊ณ  ์žˆ์œผ๋ฉด ์ข€๋” ์ผ์ฐ ํƒ์ƒ‰์„ ์ค‘๋‹จํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํƒ์ƒ‰์˜ ํšจ์œจ์ด ์ข‹์•„์ง„๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ ์ด์™€ ๊ฐ™์€ ๊ธฐ๋ฒ•๋“ค์ด ์™„์ „ ํƒ์ƒ‰์„ ์–ด๋–ป๊ฒŒ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š”์ง€๋ฅผ ๋ณด์—ฌ ์ค€๋‹ค. ํƒ์ƒ‰ ๊ณต๊ฐ„ ๋‚ด์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋‹ต(๋ณ„ํ‘œ ํ‘œ์‹œ)์ด ์„ธ ๊ฐœ ์žˆ๊ณ , ์‹œ์ž‘ ์ƒํƒœ์—์„œ ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ๋” ์ข‹์€ ๋‹ต์ด๋ผ๊ณ  ํ•ฉ์‹œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ตœ์ ํ•ด๋Š” ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ๋ณ„ํ‘œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 11.2(a)๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์ ์šฉํ•œ ์™„์ „ ํƒ์ƒ‰์˜ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ๋ณด์—ฌ์ค€๋‹ค. ๋งจ ์™ผ์ชฝ์— ์žˆ๋Š” ๋‹ต์„ ์ฐพ์€ ์ดํ›„์—๋Š” ๊ทธ ์ด์ƒ ๊นŠ์ด ํƒ์ƒ‰ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฏธ ๋‹ต์„ ํ•˜๋‚˜ ์ฐพ์•˜๋‹ค๋ฉด ์‹œ์ž‘ ์ƒํƒœ๋กœ ๋ถ€ํ„ฐ ๊ทธ๋ณด๋‹ค ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์ƒํƒœ๋ฅผ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ. ๊ทธ๋ฆผ 11.2(b)๋Š” ์ข‹์€ ๋‹ต์„ ์ผ์ฐ ์ฐพ์•„๋‚ด๋Š” ๊ธฐ ๋ฒ•์„ ์ ์šฉํ•œ ์™„์ „ ํƒ์ƒ‰์˜ ์ˆ˜ํ–‰ ๊ณผ์ •์„ ๋ณด์—ฌ์ค€๋‹ค. ์ ์ ˆํ•œ ํƒ์š•๋ฒ•์ด๋‚˜ ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•ด ๊ฐ€์šด๋ฐ ์žˆ๋Š” ๋‹ต์„ ๋จผ์ € ์ฐพ์•„๋ƒˆ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋Ÿฌ๋ฉด ๊นŠ์ด 6 ์ดํ•˜๋กœ ๋‚ด๋ ค๊ฐˆ ํ•„์š”๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ ์€ ์ƒํƒœ๋งŒ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์ตœ์ ํ•ด๋ฅผ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.


์กฐํ•ฉ ํƒ์ƒ‰๊ธฐ๋ฒ•๋“ค

์ด ์ ˆ์—์„œ๋Š” ์กฐํ•ฉ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค์„ ์†Œ๊ฐœํ•˜๊ณ , ๋Œ€ํ‘œ์  ์ตœ์ ํ™” ๋ฌธ์ œ์ธ ์—ฌํ–‰ํ•˜๋Š” ์™ธํŒ์› ๋ฌธ์ œ1(TSP)๋ฅผ ํ‘ธ๋Š” ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ์ด ๊ธฐ ๋ฒ•๋“ค์„ ์ ์šฉํ•˜๋ฉด์„œ ๋ณ€ํ™”ํ•˜๋Š” ์ˆ˜ํ–‰ ์†๋„๋ฅผ ๊ด€์ฐฐํ•ด ๋ณด์ž.

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ

์ž…๋ ฅ์ด ์ปค์ง€๋ฉด ์ปค์งˆ์ˆ˜๋ก ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๋™์  ๊ณ„ํš๋ฒ•์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋˜ํ•œ ์ž…๋ ฅ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ง€์ˆ˜์ ์œผ๋กœ ์ปค์ง„๋‹ค. ์ดˆ๋Œ€ํ˜• ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋™์  ๊ณ„ํš๋ฒ• ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•ฝ 3GB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ•„์š”๋กœ ํ•œ๋‹ค. ๋งŒ์•ฝ ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ชจ์ž๋ž๋‹ค๋ฉด ๊ฒฐ๊ตญ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉ ํ•ด์•ผ ํ–ˆ์„ ํ…Œ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ƒ์ƒํ•  ์ˆ˜ ์—†์„ ์ •๋„๋กœ ๋Š๋ ค์กŒ์„ ๊ฒƒ.

์กฐํ•ฉ ํƒ์ƒ‰ ๋ผˆ๋Œ€์˜ ๊ตฌํ˜„

์šฐ์„  ์ตœ์ ํ™”์˜ ๊ธฐ๋ณธ์ด ๋  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋ผˆ๋Œ€๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์ž. ์•„๋ฌด๋Ÿฐ ์ตœ์ ํ™”๋„ ํ•˜์ง€ ์•Š์€ ์™„์ „ ํƒ์ƒ‰์˜ ๊ตฌํ˜„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์™„์ „ ํƒ์ƒ‰์„ ๋‹ค๋ฃจ๋Š” ์žฅ์—์„œ ์ž‘์„ฑํ•œ์ฝ”๋“œ์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์œ ์˜ํ•˜๋ฉฐ ๋ณด๋ฉด shortestPath() ๊ฒฝ๋กœ์˜ ๊ธธ์ด๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•˜์ง€๋งŒ, search()๋Š” ๊ฒฝ๋กœ์˜ ๊ธธ์ด๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ณ  ์ „์—ญ ๋ณ€์ˆ˜ best๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ „์—ญ ๋ณ€์ˆ˜์— ์ง€๊ธˆ๊นŒ์ง€ ์ฐพ์€ ์ตœ์ ํ•ด์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•ด ๋‘๋ฉด ํƒ์ƒ‰ ์ค‘์— ๋” ์ตœ์ ํ•ด๋ฅผ ๋ฐœ๊ฒฌํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ๊ฐ€์ง€๋ฅผ ์ณ๋‚ด๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

์กฐํ•ฉํƒ์ƒ‰ TSP ๊ตฌํ˜„ ๐Ÿ”—

์ด์™€ ๊ฐ™์€ ๋‹จ์ˆœํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์†๋„๋Š” search()๊ฐ€ ๋งŒ๋“œ๋Š” ๊ฒฝ๋กœ์˜ ์ˆ˜๋Š” (n-1)!๊ฐœ๊ฐ€ ๋œ๋‹ค. 11!๋Š” ์•ฝ 4์ฒœ๋งŒ ์ •๋„ ๋˜๋Š” ์ˆ˜์ด๋ฏ€๋กœ, ์†Œํ˜• ์ž…๋ ฅ์€ ๊ทธ๋Ÿญ์ €๋Ÿญ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ ์ค‘ํ˜• ์ž…๋ ฅ์—์„œ ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋Š” 12 * 13 * 14 * 15 = 30,000๋ฐฐ ๋Š˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘ํ˜• ์ž…๋ ฅ์„ ํ’€๊ธฐ๋ž€ ๋ถˆ๊ฐ€๋Šฅํ•  ๊ฑฐ ๋ผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ์†Œํ˜• ์ž…๋ ฅ์ด 1๋ถ„ 30์ดˆ ์ •๋„ ๊ฑธ๋ฆด๋•Œ, ์šฐ๋ฆฌ ๊ณ„์‚ฐ๋Œ€๋กœ๋ผ๋ฉด ์ค‘ํ˜• ์ž…๋ ฅ์—๋งŒ 4๋งŒ 5์ฒœ ๋ถ„(750์‹œ๊ฐ„)์ด๋‚˜ ๋˜๋Š” ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋  ๊ฑฐ๋ผ๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ ์ด๊ฒƒ์„ ์ตœ์ ํ™” ํ•ด๋ณด์ž.

์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ

๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ๊ฐ€์ง€์น˜๊ธฐ ๋ฐฉ๋ฒ•์€ ํ˜„์žฌ ์ƒํƒœ์˜ ๋‹ต์ด ์ง€๊ธˆ๊นŒ์ง€ ๊ตฌํ•œ ์ตœ์ ํ•ด์™€ ๊ฐ™๊ฑฐ๋‚˜ ๋” ๋‚˜์  ๋•Œ ํƒ์ƒ‰์„ ์ค‘๋‹จํ•˜๋Š” ๊ฒƒ. TSP์—์„œ๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ๊ฒฝ๋กœ์˜ ๊ธธ์ด๋ฅผ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๊ฒƒ์„ ์ตœ์ ํ•ด์™€ ๋น„๊ตํ•˜๋ฉด ์ด ๊ฐ€์ง€์น˜ ๊ธฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•œ ์ค„์˜ ์กฐ๊ฑด๋ฌธ์„ search() ํ•จ์ˆ˜์˜ ์ฒ˜์Œ์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„.

// ๊ฐ„๋‹จํ•œ ๊ฐ€์ง€์น˜๊ธฐ: ์ง€๊ธˆ๊นŒ์ง€ ์ฐพ์€ ๊ฐ€์žฅ ์ข‹์€ ๋‹ต ์ด์ƒ์ผ ๊ฒฝ์šฐ ์ค‘๋‹จ
if best <= currentLength {return}

์ตœ์†Œํ•œ ํ˜„์žฌ ๊ฒฝ๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ตœ์ ํ•ด๋ณด๋‹ค ์ปค์กŒ์„ ๋•Œ๋Š” ํƒ์ƒ‰์„ ์ข…๋ฃŒํ•˜๋ฏ€๋กœ, n!๊ฐœ์˜ ๊ฒฝ๋กœ๋ฅผ ์ „๋ถ€ ๋งŒ๋“ค์–ด ๋ณด์ง€๋Š” ์•Š๋Š”๋‹ค.

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
์—†์Œ 89.74 ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ 2.58์ดˆ 981.53์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ

์†Œํ˜• ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ํ•ด๊ฒฐ ์‹œ๊ฐ„์ด 1/30๋กœ ์ค„์–ด๋“ฆ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ๊ฐ„๋‹จํ•œ ์ตœ์ ํ™”๋กœ๋„ ํฐ ํšจ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

๊ฐ„๋‹จํ•œ ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•œ ๊ฐ€์ง€์น˜๊ธฐ

ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•ด ๋‹ต์˜ ๋‚จ์€ ๋ถ€๋ถ„์„ ์–ด๋ฆผ์ง์ž‘ํ•˜๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

์กฐํ•ฉ ํƒ์ƒ‰์—์„œ ๋ฐฉ๋ฌธํ•˜๋Š” ์ƒํƒœ์˜ ์ˆ˜๋Š” ํƒ์ƒ‰์˜ ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์งˆ์ˆ˜๋ก ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ์ƒ‰ ์ค‘ โ€˜์ด ๋ถ€๋ถ„์—์„œ๋Š” ์ตœ์ ํ•ด๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์—†๋‹คโ€™๋Š” ๊ฒƒ์„ ๊ฐ€๋Šฅํ•œ ํ•œ ์ผ์ฐ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์ด ์œ ๋ฆฌ.

์–ด๋ฆผ์ง์ž‘ํ•˜๋Š” ํœด๋ฆฌ์Šคํ‹ฑํ•จ์ˆ˜. ํœด๋ฆฌ์Šคํ‹ฑ์˜ ๋ฐ˜ํ™˜๊ฐ’์€ ํ•ญ์ƒ ์ •ํ™•ํ•œ ๋‹ต์ผ ํ•„์š”๋Š” ์—†๊ณ  ๊ทธ๋Ÿด ์ˆ˜๋„ ์—†๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๊ธฐ๋Œ€ํ•˜๋Š” ํœด๋ฆฌ์Šคํ‹ฑ์€ '์ ๋‹นํžˆ ๊ทธ๋Ÿด๋“ฏํ•œ' ์ง์ž‘์„ ๋Œ๋ ค๋ฐ›๋Š” ๊ฒƒ.

ํœด๋ฆฌ์Šคํ‹ฑ์ด ์‹ค์ œ ํ•„์š”ํ•œ ๊ฒฝ๋กœ๋ณด๋‹ค ๋” ๊ธด ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ž˜๋ชป ์ง์ž‘ํ•  ๊ฒฝ์šฐ์—๋Š” ์ตœ์ ํ•ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๋ฅผ ๊ฑธ๋Ÿฌ๋‚ด ๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋ฌธ์ œ์˜ ์ตœ์ ํ•ด๋Š” ์˜์˜ ์ฐพ์ง€ ๋ชปํ•œ ์ฑ„ ์ข…๋ฃŒํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋Ÿฐ ์ผ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ๋Š” ํœด๋ฆฌ์Šคํ‹ฑ์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ํ•ญ์ƒ ๋‚จ์€ ์ตœ๋‹จ ๊ฒฝ๋กœ์˜ ๊ธธ์ด ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.

์ด๋Ÿฐ ๋ฐฉ๋ฒ•์„ ๋ฌธ์ œ๋ฅผ ๊ณผ์†Œํ‰๊ฐ€(underestimate)ํ•˜๋Š” ํœด๋ฆฌ์Šคํ‹ฑ, ํ˜น์€ ๋‚™๊ด€์ ์ธ ํœด๋ฆฌ์Šคํ‹ฑ(optimistic)๋ผ๊ณ  ๋งํ•œ๋‹ค.

ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜ ์ž‘์„ฑํ•˜๊ธฐ

๋‚จ์€ ๋„์‹œ๋ฅผ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•  ํ•„์š” ์—†์ด, ๊ฐ€์žฅ ๋ฉ€๋ฆฌ ์žˆ๋Š” ๋„์‹œ ํ•˜๋‚˜๋งŒ ๋ฐฉ๋ฌธํ–ˆ๋‹ค๊ฐ€ ์‹œ์ž‘์ ์œผ๋กœ ๋Œ์•„๊ฐ€๋„ ๋œ๋‹ค. ๋‚จ์€ ๋„์‹œ๋“ค์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๊ผญ ์ผ๋ ฌ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋œ๋‹ค.

๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜์˜ ๊ตฌํ˜„

์ธ์ ‘ํ•œ ๊ฐ„์„  ์ค‘ ๊ฐ€์žฅ ์งง์€ ๊ฐ„์„ ์˜ ๊ธธ์ด๋ฅผ ๋”ํ•˜๋Š” ๊ฒƒ. ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋„์‹œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ ค๋ฉด ์ธ์ ‘ํ•œ ๊ฐ„์„  ์ค‘ ํ•˜๋‚˜๋ฅผ ํƒ€๊ณ  ๊ฐ€์•ผ ํ•˜๋ฏ€๋กœ, ์ด๋“ค ์ค‘ ๊ฐ€์žฅ ์งง์€ ๊ฐ„์„ ์˜ ๊ธธ์ด๋งŒ ๋ชจ์œผ๋ฉด ์‹ค์ œ ์ตœ๋‹จ ๊ฒฝ๋กœ ์ดํ•˜์˜ ๊ฐ’์ด ๋  ์ˆ˜ ๋ฐ–์—์—†๋‹ค.

๋‹จ์ˆœ ํœด๋ฆฌ์Šคํ‹ฑ TSP ๊ตฌํ˜„ ๐Ÿ”—

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
์—†์Œ 89.74 ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ 2.58์ดˆ 981.53์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ 0.85์ดˆ 84.18์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ

๊ฐ€๊นŒ์šด ๋„์‹œ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜๊ธฐ

๋„์‹œ๋ฅผ ๋ฒˆํ˜ธ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ๋Œ€์‹ , ๋” ๊ฐ€๊นŒ์šด ๊ฒƒ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ข‹์€ ๋‹ต์„ ๋” ๋นจ๋ฆฌ ์ฐพ์•„๋‚ด์ž.

์ด์™€ ๊ฐ™์€ ์ „๋žต์ด ํ•ญ์ƒ ์ตœ์ ํ•ด๋ฅผ ๊ฐ€์ ธ๋‹ค ์ฃผ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ์–ด๋Š ์ •๋„ ์ข‹์€ ๋‹ต์„ ์ข€๋” ์ผ์ฐ ๋ฐœ๊ฒฌํ•  ํ™•๋ฅ  ์€ ์˜ฌ๋ผ๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ข‹์€ ๋‹ต์„ ์ผ์ฐ ์ฐพ์„์ˆ˜๋ก ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ๋” ๋งŽ์ด ํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ฐ€๊นŒ์šด ๋„์‹œ TSP ๊ตฌํ˜„ ๐Ÿ”—

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ 2.58์ดˆ 981.53์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ 0.85์ดˆ 84.18์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๊ฐ€๊นŒ์šด ๋„์‹œ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜๊ธฐ 0.52์ดˆ 31.03์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ

์ด ์กฐํ•ฉ ํƒ์ƒ‰์˜ ์ˆ˜ํ–‰์€ ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•˜๊ธฐ์ „์— ํƒ์š•๋ฒ•์œผ๋กœ ์ดˆ๊ธฐํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ์ง€๋‹Œ๋‹ค.

์ง€๋‚˜์˜จ ๊ฒฝ๋กœ๋ฅผ ์ด์šฉํ•œ ๊ฐ€์ง€์น˜๊ธฐ

์•ž์œผ๋กœ ๋‚จ์€ ์กฐ๊ฐ๋“ค์˜ ๋น„์šฉ์„ ์˜ˆ์ธกํ•˜์—ฌ ๊ฐ€์ง€์น˜๊ธฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ, ์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ๊ฒฝ๋กœ๋ฅผ ๊ฒ€์‚ฌํ•ด ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ง€๊ธˆ๊นŒ์ง€ ๋งŒ๋“  ๊ฒฝ๋กœ๊ฐ€ ์‹œ์ž‘ ์ƒํƒœ์—์„œ ํ˜„์žฌ ์ƒํƒœ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ์ตœ์ ํ•ด๊ฐ€ ์•„๋‹ˆ๋ฉด, ์•ž์œผ๋กœ ๋‚จ์€ ์กฐ๊ฐ์„ ์ž˜ ์„ ํƒํ•ด ๋ดค์ž ์ตœ์ ํ•ด๋ฅผ ์ฐพ์ง€ ๋ชปํ•  ๊ฒƒ์ด๊ณ , ํƒ์ƒ‰์„ ๊ณ„์†ํ•  ์ด์œ ๊ฐ€ ์—†๋‹ค.

(..., ..., p, a, b, q, here)

์œ„์™€๊ฐ™์€ ๊ฒฝ๋กœ์—์„œ a์™€ b์˜ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ” ๋ณด์•˜์„๋•Œ, p - q๊ตฌ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋” ์งง์•„์ง„๋‹ค๋ฉด ์ด ๊ฒฝ๋กœ์—์„œ ์ตœ์ ํ•ด๋ฅผ ์ฐพ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์—†์œผ๋‹ˆ ํƒ์ƒ‰์„ ์ค‘๋‹จํ•ด๋„ ๋œ๋‹ค.

์ง€๋‚˜์˜จ ๊ฒฝ๋กœ ์ˆœ์„œ ๋ณ€๊ฒฝ TSP ๊ตฌํ˜„ ๐Ÿ”—

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ 2.58์ดˆ 981.53์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ 0.85์ดˆ 84.18์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๊ฐ€๊นŒ์šด ๋„์‹œ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜๊ธฐ 0.52์ดˆ 31.03์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ ์ˆœ์„œ ๋ฐ”๊พธ๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.15์ดˆ 4.64์ดˆ 233.52์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ
๋ถ€๋ถ„ ๊ฒฝ๋กœ ๋’ค์ง‘๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.07์ดˆ 1.13์ดˆ 33.29์ดˆ 1160.81์ดˆ

MST ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•œ ๊ฐ€์ง€์น˜๊ธฐ์˜ ๊ตฌํ˜„

๋ฌธ์ œ์˜ ์ œ์•ฝ์„ ๋„ˆ๋ฌด ๋งŽ์ด ์—†์• ์„œ ๋‹ต์„ ๋„ˆ๋ฌด ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ๋‹ค.

์ข€๋” ํ˜„์‹ค์— ๊ฐ€๊นŒ์šด ๋‹ต์„ ๊ณ„์‚ฐํ•˜๋Š” ํœด๋ฆฌ์Šคํ‹ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์žˆ๋‹ค๋ฉด ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์˜ ํšจ์œจ์— ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋‹ค. ์ข€๋” ํ˜„์‹ค์— ๊ฐ€๊นŒ์šด ๋‹ต์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ ์ œ์•ฝ์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

  1. ํ•œ ๊ฐ„์„ ์€ ์ตœ๋Œ€ ํ•œ ๋ฒˆ๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. ์„ ํƒํ•˜์ง€ ์•Š์€ ๊ฐ„์„ ์„ ๋ชจ๋‘ ์ง€์› ์„ ๋•Œ ๊ทธ๋ž˜ํ”„๊ฐ€ ๋‘˜ ์ด์ƒ์œผ๋กœ ์ชผ๊ฐœ์ง€๋ฉด ์•ˆ ๋œ๋‹ค.

์„ ํƒํ•œ ๊ฐ„์„ ๋“ค๋งŒ ๋‚จ๊ฒผ์„ ๋•Œ ์•„์ง ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ์ •์ ๋“ค๊ณผ ํ˜„์žฌ ์ •์ ์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ฒŒ๋” ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋œป.

ํฌ๋ฃจ์Šค์นผ์˜ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•ด MST๋ฅผ ๊ตฌํ•˜๊ณ  ๊ฐ„์„  ๊ฐ€์ค‘์น˜์˜ ํ•ฉ์œผ๋กœ๋ถ€ํ„ฐ ํƒ์ƒ‰์˜ ํ•˜ํ•œ ๊ฐ’์„ ์˜ˆ์ƒํ•˜๋Š” mstHeuristic์„ ๊ตฌํ˜„ํ•œ๋‹ค.

MST Heuristic TSP ๊ตฌํ˜„ ํ•˜์ง€ ์•Š์Œ

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
๋ถ€๋ถ„ ๊ฒฝ๋กœ ๋’ค์ง‘๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.07์ดˆ 1.13์ดˆ 33.29์ดˆ 1160.81์ดˆ
MST 0.06์ดˆ 0.37์ดˆ 14.77์ดˆ 836.43์ดˆ

MST ํœด๋ฆฌ์Šคํ‹ฑ์€ ๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ ๋ณด๋‹ค ํ›จ์”ฌ ์ •ํ™•ํ•œ ๊ฐ’์„ ์ฐพ์•„์ค€๋‹ค. ํ•œ ๊ฐ€์ง€ ์œ ์˜ํ•  ์ ์€ mstHeuristic()์€ simpleHeuristic()๋ณด๋‹ค ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ํ›จ์”ฌ ๋งŽ์€ ์‹œ๊ฐ„์„ ์š”๊ตฌํ•œ๋‹ค๋Š” ๊ฒƒ. ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ํ›จ์”ฌ ๋นจ๋ผ์กŒ์œผ๋‹ˆ ๊ฐ€์ง€์น˜๊ธฐ์—์„œ ์ ˆ์•ฝํ•œ ์‹œ๊ฐ„์ด MST ๊ณ„์‚ฐ์— ๋“œ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ํ›จ์”ฌ ์ปธ์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋งˆ์ง€๋ง‰ ๋‹จ๊ณ„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๊ธฐ

๊ฐ™์€ ์ƒํƒœ๋ฅผ ๋‘ ๊ฐœ ์ด์ƒ์˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์„ ๋•Œ, ์ด๋Ÿฐ ๋น„ํšจ์œจ์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์œผ๋กœ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค๋Š” ์•„์ด๋””์–ด๋ฅผ ์ž์—ฐ์Šค๋Ÿฝ ๊ฒŒ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ƒฅ ์‚ฌ์šฉํ•˜๊ธฐ์—๋Š” ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•  ๊ฒƒ์ด๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ๋‚จ์€ ์กฐ๊ฐ์˜ ์ˆ˜๊ฐ€ ๋ฏธ๋ฆฌ ์ •ํ•ด๋‘” ์ˆ˜ k ์ดํ•˜์ผ ๋•Œ๋งŒ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ํ•˜์ž. ์˜ˆ๋ฅผ ๋“ค์–ด TSP์˜ ๊ฒฝ์šฐ, 5๊ฐœ ์ดํ•˜์˜ ๋„์‹œ๊ฐ€ ๋‚จ์•˜์„ ๋•Œ๋งŒ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ. ๋„์‹œ์˜ ์ˆ˜๊ฐ€ 20์ผ ๋•Œ ๊ทธ๋ƒฅ ๋™์  ๊ณ„ํš๋ฒ•์„ ํ–ˆ์„ ๋•Œ๋Š” ์•ฝ 2์ฒœ๋งŒ ๊ฐœ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋งˆ์ง€๋ง‰ 5๋‹จ๊ณ„๋งŒ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๊ธฐ๋กœ ํ•˜๋ฉด ์ €์žฅํ•ด์•ผ ํ•˜๋Š” ์ƒํƒœ์˜ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

20 * ((20/5) + (20/4) + (20/3) + (20/2) + (20/1)) == ์•ฝ 440000

๋Œ€๋žต 44๋งŒ ๊ฐœ์˜ ์ƒํƒœ๋งŒ์„ ์ €์žฅํ•˜๋ฉด ๋œ๋‹ค. ๋งˆ์ง€๋ง‰ 5๊ฐœ์˜ ๋„์‹œ๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฌธ์ œ๋ฅผ 5! = 120๋ฒˆ ํ‘ธ๋Š” ๋Œ€์‹ ์— ํ•œ ๋ฒˆ๋งŒ ํ’€๊ฒŒ ๋˜๋‹ˆ ํƒ์ƒ‰ ์†๋„๊ฐ€ ์ตœ๋Œ€ 120๋ฐฐ ๋นจ๋ผ์งˆ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ์ค‘์ ์ด๋‹ค.

๋‹จ ์ด์™€ ๊ฐ™์€ ์ด๋“์„ ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜๋Š” ์—†๋‹ค. ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜๋Š” ์‰ฝ๊ฒŒ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ. ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ๊ฐ’์ด ํ˜„์žฌ์˜ ์ƒํƒœ์—๋งŒ ์˜ํ–ฅ์„ ๋ฐ›์•„์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์ ์šฉํ•˜๋ฉด ํ˜„์žฌ ์ƒํƒœ๊นŒ์ง€ ์˜ค๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋ฐ˜ํ™˜ ๊ฐ’์ด ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ, ๋ฌผ๋ก  ๊ฒฝ๋กœ๊นŒ์ง€ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์˜ ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ต์ด ํ‹€๋ฆฌ์ง€๋Š” ์•Š๊ฒ ์ง€๋งŒ, ๊ฒฝ๋กœ๋“ค์€ ์„œ๋กœ ๊ฒน์น˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”๋ชจ์ด์ œ์ด์…˜์„ ์“ฐ๋Š” ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋™์  ๊ณ„ํš๋ฒ• ํ•จ์ˆ˜๋ฅผ ๋ณ„๋„๋กœ ์ž‘์„ฑํ•œ ๋’ค, ๋งˆ์ง€๋ง‰ k๋‹จ๊ณ„์— ๋„๋‹ฌํ•˜๋ฉด ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.

๋ถ€๋ถ„ DP TSP ๊ตฌํ˜„ ๐Ÿ”—

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
๋ถ€๋ถ„ ๊ฒฝ๋กœ ๋’ค์ง‘๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.07์ดˆ 1.13์ดˆ 33.29์ดˆ 1160.81์ดˆ
MST 0.06์ดˆ 0.37์ดˆ 14.77์ดˆ 836.43์ดˆ
๋ฉ”๋ชจ์ด์ œ์ด์…˜ 0.06์ดˆ 0.28์ดˆ 2.91์ดˆ 25.24์ดˆ

๋™์  ๊ณ„ํš๋ฒ•์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์‹œ์ 

๋ถ€๋ถ„ DP TSP์—์„œ๋Š” ๋™์  ๊ณ„ํš๋ฒ•์œผ๋กœ ์ „ํ™˜ํ•˜๋Š” ์‹œ์  CACHED_DEPTH๋ฅผ ์ƒ์ˆ˜๋กœ ์ง€์ •ํ–ˆ๋‹ค. ์ด ๊ฐ’์„ ๊ฒฐ์ •ํ•˜๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์ด ํฌ๋ฉด ํด์ˆ˜๋ก ๋” ๋งŽ์€ ์ƒํƒœ๋ฅผ ๋ฉ”๋ชจ์ด์ œ์ด์…˜ํ•˜๊ฒ ์ง€๋งŒ, ์›์†Œ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ๋งŽ์•„์งˆ์ˆ˜๋ก ์— ์ ‘๊ทผ ํ•˜๋Š” ๋น„์šฉ์ด ๋Š˜์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ.


์ตœ์ข… ๋น„๊ต

์ตœ์ ํ™” ์†Œํ˜•(n=12) ์ค‘ํ˜•(n=16) ๋Œ€ํ˜•(n=20) ์ดˆ๋Œ€ํ˜•(n=24)
๋™์ ๊ณ„ํš๋ฒ• 0.03์ดˆ 0.58์ดˆ 26.45์ดˆ 768.21์ดˆ
์—†์Œ 89.74 ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜๋น ์ง€๋ฉด ๊ทธ๋งŒ๋‘๊ธฐ 2.58์ดˆ 981.53์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๋‹จ์ˆœํ•œ ํœด๋ฆฌ์Šคํ‹ฑ 0.85์ดˆ 84.18์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
๊ฐ€๊นŒ์šด ๋„์‹œ๋ถ€ํ„ฐ ๋ฐฉ๋ฌธํ•˜๊ธฐ 0.52์ดˆ 31.03์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ ์‹œ๊ฐ„์ดˆ๊ณผ
์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ ์ˆœ์„œ ๋ฐ”๊พธ๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.15์ดˆ 4.64์ดˆ 233.52์ดˆ ์‹œ๊ฐ„์ดˆ๊ณผ
๋ถ€๋ถ„ ๊ฒฝ๋กœ ๋’ค์ง‘๋Š” ๊ฐ€์ง€์น˜๊ธฐ 0.07์ดˆ 1.13์ดˆ 33.29์ดˆ 1160.81์ดˆ
MST 0.06์ดˆ 0.37์ดˆ 14.77์ดˆ 836.43์ดˆ
๋ฉ”๋ชจ์ด์ œ์ด์…˜ 0.06์ดˆ 0.28์ดˆ 2.91์ดˆ 25.24์ดˆ

์ „๋ฌธ์  TSP ํ•ด๊ฒฐ๊ธฐ๋ฒ•๋“ค

์—ฌ๊ธฐ์„œ ์†Œ๊ฐœํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ TSP๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๊ณผ๋Š” ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉˆ ์‹ค์ œ๋กœ๋Š” TSP๋งŒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ํ”„๋กœ๊ทธ๋žจ๋“ค ์ •์ˆ˜๊ณ„ํš๋ฒ•, ์„ ํ˜•๊ณ„ํš๋ฒ• ๋“ฑ์„ ์‚ฌ์šฉํ•จ.

TSP more

https://www.math.uwaterloo.ca/tsp/index.html


BOARDCOVER2

๊ฐ€์ง€์น˜๊ธฐ

๊ฒฝ๋กœ์˜ ์ตœ์†Œ ๊ธธ์ด๋ฅผ ๊ตฌํ•ด์•ผ ํ–ˆ๋˜ TSP์™€๋Š” ๋‹ฌ๋ฆฌ ์—ฌ๊ธฐ์„œ๋Š” ๋ธ”๋ก์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์—, ํ˜„์žฌ ๋‹ต์ด ์ง€๊ธˆ๊นŒ์ง€ ์ฐพ์€ ์ตœ์ ํ•ด๋ณด๋‹ค ๋‚˜์  ๊ฒฝ์šฐ ์ค‘๋‹จํ•˜๋Š” ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์—†๋‹ค.

๋Œ€์‹  ์ด ๋ฌธ์ œ์—์„œ ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ•˜๋ ค๋ฉด ํ˜„์žฌ ์ƒํƒœ์—์„œ ์ตœ์„ ์„ ๋‹คํ•ด๋„ ์ตœ์ ํ•ด๋ณด๋‹ค ๋งŽ์€ ๋ธ”๋ก์„ ๋‚ด๋ ค๋†“์„ ์ˆ˜๋Š” ์—†๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ€์žฅ ํฐ ๋‹ต์„ ์ฐพ๋Š” ์ตœ์ ํ™” ๋ฌธ์ œ์—์„œ ๋‚™๊ด€์ ์ธ ํœด๋ฆฌ์Šคํ‹ฑ๋“ค์€ ๋ฌธ์ œ๋ฅผ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๋Œ€์‹ ์— ๊ณผ๋Œ€ํ‰๊ฐ€ํ•œ๋‹ค.

์ฆ‰, ์‹ค์ œ๋กœ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก ์ˆ˜ ์ด์ƒ์„ ํ•ญ์ƒ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•œ๋‹ค.

์ด๋Ÿฐ ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“œ๋Š” ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ธ”๋ก์„ ํ†ต์งธ๋กœ ๋‚ด๋ ค๋†“์•„์•ผ ํ•œ๋‹ค๋Š” ์ œ์•ฝ์„ ์—†์• ์„œ, ๋ธ”๋ก๋“ค์„ ํ•œ ์นธ์”ฉ ์ชผ๊ฐœ์„œ ๋†“์„ ์ˆ˜ ์žˆ๋„๋ก ๋ฌธ์ œ๋ฅผ ๋ณ€ํ˜•ํ•˜๋Š” ๊ฒƒ. ๊ทธ๋Ÿฌ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์˜ ์ˆ˜๋Š” ๋‹จ์ˆœํžˆ ๋‚จ์€ ๋นˆ ์นธ์˜ ์ˆ˜๋ฅผ ๋ธ”๋ก์˜ ํฌ๊ธฐ๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด ๋œ๋‹ค.

์ด ๊ฐ’์€ ํ•ญ์ƒ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ ๋†“์„ ์ˆ˜ ์žˆ๋Š” ๋ธ”๋ก์˜ ์ˆ˜ ์ด์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๋‹ต์˜ ์ƒํ•œ์ด ๋œ๋‹ค. ์ด ๋‹ต์˜ ์ƒํ•œ์ด ํ˜„์žฌ ์ฐพ์€ ์ตœ์ ํ•ด ์ดํ•˜๋ผ๋ฉด ๋”์ด์ƒ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

BOARDCOVER2 ๊ตฌํ˜„ ๐Ÿ”—


ALLERGY

์ง‘ํ•ฉ ๋ฎ๊ฐœ

๊ณ„์‚ฐ ์ด๋ก  ์ชฝ์—์„œ๋Š” ๊ฐ€์žฅ ์œ ๋ช…ํ•œ NP ์™„๋น„(NP complete) ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

Slow Search

์œ„ ์ฝ”๋“œ๋Š” m์ด ์ตœ๋Œ“๊ฐ’์ผ ๊ฒฝ์šฐ ๋Œ€๋žต ๋ฐฑ๋งŒ ๊ฐœ์˜ ์ƒํƒœ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ์–ผํ• ์ƒ๊ฐํ•˜๋ฉด ๊ทธ๋ ‡๊ฒŒ ํฐ ์ˆ˜๊ฐ€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์ด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ œ์ถœํ•ด๋ณด๋ฉด ์‹œ๊ฐ„ ์•ˆ์— ๋™์ž‘ํ•˜์ง€ ์•Š์Œ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ตœ์ ํ™” ๋ฐฉ์‹

  • ๋‹ค์Œ์œผ๋กœ ๋งŒ๋“ค ์Œ์‹์„ ๊ณ ๋ฅผ ๋•Œ ์•„์ง ๋จน์„ ์Œ์‹์ด ์—†๋Š” ์นœ๊ตฌ๋“ค ์ค‘ ๊ฐ€์žฅ ๋งŽ์€ ์‚ฌ๋žŒ์ด ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์Œ์‹๋ถ€ํ„ฐ ์‹œ๋„ํ•˜๊ธฐ
  • ํœด๋ฆฌ์Šคํ‹ฑ์„ ์ด์šฉํ•œ ๊ฐ€์ง€์น˜๊ธฐ ํ•ด ๋ณด๊ธฐ
  • ์•„์ง ๋จน์„ ์Œ์‹์ด ์—†๋Š” ์นœ๊ตฌ๋“ค์˜ ์ˆ˜๊ฐ€ ์ ์€ ๊ฒฝ์šฐ๋“ค์„ ๋ฉ”๋ชจ์ด์ œ์ด์…˜์œผ๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ
  • ์Œ์‹ a๋ฅผ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋“ค์˜ ๋ชฉ๋ก์ด ์Œ์‹ b๋ฅผ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋“ค์˜ ๋ชฉ๋ก์„ ํฌํ•จํ•  ๋•Œ ์Œ์‹ b๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฌด์‹œํ•˜๊ธฐ
  • ํƒ์š•์  ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ์ ์ ˆํ•œ ์ดˆ๊ธฐํ•ด ๋งŒ๋“ค๊ธฐ

์ด๋Ÿฐ ์ตœ์ ํ™”๋ฅผ ํ†ตํ•ด ์ˆ˜ํ–‰์‹œ๊ฐ„์„ ์ œํ•œ ์•ˆ์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์‚ฌ์‹ค ์ด ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์€ ํƒ์ƒ‰์˜ ํ˜•ํƒœ๋ฅผ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ ์Œ์‹์„ ๋งŒ๋“ค ๊ฒƒ์ธ๊ฐ€ ์—ฌ๋ถ€๋ฅผ ์„ ํƒํ•˜๋Š” ๋Œ€์‹ ์—, ๋งค ์žฌ๊ท€ ํ˜ธ์ถœ๋งˆ๋‹ค ์•„์ง ๋จน์„ ์Œ์‹์ด ์—†๋Š” ์นœ๊ตฌ๋ฅผ ํ•˜๋‚˜ ์ฐพ์€ ๋’ค ์ด ์นœ๊ตฌ๋ฅผ ์œ„ํ•ด ์–ด๋–ค ์Œ์‹์„ ๋งŒ๋“ค์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ

Search

์™œ ๋” ๋น ๋ฅธ๊ฐ€ ?

  • search()๋Š” ํ•ญ์ƒ ๋ชจ๋“  ์นœ๊ตฌ๊ฐ€ ๋จน์„ ์Œ์‹์ด ์žˆ๋Š” ์กฐํ•ฉ๋งŒ์„ ์ฐพ์•„๋‚ธ๋‹ค. ๋ฐ˜๋ฉด slowSearch()๋Š” ๋งˆ์ง€๋ง‰ ์กฐ๊ฐ๊นŒ์ง€ ๊ฒฐ์ •ํ•œ ๋’ค์—๋„ ๋ฐฐ๊ณ ํ”ˆ ์นœ๊ตฌ๊ฐ€ ๋‚จ๋Š” ๊ฒฝ์šฐ๋“ค๋„ ๋ชจ๋‘ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ.
  • search()๋Š” ํ•œ ๋ฒˆ ํ˜ธ์ถœ๋  ๋•Œ๋งˆ๋‹ค ํ•ญ์ƒ ์Œ์‹์„ ํ•˜๋‚˜ ํ•˜๊ฒŒ๋œ๋‹ค. ๋ฐ˜๋ฉด sS๋Š” ์Œ์‹์„ ํ•˜์ง€ ์•Š๊ณ ๋„ ์žฌ๊ท€ ํ˜ธ์ถœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. sS์˜ ๊นŠ์ด๋Š” ํ•ญ์ƒ m์œผ๋กœ ๊ณ ์ •๋˜๋Š” ๋ฐ˜๋ฉด sํƒ์ƒ‰์˜ ๊นŠ์ด๋Š” ๋‹ต๊ณผ ๊ฐ™์€๋ฐ ๋‹ต์€ ํ•ญ์ƒ m์ดํ•˜์˜ ์ˆซ์ž๋‹ค.
  • sS์—์„œ๋Š” ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์Œ์‹๋„ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด ์Œ์‹์„ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋“ค์€ ์ด๋ฏธ ๋‹ค ๋จน์„ ์Œ์‹์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ฐ˜๋ฉด s์—์„œ๋Š” ์Œ์‹์„ ํ•œ๋‹ค๋Š” ๋ง์€ ๊ทธ ์Œ์‹์ด ํ•„์š”ํ•œ ์นœ๊ตฌ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

์ด ๋ฌธ์ œ์™€ ๋น„์Šทํ•œ ํ˜•ํƒœ๋ฅผ ๊ฐ–๋Š” ๋ฌธ์ œ๋“ค์—์„œ ์ด๋ ‡๊ฒŒ ํƒ์ƒ‰ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ๋ฉด ํ›จ์”ฌ ๋น ๋ฅธ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.

๋” ์ตœ์ ํ™” ํ•˜๊ธฐ

  • ์•„์ง ๋จน์„ ๊ฒƒ์ด ์—†๋Š” ์ฒซ ๋ฒˆ์งธ ์นœ๊ตฌ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์Œ์‹์˜ ์ข…๋ฅ˜๊ฐ€ ์ ์€ ์นœ๊ตฌ๋ฅผ ์ฐพ๋„๋ก ํ•œ๋‹ค. ๋‘ ๊ฐ€์ง€ ์Œ์‹๋งŒ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ์—๊ฒŒ ์–ด๋Š ์Œ์‹์„ ํ•ด ์ค„์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ๊ฐ€ ์—ด๊ฐ€์ง€ ์Œ์‹์„ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ์—๊ฒŒ ์–ด๋Š ์Œ์‹์„ ํ•ด ์ค„์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ๋ณด๋‹ค ์‰ฝ๋‹ค. ์—ด ๊ฐ€์ง€ ์Œ์‹์„ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์นœ๊ตฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋”ฐ๋กœ ์ฑ™๊ฒจ์ฃผ์ง€ ์•Š์•„๋„ ๋จน์„ ๊ฑธ ์ฐพ์„ ๊ฐ€๋Šฅ์„ฑ ๋˜ํ•œ ๋†’๋‹ค.
  • ์Œ์‹์„ ์„ ํƒํ•  ๋•Œ, ๊ฐ€์žฅ ๋งŽ์€ ์‚ฌ๋žŒ์ด ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์Œ์‹๋ถ€ํ„ฐ ์‹œ๋„ํ•œ๋‹ค. ํ•œ ๋ช…๋งŒ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ์Œ์‹์€ ๊ฐ€๋Šฅํ•˜๋ฉด ๋งˆ์ง€๋ง‰์— ๋ฐฉ๋ฒ•์ด ์—†์„ ๋•Œ ์‹œ๋„ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค.

์ด์™€ ๊ฐ™์€ ๊ธฐ๋ฒ•๋“ค์€ ์ข€๋” ์ข‹์€ ๋‹ต์„ ์ดˆ๋ฐ˜์— ์ฐพ์•„๋‚ด์„œ ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ๋” ์ž˜ ํ• ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.


KAKURO

์ œ์•ฝ ์ „ํŒŒ

๋‹ต์˜ ์ผ๋ถ€๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋‚˜๋ฉด ๋ฌธ์ œ์˜ ์กฐ๊ฑด์— ์˜ํ•ด ๋‹ค๋ฅธ ์กฐ๊ฐ์˜ ๋‹ต์— ๋Œ€ํ•ด ์•Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์„ ์ œ์•ฝ ์ „ํŒŒ(constraint propagation)๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

์ œ์•ฝ ์ „ํŒŒ๊ฐ€ ํ•ญ์ƒ ๋‹ค๋ฅธ ์กฐ๊ฐ์˜ ๋‹ต์„ ์ •ํ™•ํžˆ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ, ํ•œ์นธ์— 4๋ฅผ ์ผ์„ ๋•Œ ๋‹ค๋ฅธ ์นธ์— ๋“ค์–ด๊ฐˆ ๊ฐ’์„ ์•Œ ์ˆ˜ ์—†๋”๋ผ๋„, ์ด๋“ค์—๋Š” ๋”์ด์ƒ 4๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์—†๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ์•„๋‚ด๋Š” ๊ฒƒ ๋˜ํ•œ ์ œ์•ฝ ์ „ํŒŒ๋ผ๊ณ  ํ•œ๋‹ค.

์ œ์•ฝ ์ „ํŒŒ๋Š” ๋‹ต์˜ ์ผ๋ถ€๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ์—ฌ๊ธฐ์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์ฐพ์•„๋‚ด๋Š” ๊ฒƒ.

์ œ์•ฝ ์ „ํŒŒ๋ฅผ ์ด์šฉํ•˜๋ฉด ์‹ค์ œ ํƒ์ƒ‰ํ•ด์•ผ ํ•  ํƒ์ƒ‰ ๊ณต๊ฐ„์˜ ์ˆ˜๊ฐ€ ํฌ๊ฒŒ ์ค„์–ด๋“ ๋‹ค.

์ฑ„์šธ ์ˆœ์„œ ์ •ํ•˜๊ธฐ

  • ๋ณ€์ˆ˜ ์ˆœ์„œ ์ •ํ•˜๊ธฐ(variable ordering) - ์–ด๋Š ๋นˆ ์นธ๋ถ€ํ„ฐ ์ฑ„์›Œ๋‚˜๊ฐˆ์ง€๋ฅผ ๊ฒฐ์ •
  • ๊ฐ’ ์ˆœ์„œ ์ •ํ•˜๊ธฐ(value ordering) - ์ด ๋นˆ ์นธ์— ์–ด๋–ค ์ˆซ์ž๋ถ€ํ„ฐ ์ฑ„์›Œ๋‚˜๊ฐˆ ๊ฒƒ์ธ์ง€๋ฅผ ๋งํ•œ๋‹ค.

ํ›„๋ณด์˜ ์ˆ˜ ๊ณ„์‚ฐํ•˜๊ธฐ

์–ด๋–ค ํžŒํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ํžŒํŠธ์— ํ•ด๋‹นํ•˜๋Š” ์นธ๋“ค์— ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ›„๋ณด ์ˆซ์ž๋“ค์˜ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ ๊ตฌํ˜„

getCandidate(len, sum, known[])

ํ›„๋ณด ๊ตฌํ•˜๊ธฐ ๊ตฌํ˜„ ๐Ÿ”—

ํ›„๋ณด์˜ ์ˆ˜ ๋น ๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•˜๊ธฐ

๋ฉ”๋ชจ์ด์ œ์ด์…˜ ๊ตฌํ˜„ ๐Ÿ”—

๋” ์ฝ์„ ๊ฑฐ๋ฆฌ

http://norvig.com/sudoku.html