Computer Science/DS & Algorithm

Shortest Path Algorithm: ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜

geum 2024. 11. 25. 23:41

 

๐Ÿง  ๊ฐœ๋…

  • ํŠน์ • ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

โœจ ํŠน์ง•

  • ์Œ์ˆ˜ ๊ฐ€์ค‘์น˜ ์—ฃ์ง€๊ฐ€ ์กด์žฌํ•˜๋”๋ผ๋„ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ
    • ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ชจ๋“  ๊ฐ€์ค‘์น˜๊ฐ€ ์–‘์ˆ˜์ธ ๊ฒฝ์šฐ๋งŒ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ๊ทธ๋ž˜ํ”„ ์ „์ฒด์—์„œ ์Œ์ˆ˜ ์‚ฌ์ดํด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ์Œ
  • ์‹œ๊ฐ„ ๋ณต์žก๋„ O(VE) → ๋…ธ๋“œ ์ˆ˜ V, ์—ฃ์ง€ ์ˆ˜ E

 

โš™๏ธ ๋™์ž‘ ์›๋ฆฌ

  1. ์—ฃ์ง€ ๋ฆฌ์ŠคํŠธ๋กœ ๊ทธ๋ž˜ํ”„ ๊ตฌํ˜„(์—ฃ์ง€ ์ค‘์‹ฌ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๊ธฐ ๋•Œ๋ฌธ) ๋ฐ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฆฌ์ŠคํŠธ ์ดˆ๊ธฐํ™”
  2. ๋ชจ๋“  ์—ฃ์ง€๋ฅผ ํ™•์ธํ•ด ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฆฌ์ŠคํŠธ ์—…๋ฐ์ดํŠธ
    • ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋Š” ๋…ธ๋“œ ๊ฐœ์ˆ˜-1
      • ๋…ธ๋“œ ๊ฐœ์ˆ˜๊ฐ€ N์ด๊ณ  ์Œ์ˆ˜ ์‚ฌ์ดํด์ด ์—†์„ ๋•Œ ํŠน์ • ๋‘ ๋…ธ๋“œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์—ฃ์ง€ ๊ฐœ์ˆ˜๊ฐ€ N-1
    • D[s] ≠ ∞ ์ด๊ณ  D[e] > D[s]+w ์ด๋ฉด D[e] = D[s]+w ๋กœ ์—…๋ฐ์ดํŠธ
      • ์‹œ์ž‘ ๋…ธ๋“œ๊ฐ€ ๋ฌดํ•œ๋Œ€๋ฉด ๊ณ„์‚ฐ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— D[s]๊ฐ€ ๋ฌดํ•œ๋Œ€๊ฐ€ ์•„๋‹ˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์กฐ๊ฑด ํ•„์š”
    • ์—…๋ฐ์ดํŠธ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ K๋ฒˆ์ด๋ฉด ํ•ด๋‹น ์‹œ์ ์—์„œ ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฆฌ์ŠคํŠธ์˜ ๊ฐ’์€ '์‹œ์ž‘์ ์—์„œ K๊ฐœ์˜ ์—ฃ์ง€๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ ๋…ธ๋“œ์— ๊ฐ”์„ ๊ฒฝ์šฐ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ'๋ฅผ ์˜๋ฏธํ•จ
  3. ์Œ์ˆ˜ ์‚ฌ์ดํด ์กด์žฌ ์—ฌ๋ถ€ ํ™•์ธ
    • 2๋ฒˆ ๋‹จ๊ณ„์—์„œ ๋งŒ๋“ค์–ด์ง„ ์ตœ์ข… ๋ฆฌ์ŠคํŠธ๋Š” ์Œ์ˆ˜ ์‚ฌ์ดํด์ด ์—†๋Š” ๊ฒฝ์šฐ์ž„
    • ์Œ์ˆ˜ ์‚ฌ์ดํด์˜ ์กด์žฌ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ์—ฃ์ง€๋ฅผ ํ•œ ๋ฒˆ์”ฉ ๋‹ค์‹œ ์‚ฌ์šฉ
    • N๊ฐœ์˜ ์—ฃ์ง€๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์Œ์ˆ˜ ์‚ฌ์ดํด์ด ์žˆ๋‹ค๋Š” ๋œป์ด ๋จ
      • N-1๊ฐœ์˜ ์—ฃ์ง€๋ฅผ ์ผ์„ ๋•Œ๋ณด๋‹ค ๋” ์งง์€ ๊ฑฐ๋ฆฌ๊ฐ€ ๋‚˜์˜ค๋ ค๋ฉด ์Œ์ˆ˜ ์‚ฌ์ดํด์„ ๋„๋Š” ๋ฐฉ๋ฒ• ๋ฐ–์— ์—†์Œ
    • ์Œ์ˆ˜ ์‚ฌ์ดํด์˜ ์˜๋ฏธ
      • ์Œ์ˆ˜ ์‚ฌ์ดํด์„ ๋ฌดํ•œํžˆ ๋Œ๋ฉด ๊ฐ€์ค‘์น˜ ๊ฐ’์ด ๊ณ„์† ๊ฐ์†Œํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†์Œ(์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์˜๋ฏธํ•จ)

 

๐Ÿค“ ๊ทธ๋ฆผ ์˜ˆ์‹œ

  1. ๋™์ž‘ ์›๋ฆฌ 1๋‹จ๊ณ„ ์˜ˆ์‹œ ๊ทธ๋ฆผ

(๋ฆฌ์ŠคํŠธ ๋ฐ‘์— ๊ทธ๋ฆผ ๋„ฃ์œผ๋ฉด ๋ฒˆํ˜ธ๊ฐ€ ๋Š๊ธด๋‹ค๋Š” ๊ฑธ ์˜ค๋Š˜ ์ฒ˜์Œ ์•ˆ ์‚ฌ๋žŒ)

 

๐Ÿ’ป ๊ตฌํ˜„

์ผ๋‹จ ํŒŒ์ด์ฌ์œผ๋กœ ์—ด์‹ฌํžˆ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ์ค‘์ด๋ผ ๋‹ค ๋˜๋ฉด ์ถ”๊ฐ€ํ•ด์•ผ์ง€ ~

 

©๏ธ ์ถœ์ฒ˜