์ต์๋น์ฉ์ ์ฅํธ๋ฆฌ (Minimum Spanning Tree)
- ์ ๋ ฅ : n ๊ฐ์ ๋์, ๋์์ ๋์๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก ๋น์ฉ
- ๋ฌธ์ : ์ต์์ ๋น์ฉ์ผ๋ก ๋ชจ๋ ๋์๋ค์ด ์๋ก ์ฐ๊ฒฐ๋๊ฒ ํ๋ค.
ํด๊ฐ ์ ์ผํ์ง๋ ์๋ค..
์) (b, c) ๋์ ์ (a, h)๊ฐ ๋์ด๋ ๋๋ค.
-> ๋น์ฉ์ด ๊ฐ๊ณ , ๋ค ์ฐ๊ฒฐ๋๊ธฐ ๋๋ฌธ์ด๋ค.
* ์ต์๋น์ฉ์ ์ฅํธ๋ฆฌ์ ๋ต์ ํญ์ ํธ๋ฆฌ๊ฐ ๋๋ค. ์?
(ํธ๋ฆฌ : ์ธ์ดํด์ด ์๋ ์ฐ๊ฒฐ๋(connected) ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ)
: cycle์ด ์๋ค๋ ๋ง์ ์ด์ชฝ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ์ ์ชฝ ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ ๋๋๋ฐ, ์ด ๊ฒฝ์ฐ ํ ์ชฝ์ ๊ธธ์ด ๋์ด์ ธ๋ ๋ฐ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์๊ฒ ๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์ต์๋น์ฉ์ ์ํ๋ฏ๋ก cycle์ด ์๋ ๊ทธ๋ํ๋ ์ด ๊ฒฝ์ฐ์์ ์ ์ธํ๋ค.
- ์ด๋ค MST(Minimun Spanning Tree)์ ๋ถ๋ถ์งํฉ A์ ๋ํด์ A∪{(u, v)}๋ ์ญ์ ์ด๋ค MST์ ๋ถ๋ถ์งํฉ์ด ๋ ๊ฒฝ์ฐ, ์์ง (u, v)๋ A์ ๋ํด์ ์์ ํ๋ค(safe)๊ณ ํ๋ค.
- Generic MST ์๊ณ ๋ฆฌ์ฆ :
1. ์ฒ์์๋ A=ø์ด๋ค.
2. ์งํฉ A์ ๋ํด์ ์์ ํ ์์ง๋ฅผ ํ๋ ์ฐพ์ ํ ์ด๊ฒ์ A์ ๋ํ๋ค.
3. ์์ง์ ๊ฐ์๊ฐ n-1๊ฐ๊ฐ ๋ ๋๊น์ง 2๋ฒ์ ๋ฐ๋ณตํ๋ค.
Generic-MST(G, w)
{
A <-ø
while A does not form a spanning tree
do find an edge (u, v) that is safe for A
A <- A∪{(u, v)}
return A
}
* ์์ ํ ์์ง ์ฐพ๊ธฐ
- ๊ทธ๋ํ์ ์ ์ ๋ค์ ๋ ๊ฐ์ ์งํฉ S์ V-S๋ก ๋ถํ ํ ๊ฒ์ ์ปท(cut) (S, V-S)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- ์์ง (u, v)์ ๋ํด์ u๊ฐ S์ ์ํ๊ณ , v๊ฐ V-S์ ์ํ ๋, ์์ง (u, v)๋ ์ปท (S, V-S)๋ฅผ crossํ๋ค๊ณ ๋งํ๋ค.
- ์์ง๋ค์ ๋ถ๋ถ์งํฉ A์ ์ํ ์ด๋ค ์์ง๋ ์ปท (S, V-S)๋ฅผ crossํ์ง ์์ ๋, ์ปท(S, V-S)๋ A๋ฅผ ์กด์คํ๋ค(respect)๊ณ ๋งํ๋ค.
์ ๋ฆฌ : A๊ฐ ์ด๋ค MST์ ๋ถ๋ถ์งํฉ์ด๊ณ , (S, V-S)๋ A๋ฅผ ์กด์คํ๋ ์ปท์ด๋ผ๊ณ ํ์. ์ด ์ปท์ crossํ๋ ์์ง๋ค ์ค ๊ฐ์ ๊ฐ์ค์น๊ฐ ์์ ์์ง (u, v)๋ A์ ๋ํด์ ์์ ํ๋ค.
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
15-4. ์ต์๋น์ฉ์ ์ฅํธ๋ฆฌ( Minimum Spanning Tree) (0) | 2020.12.17 |
---|---|
15-2๊ฐ. ์ต์๋น์ฉ์ ์ฅํธ๋ฆฌ (Minimum Spanning Tree) (2) (0) | 2020.12.13 |
14-4๊ฐ. DAG์ ์์์์ (0) | 2020.12.08 |
14-3๊ฐ. ๊ทธ๋ํ์์์ DFS (0) | 2020.12.06 |
14-1๊ฐ. ๊ทธ๋ํ(Graph) ๊ฐ๋ ๊ณผ ํํ (0) | 2020.12.01 |
๋๊ธ