๋ค์ต์คํธ๋ผ & ๋ฒจ๋งํฌ๋
์ด ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ํ์์ ์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ? ์ต๋จ ๊ฒฝ๋ก๋ ๊ทธ๋ํ์์ ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์๊ฐ ๋๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค.
์ต๋จ ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ ํธ๋๋ฐ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ง๋ง, ๋ค์ต์คํธ๋ผ์ ๋ฒจ๋งํฌ๋๋ฅผ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ(Dijkstra Algorithm)
๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ๊ทธ๋ํ์์ ์์ ๊ฐ์ค์น๊ฐ ์์ ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๋ค.
V๊ฐ์ ์ ์ ๊ณผ ์์ ๊ฐ์ค์น๋ฅผ ๊ฐ์ง E๊ฐ์ ๊ฐ์ ์ ๊ฐ์ง ๊ทธ๋ํ์์ ์ถ๋ฐ ์ ์ ์ผ๋ก๋ถํฐ ๋ชจ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋๋ค.
- ํ์ฌ ์ ์ ์ ์ฐ๊ฒฐ๋์ด ์๋ ์ ์ ๋ค์ ๋ชจ๋ ๋ณธ๋ค.
- ํ์ฌ ์ ์ ๊ณผ ์ฐ๊ฒฐ๋๋ ๋ค์ ์ ์ ์ผ๋ก์ ๊ฑฐ๋ฆฌ์ ์์ ์ ์ ๊ณผ ํ์ฌ ์ ์ ๊น์ง์ ์ต๋จ ๊ฑฐ๋ฆฌ์ ํฉ์ด ์์ ์ ์ ๊ณผ ๋ค์ ์ ์ ๊น์ง์ ์ต๋จ๊ฑฐ๋ฆฌ ํฉ๋ณด๋ค ์์ผ๋ฉด ๊ฐฑ์ ํด์ค๋ค.
- ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ์ฌ ์ต๋จ ๊ฒฝ๋ก ํ ์ด๋ธ์ ์์ฑํ๋ค.
ํ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํ๊ฒ ๋๋ฉด O(V^2)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ , ์ฐ์ ์์ ํ์ ์ด์ฉํ๊ฒ ๋๋ฉด O(ElogV)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๋ฒจ๋ง-ํฌ๋ ์๊ณ ๋ฆฌ์ฆ(Bellman-Ford-Algorithm)
๋ฒจ๋งํฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ ๊ฐ์ค์น๊ฐ ์์ด๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๋ค.
V๊ฐ์ ์ ์ ๊ณผ E๊ฐ์ ๊ฐ์ ์ ๊ฐ์ง ๊ทธ๋ํ์์ ์ถ๋ฐ ์ ์ ์ผ๋ก๋ถํฐ ๋ชจ๋ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๊ณ , ์์ ์ฌ์ดํด๋ ์ฐพ์ ์ ์๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ์งํ๋๋ค.
- ๊ทธ๋ํ๋ด์ ๋ชจ๋ ๊ฐ์ ์ ๋ํด์ 2๋ฒ ์ํํ๋ค.
- ์ ์ A์์ ์ ์ B๋ก ๊ฐ๋ ๊ฐ์ ์์ ํ์ฌ B๋ก๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก๋ณด๋ค A๋ก ๊ฐ๋ ์ต๋จ ๊ฒฝ๋ก์ ํ์ฌ ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ๋ ์ ๋ค๋ฉด ๊ฐฑ์ ํด์ค๋ค.
- ๋ ์ด์ ๊ฐฑ์ ์ด ์ด๋ฃจ์ด ์ง์ง ์์ ๋๊น์ง ๋ฐ๋ณตํ๋๋ฐ, (์ ์ ์ ์)๋ฒ ์ํ์ด ์ด๋ฃจ์ด์ง ํ์๋ ๊ฐฑ์ ์ด ์ด๋ฃจ์ด์ง๋ค๋ฉด ์์ ์ํ์ด ์ผ์ด๋๊ณ ์๋ค๊ณ ํ๋จํ๊ณ ์ข ๋ฃํ๋ค.
์ด ์ฐ์ฐํ์๋ V*E์ด๋ฏ๋ก, O(VE)์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๊ตฌํ
๋ค์ต์คํธ๋ผ์ ๋ฒจ๋งํฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐฑ์ค 1916๋ฒ ์ต์๋น์ฉ ๊ตฌํ๊ธฐ ๋ฌธ์ ์ ์ ์ฉํด ๋ณด์๋ค.
'Algorithm > ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ] ์ต์ ์คํจ๋ ํธ๋ฆฌ_ Kruskal & Prim (0) | 2022.05.22 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ํฌ ํฌ์ธํฐ & ์ฌ๋ผ์ด๋ฉ ์๋์ฐ (0) | 2022.05.18 |