Notice
Recent Posts
Recent Comments
Link
Tags
- ๋นํธ๋ง์คํน
- LCs
- go
- ์ด๋ถํ์
- DP
- ์ฌ๋ผ์ด๋ฉ ์๋์ฐ
- ํ๋ฆฌ์จ๋ณด๋ฉ
- ๋ฐฑ์๋ ํ๋ฆฌ์จ๋ณด๋ฉ
- BFS
- ์์ฝ๋
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ๋ค์ต์คํธ๋ผ
- js
- ์น๋ฆฐ์ด
- ๋นํธ๋งต
- ๊ฐ์ฅ๊ฐ๊น์ด๊ณตํต์กฐ์
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๊ณ ๋ฆฌ์ฆ
- golang
- ๋ฐฑ์ค
- C++
- DFS
- ์ฌ๊ท
- ์นด์นด์ค ์ฝํ
- ์นด์นด์ค2021
- Python
- ํธ๋ฆฌ
- Union-Find
- nestjs
- ์ํฐ๋
Archives
- Today
- Total
Hello Ocean! ๐ผ
[์๊ณ ๋ฆฌ์ฆ] MST (์ต์ ์ ์ฅ ํธ๋ฆฌ) ๋ณธ๋ฌธ
๋ฐ์ํ
Spanning Tree(์ ์ฅ ํธ๋ฆฌ) ?
๊ฐ๋
-
๊ทธ๋ํ ๋ด์ ๋ชจ๋ ๋ ธ๋์ ํฌํจํ๋ ํธ๋ฆฌ
-
๋ชจ๋ ๋ ธ๋๋ฅผ ์ฌ์ดํด ์์ด ์ฐ๊ฒฐํ๋ ๊ฐ์ ๋ค์ ๋ชจ์๋์ ํธ๋ฆฌ
-
๊ทธ๋ํ์ ์ต์ ์ฐ๊ฒฐ ๋ถ๋ถ ๊ทธ๋ํ
-
์ต์ ์ฐ๊ฒฐ = ์ต์์ ๊ฐ์
n๊ฐ์ ๋ ธ๋๋ฅผ n-1๊ฐ์ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ
-
ํน์ง
- DFS, BFS๋ฅผ ์ด์ฉํด์ ์ฐพ์ ์ ์๋ค.
- ํ์ ๋์ค์ ์ด์ฉ๋ ๊ฐ์ ๋ชจ์ผ๊ธฐ
- ํ๋์ ๊ทธ๋ํ -> ์ฌ๋ฌ๊ฐ์ spanning tree
- ์ฌ์ดํด X
MST(Minimum Spanning Tree) ?
๊ฐ๋
- Spanning Tree์ค์ ๊ฐ์ ์ ๊ฐ์ค์น ํฉ์ด ์ต์์ธ ํธ๋ฆฌ
- ๋จ์ํ ๊ฐ์ฅ ๊ฐ์ค์น๊ฐ ์์ ๊ฐ์ ์ ์ด์ฉํ๋ค๊ณ ํด์ ์ต์ ๋น์ฉ์ด ์ป์ด์ง๋ ๊ฒ์ ์๋
ํน์ง
- ๊ฐ์ ์ ๊ฐ์ค์น์ ํฉ์ด ์ต์
- n๊ฐ์ ๋ ธ๋์ ๊ฐ์ง๋ ๊ทธ๋ํ, n-1๊ฐ์ ๊ฐ์ ๋ง ์ด์ฉ
- ์ฌ์ดํด X
๊ตฌํ ๋ฐฉ๋ฒ
1. Kruskal(ํฌ๋ฃจ์ค์นผ) MST ์๊ณ ๋ฆฌ์ฆ
- greddy method๋ฅผ ์ด์ฉํ์ฌ ์ต์ ์ MST๋ฅผ ๊ตฌํ๋ ๊ฒ
๊ฐ ๋จ๊ณ๋ง๋ค ์๋ ์กฐ๊ฑด์ ๊ทผ๊ฑฐํ์ฌ ์ต์ ๋น์ฉ ๊ฐ์ ์ ์ ํํ๋ค
- MST๊ฐ ์ต์ ๋น์ฉ์ ๊ฐ์ ์ผ๋ก ๊ตฌ์ฑ๋จ
- ์ฌ์ดํด์ ํฌํจํ์ง ์์
๊ฐ์ ์ ํ
์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ- ์ด์ ๋จ๊ณ๊น์ง ๋ง๋ค์ด์ง ์ ์ฅ ํธ๋ฆฌ์๋ ์๊ด ์์ด ๋ฌด์กฐ๊ฑด ์ต์ ๊ฐ์ ๋ง์ ์ ํ
๊ณผ์
- ๊ทธ๋ํ์ ๋ชจ๋ ๊ฐ์ ๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
- ์ ๋ ฌ๋ ๊ฐ์ ๋ค ์ค์์, ์์๋๋ก ์ฌ์ดํด์ ํ์ฑํ์ง ์๋ ๊ฐ์ ์ ์ ํ
- ์์ ๊ฐ์ ์ ๋จผ์ ์ ํ
- ์ฌ์ดํด ํ์ฑํ๋ ๊ฐ์ ์ ์ธ
- Union-find ์๊ณ ๋ฆฌ์ฆ ์ด์ฉ
- ์ถ๊ฐํ ์๋ก์ด ๊ฐ์ ์ ์ ๋ ๋
ธ๋์ด ๊ฐ์ ์งํฉ์ ์ํด์๋์ง ํ์ธํด์ผ ํจ
- ๊ฐ์ ์งํฉ์ ์ํด์์ผ๋ฉด ์ฌ์ดํด์ด ํ์ฑ๋จ
- 2์์ ์ ํ๋ ๊ฐ์ ์ MST์ ์งํฉ์ ์ถ๊ฐํ๋ค
์๊ฐ ๋ณต์ก๋
-
์ฌ์ดํด ์์ฑ ์ฌ๋ถ๋ฅผ union-find ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๊ฒ์ฌํ๋ฉด, ์๊ฐ๋ณต์ก๋๋ ๊ฐ์ ๋ค์ ์ ๋ ฌํ๋ ๊ณผ์ ์ ์ํด ์ข์ฐ๋๋ค
-
ํจ์จ์ ์ธ ํต ์ ๋ ฌ์ ์ด์ฉํ๋ฉด O(eloge)
๊ฐ์ ๊ฐ์ e๊ฐ
-
2. Prim(ํ๋ฆผ) ์๊ณ ๋ฆฌ์ฆ
- ์์ ๋ ธ๋์์๋ถํฐ MST์งํฉ์ ๋จ๊ณ์ ์ผ๋ก ํ์ฅํด๋๊ฐ๋ ๋ฐฉ๋ฒ
๋ ธ๋ ์ ํ
์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์๊ณ ๋ฆฌ์ฆ- ์ด์ ๋จ๊ณ๊น์ง ๋ง๋ค์ด์ง ์ ์ฅ ํธ๋ฆฌ๋ฅผ ํ์ฅ
๊ณผ์
- ์์ ๋ ธ๋๋ง์ด MST์งํฉ์ ํฌํจ
- ์ง๊ธ๊น์ง ๋ง๋ค์ด์ง MST์งํฉ์ ์ธ์ ํ ๋
ธ๋๋ค ์ค์์ ๊ฐ์ค์น๊ฐ ์ต์์ธ ๊ฐ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ๋
ธ๋ ์ ํ, ํธ๋ฆฌ ํ์ฅ
- ๋ฎ์ ๊ฐ์ค์น ๋จผ์ ์ ํ
- MST์งํฉ์ด n-1๊ฐ์ ๊ฐ์ ์ ๊ฐ์ง ๋ ๊น์ง ๋ฐ๋ณต
์๊ฐ ๋ณต์ก๋
-
์ค์ฒฉ๋์๋ ๋ฐ๋ณต๋ฌธ์ด ๊ฐ๊ฐ n๋ฒ์ฉ ๋ฐ๋ณต
-
O(n^2)
๋ ธ๋ ๊ฐ์ n๊ฐ
์ฐธ๊ณ ์๋ฃ
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌํ ๊ฒฝ๋ก, C++ (0) | 2020.09.21 |
---|---|
[์๊ณ ๋ฆฌ์ฆ] ์ต๋จ ๊ฒฝ๋ก ์๊ณ ๋ฆฌ์ฆ (0) | 2020.09.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ, C++ (0) | 2020.09.21 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฅ (0) | 2020.09.14 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ๊ตญ ์ฌ์ฌ (0) | 2020.09.07 |