๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

15-1๊ฐ•. ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ(Minimum spanning tree)

by devshin.kr 2020. 12. 11.
728x90

์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ (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์— ๋Œ€ํ•ด์„œ ์•ˆ์ „ํ•˜๋‹ค.

 

 

www.inflearn.com/course/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B0%95%EC%A2%8C/lecture/4109?tab=curriculum

 

์˜๋ฆฌํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์ขŒ - ์ธํ”„๋Ÿฐ

์˜๋ฆฌํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์†Œ์–‘์ธ '์•Œ๊ณ ๋ฆฌ์ฆ˜' ์„ ๋ฐฐ์šฐ๊ณ  ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜จ๋ผ์ธ ๊ฐ•์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ•์ขŒ

www.inflearn.com

 

๋Œ“๊ธ€