๋ฐฑํŠธ๋ž˜ํ‚น(Back-Tracking)

๐Ÿ”น DFS(Depth-First Search)

  • ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ DFS๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ๋กœ(ํ›„๋ณด)๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๋ถˆํ•„์š”ํ•  ๊ฒƒ ๊ฐ™์€ ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์ „์— ์ฐจ๋‹จํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ตœ์ ์œผ๋กœ ์ค„์ด์ง€ ๋ชปํ•œ๋‹ค.
  • ๋”ฐ๋ผ์„œ, N! ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง€๋Š” ๋ฌธ์ œ๋Š” DFS๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ํฌ๋‹ค.

 

๐Ÿ”น ๋ฐฑํŠธ๋ž˜ํ‚น(Back-Tracking) ?

  • ํ•ด๋ฅผ ์ฐพ๋Š” ๋„์ค‘์— ๋ง‰ํžˆ๋ฉด ๋” ์ด์ƒ ๊นŠ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ , ์ด์ „ ๋‹จ๊ณ„๋กœ ๋˜๋Œ์•„๊ฐ€์„œ ํ•ด๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ธฐ๋ฒ•
  • ํ•ด๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๋„์ค‘์— ์ง€๊ธˆ์˜ ๊ฒฝ๋กœ๊ฐ€ ํ•ด๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด, ๋” ์ด์ƒ ๊นŠ์ด ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ  ์ด์ „ ๋‹จ๊ณ„๋กœ ๋Œ์•„๊ฐ„๋‹ค.
  • ์ด๋ฅผ ๊ฐ€์ง€์น˜๊ธฐ๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๋ถˆํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์ณ๋‚ด๊ณ  ์ตœ๋Œ€ํ•œ ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๋‚˜์•„๊ฐ€๋Š” ๋ฐฉ์‹์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ค„์–ด๋“ค์ง€๋งŒ,
  • ๋งŒ์•ฝ N! ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๋ฌธ์ œ์—์„œ๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ ์—ฌ์ „ํžˆ DFS(Depth-First Search)์™€ ๊ฐ™์€ ์‹œ๊ฐ„์„ ํ•„์š”๋กœ ํ•˜๋ฏ€๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ์–ผ๋งˆ๋‚˜ ์ž˜ํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ํšจ์œจ์„ฑ์ด ๊ฒฐ์ •๋œ๋‹ค.

 

๐Ÿ”น ์•Œ์•„๋‘๋ฉด ์ข‹์€ ๋ฐฑํŠธ๋ž˜ํ‚น ์šฉ์–ด

  • Promising : ํ•ด๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์œ ๋ง(promising) ํ•œ ์ƒํƒœ
  • Pruning : ํ•ด๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ์ œ์™ธํ•˜๋Š” ํ–‰์œ„
  • Backtracking : ์œ ๋งํ•˜์ง€ ์•Š์€ ๋ฐฉํ–ฅ์œผ๋กœ ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋˜๋Œ์•„(backtracking) ์˜ค๋Š” ํ–‰์œ„

 

๐Ÿ”น ๋ฐฑํŠธ๋ž˜ํ‚น์˜ ์œ ๋ง์„ฑ ํŒ๋‹จ

  • ์–ด๋–ค ๋…ธ๋“œ์˜ ์œ ๋ง์„ฑ, ์ฆ‰ ํ•ด๊ฐ€ ๋  ๋งŒํ•œ์ง€ ํŒ๋‹จํ•œ ํ›„์— ์œ ๋งํ•˜์ง€ ์•Š๋‹ค๊ณ  ๊ฒฐ์ •๋˜๋ฉด, ๊ทธ ๋…ธ๋“œ์˜ ์ด์ „ ๋…ธ๋“œ(๋ถ€๋ชจ)๋กœ ๋Œ์•„๊ฐ€ (backtracking) ๋‹ค์Œ ์ž์‹ ๋…ธ๋“œ๋กœ ์ด๋™ํ•œ๋‹ค.
  • ํ•ด๊ฐ€ ๋  ๋งŒํ•œ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค๋ฉด ์œ ๋งํ•˜๋‹ค(promising)๊ณ  ํ•˜๋ฉฐ, ์œ ๋งํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ์— ๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์„ ๊ฐ€์ง€์น˜๊ธฐ(pruning)๋ผ๊ณ  ํ•œ๋‹ค.

 

๐Ÿ”น ์–ธ์ œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์„๊นŒ ?

  • ์ผ์ •ํ•œ ํฌ๊ธฐ์˜ ์กฐ๊ฑด๋“ค์ด ์ฃผ์–ด์ง€๊ณ , ๊ทธ ์•ˆ์—์„œ ์™„์ „ ํƒ์ƒ‰์„ ํ†ตํ•ด ์ตœ์  ๋น„์šฉ ๋˜๋Š” ์ตœ์  ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ๊ฐ ์กฐ๊ฑด์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์„ ๊ฒฝ์šฐ

 

 

 

 

 

๐Ÿ“ƒ reference