CS ๊ณต๋ถ€

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (Dijkstra)

์€์ง„ 2021. 10. 18. 09:49

๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์ตœ๋‹จ ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜

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

 

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ถ„๋ฅ˜

  • ๋‹จ๊ณ„๋งˆ๋‹ค ๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค. (๊ทธ๋ฆฌ๋””)
  • ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ์œผ๋ฏ€๋กœ, ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ์ด์ „๊นŒ์ง€ ๊ตฌํ–ˆ๋˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์ •๋ณด๋ฅผ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (DP)

 

์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”

  • ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์€ ๊ฐ ๋…ธ๋“œ๊นŒ์ง€์˜ ํ˜„์žฌ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • ๋” ์งง์€ ๊ฒฝ๋กœ(๋น„์šฉ์ด ๋” ์ ์€ ๊ฒฝ๋กœ)๋ฅผ ์ฐพ์€ ๊ฒฝ์šฐ ๊ฐฑ์‹ ํ•œ๋‹ค.

 

๋™์ž‘๊ณผ์ •

  1. ์ถœ๋ฐœ ๋…ธ๋“œ๋ฅผ ์„ค์ •
  2. ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐํ™” (์ž๊ธฐ์ž์‹  - ์ž๊ธฐ์ž์‹  0์œผ๋กœ ์ดˆ๊ธฐํ™”)
  3. ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ ์ค‘ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๋…ธ๋“œ ์„ ํƒ 
  4. ์„ ํƒํ•œ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๋น„์šฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์„ ๊ฐฑ์‹ 
  5. 3, 4๋ฒˆ์„ ๋ฐ˜๋ณต

 

 

 

 

 

 

 

 

 

 

 

  • [Step 7] ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์›์†Œ๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค. 6๋ฒˆ ๋…ธ๋“œ์—์„œ ์ถœ๋ฐœํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.
  • [Step 8] ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์›์†Œ๋ฅผ ๊บผ๋ƒ…๋‹ˆ๋‹ค. 3๋ฒˆ ๋…ธ๋“œ๋Š” ์ด๋ฏธ ๋ฐฉ๋ฌธํ–ˆ์œผ๋ฏ€๋กœ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

 

 

ํŠน์ง•

  • ๋‹จ๊ณ„๋งˆ๋‹ค ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์œผ๋ฉด์„œ ๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋ฐฉ๋ฌธํ•œ๋‹ค.
  • ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธํ•˜์—ฌ ๊ณ„์‚ฐ์„ ๋๋‚ธ ๋…ธ๋“œ์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋Š” ๊ณ ์ •๋œ๋‹ค. Fix
  • ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ํ…Œ์ด๋ธ”์— ๊ฐ ๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์ •๋ณด๋ฅผ ์ €์žฅํ•œ๋‹ค.

 

 

 

์‹œ๊ฐ„๋ณต์žก๋„

์ตœ๋‹จ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง„๋‹ค.

 

1. ๋ฆฌ์ŠคํŠธ

  • ๋‹จ๊ณ„๋งˆ๋‹ค ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์„ ํ˜•ํƒ์ƒ‰ํ•˜์—ฌ, ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜์œผ๋ฉด์„œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๋…ธ๋“œ๋ฅผ ์„ ํƒํ•œ๋‹ค.
  • ํ•œ ๋ฒˆ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์„ ํ˜•ํƒ์ƒ‰ํ•  ๋•Œ : O(V)
  • ์ „์ฒด ์‹œ๊ฐ„ ๋ณต์žก๋„ : O(V^2)

 

2. ์šฐ์„ ์ˆœ์œ„ ํ : ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์‚ญ์ œํ•˜๋Š”(๊บผ๋‚ด๋Š”) ์ž๋ฃŒ๊ตฌ์กฐ 

  • ๋‹จ๊ณ„๋งˆ๋‹ค ์šฐ์„ ์ˆœ์œ„ ํ์—์„œ ์›์†Œ๋ฅผ ๊บผ๋‚ด์–ด, ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ์ธ ๊ฒฝ์šฐ ๋ฐฉ๋ฌธํ•œ๋‹ค.
  • ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ์™€ ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋ฅผ ๋น„์šฉ๊ณผ ํ•จ๊ป˜ ์šฐ์„ ์ˆœ์œ„ ํ(์ตœ์†Œ ํž™)์— ์‚ฝ์ž…ํ•œ๋‹ค. 
  • ๋น„์šฉ์— ๋”ฐ๋ผ ๋…ธ๋“œ๊ฐ€ ์šฐ์„ ์ˆœ์œ„ ํ์— ์ •๋ ฌ๋œ๋‹ค.
  • ํž™ : ํŠธ๋ฆฌ ๊ตฌ์กฐ (๋Œ€๋ถ€๋ถ„ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›)

 

 

 

 

 

์ถœ์ฒ˜

https://www.youtube.com/watch?v=acqm9mM1P6o [๋™๋นˆ๋‚˜]

https://blog.naver.com/ndb796/221234424646 [์•ˆ๊ฒฝ์žก์ด๊ฐœ๋ฐœ์ž ๋™๋นˆ๋‚˜]

 

23. ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ™œ์šฉํ•œ ๋Œ€ํ‘œ์ ์ธ ์ตœ๋‹จ ๊ฒฝ๋กœ(Shortest Path) ํƒ...

blog.naver.com

https://www.youtube.com/watch?v=F-tkqjUiik0 [ํ•œ๋น›๋ฏธ๋””์–ด, ๋™๋นˆ๋‚˜]