MST(Minimum Spanning Tree)
Last updated
Last updated
์ต์์ ์ฅํธ๋ฆฌ(MST)๋ ๊ฐ์ค๊ทธ๋ํ์ ์ด ๊ฐ์ ๋ฌด๊ฒ๊ฐ ์ต์์ธ ์ ์ฅํธ๋ฆฌ๋ฅผ ๋งํ๋ค.
์ ์ฅํธ๋ฆฌ : (์์ )ํธ๋ฆฌ์ธ ์ ์ฅ ๋ถ๊ทธ๋ํ
์ ์ฅ ๋ถ๊ทธ๋ํ : ๊ทธ๋ํ G์ ๋ชจ๋ ์ ์ ๋ค์ ํฌํจํ๋ ๋ถ๊ทธ๋ํ
T : ๊ฐ์ค๊ทธ๋ํ G์ ์ต์์ ์ฅํธ๋ฆฌ
e : T์ ์กด์ฌํ์ง ์๋ G์ ๊ฐ์
C : e๋ฅผ T์ ์ถ๊ฐํ์ฌ ํ์ฑ๋ ์ธ์ดํด
C์ ๋ชจ๋ ๊ฐ์ f์ ๋ํด, weight(f) <= weight(e)
๊ฐ ์ฑ๋ฆฝํ๋ค.
G์ ์ ์ ๋ค์ ๋ ๊ฐ์ ๋ถ๋ถ์งํฉ U์ V๋ก ๋ถํ
e : ๋ถํ ์ ๊ฐ๋ก์ง๋ฅด๋ ์ต์ ๋ฌด๊ฒ์ ๊ฐ์
๊ฐ์ e๋ฅผ ํฌํจํ๋ G์ ์ต์์ ์ฅํธ๋ฆฌ๊ฐ ๋ฐ๋์ ์กด์ฌํ๋ค.
ํ์ ์๊ณ ๋ฆฌ์ฆ
๋จ์ ์ฐ๊ฒฐ ๋ฌด๋ฐฉํฅ ๊ฐ์ค๊ทธ๋ํ
์์์ ์ ์ s๋ฅผ ํํ์ฌ, s๋ก๋ถํฐ ์์ํ์ฌ ์ ์ ๋ค์ ๋ฐฐ๋ญ์ ๋ฃ์ด๊ฐ๋ฉฐ ๋ฐฐ๋ญ ์์์ ์ต์์ ์ฅํธ๋ฆฌ์ธ T๋ฅผ ํค์๋๊ฐ๋ค. => s๋ T์ ๋ฃจํธ๊ฐ ๋๋ค.
๊ฐ ์ ์ v์ ๋ผ๋ฒจ d(v)๋ฅผ ์ ์ => d(v)๋ ๋ฐฐ๋ญ ์์ ์ ์ ๊ณผ ๋ฐฐ๋ญ ๋ฐ์ ์ ์ ์ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ ๋ฌด๊ฒ
๋ฐฐ๋ญ ๋ฐ์ ์ ์ ๋ค์ ์ฐ์ ์์ ํ์ ์ ์ฅ
ํค : ๊ฑฐ๋ฆฌ
์์ : ์ ์
Q.replaceKey(e,k) : ์์ e์ ํค๋ฅผ k๋ก ๋ณ๊ฒฝํ๊ณ Q ๋ด์ e์ ์์น๋ฅผ ๊ฐฑ์ ํ๋ค.
์๊ฐ๋ณต์ก๋ :
์ฐ์ ์์ ํ๋ฅผ๊ตฌ binary heap์ผ๋ก ๊ตฌํ ์,
ํ์ ์๊ณ ๋ฆฌ์ฆ
์๊ณ ๋ฆฌ์ฆ์ ์ํ ์ด๊ธฐ ์์
๋ชจ๋ ์ ์ ์ ๊ฐ๊ฐ์ ๋ ์์ ์ธ ๋ฐฐ๋ญ์ ๋ฃ๋๋ค.
๋ฐฐ๋ญ๋ฐ์ ๊ฐ์ ๋ค์ ์ฐ์ ์์ ํ์ ์ ์ฅ
ํค : ๋ฌด๊ฒ
์์ : ๊ฐ์
๋ฐ๋ณต์ ๊ฐ ํ์ ์์
๋ ๊ฐ์ ๋ค๋ฅธ ๋ฐฐ๋ญ ์์ ์๋์ ์ ๊ฐ์ง ์ต์ ๋ฌด๊ฒ์ ๊ฐ์ ์ ์ต์์ ์ฅํธ๋ฆฌ T์ ํฌํจํ๊ณ ๋ ๋ฐฐ๋ญ์ ํ๋๋ก ํฉ์น๋ค.
๋ฐ๋ณต์ด ์๋ฃ๋๋ฉด ์ต์์ ์ฅํธ๋ฆฌ T๋ฅผ ํฌํจํ๋ ํ ๊ฐ์ ๋ฐฐ๋ญ๋ง ๋จ๋๋ค.
๋ฐ๋ณต์ ํ์ ๋ง๋ค ๊ฐ์ (u, v)๋ฅผ ์ต์์ ์ฅํธ๋ฆฌ T์ ์ถ๊ฐ
์๊ฐ๋ณต์ก๋ :