๊ธ€ ์ž‘์„ฑ์ž: ๊ฐœ๋ฐœํ•˜๋Š” ํ›ˆ์ด

Kruskal MST Algorithm

์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜์ธ ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์•Œ์•„๋ณด์ž.

Algorithm Concept

ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ Greedy Algorithm์„ ์ ์šฉํ•ด์„œ ๊ฐ€์ค‘์น˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๊ฐ„์„ ๋“ค์„ ๊ณ„์† ์„ ํƒํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.

  1. ๊ทธ๋ž˜ํ”„์˜ ๋ชจ๋“  ๊ฐ„์„ ์„ ๊ฐ€์ค‘์น˜๊ฐ€ ๋‚ฎ์€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ
  2. ์ˆœ์„œ๋Œ€๋กœ ๊บผ๋‚ด๋ฉด์„œ MST๋ฅผ ๋งŒ๋“ ๋‹ค.
  3. ์ด๋•Œ, MST์— ์ถ”๊ฐ€ํ•˜๋ฉด ์‚ฌ์ดํด์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๊ฐ„์„ ์€ ์ œ์™ธํ•œ๋‹ค.

๋ฌด์ฒ™ ๊ฐ„๋‹จํ•ด๋ณด์ด์ง€๋งŒ, 3๋ฒˆ์งธ ์กฐ๊ฑด์ธ ์‚ฌ์ดํด์„ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ด๊ณ  ์‰ฝ์ง€ ์•Š์€ ๋‚ด์šฉ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” Union Find ๋ฅผ ํ†ตํ•ด ๊ฐ ๊ฐ„์„ ์˜ ์–‘ ๋ ์ •์ ๋“ค์ด ๊ฐ™์€ ์ง‘ํ•ฉ ๋‚ด์— ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผํ•œ๋‹ค.

Example


์ด ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์•„๋ณด์ž.

Phase 1

์šฐ์„  ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ์ž. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •๋ ฌ ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ID Weight
CG 2
EF 3
BC 4
AC 5
AB 6
FG 8
CD 9
AF 10
AE 14
GH 15

์šฐ๋ฆฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐ„์„ ์€ ์ด 10๊ฐœ์ด์ง€๋งŒ ์•ž์„œ ์ •๋ฆฌํ–ˆ๋‹ค์‹œํ”ผ, Spanning Tree ๋Š” ์ •์ ์˜ ๊ฐฏ์ˆ˜ - 1 ๊ฐœ์˜ ๊ฐ„์„ ์„ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ 7๊ฐœ๋งŒ์ด ์„ ํƒ๋  ๊ฒƒ์ด๋‹ค.

๋‹จ์ˆœํ•˜๊ฒŒ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์œ„์—์„œ ๋ถ€ํ„ฐ 7๊ฐœ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ์‚ฌ์ดํด์„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ ๋…ธ๋“œ์˜ ๋ฃจํŠธ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด์€ ๊ฐ ๋…ธ๋“œ ์ž์‹ ์œผ๋กœ ์ตœ์ดˆ์— ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

Phase 2

 

๊ฐ€์žฅ ๊ฐ„์„ ์˜ ๋น„์šฉ์ด ์ ์€ {C}์™€ {G}๋ฅผ ๊บผ๋‚ด์„œ Union Find ๋„ฃ๋Š”๋‹ค. merge ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜๊ฒŒ ๋˜๋ฉด C๊ฐ€ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ ๋˜๊ณ  G๊ฐ€ ๊ทธ ๋ฐ‘์œผ๋กœ ๋ถ™๊ฒŒ ๋œ๋‹ค. merge ์—ฐ์‚ฐ ์•ˆ์—๋Š” find ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์ดํด์ด ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋‘ ์ •์ ์„ ํ•œ ์ง‘ํ•ฉ์œผ๋กœ ํ•ฉ์น  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํŠธ๋…ธ๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ํ…Œ์ด๋ธ”์—์„œ C๋Š” ์ž๊ธฐ ์ž์‹ ์„, G๋Š” C๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ด ์˜ˆ์ œ์—์„œ๋Š” ์•ŒํŒŒ๋ฒณ์„ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. C ๊ฐ€ G๋ณด๋‹ค ์‚ฌ์ „์ˆœ์„œ ์ƒ์œผ๋กœ ์•ž์— ์žˆ์œผ๋ฏ€๋กœ ๋ฃจํŠธ๋…ธ๋“œ๋กœ ์ง€์ •ํ–ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ MST๋Š” {C, G} ๊ฐ€ ๋œ๋‹ค.

Phase 3

๋‹ค์Œ์œผ๋กœ ๋น„์šฉ์ด ์ ์€ ๊ฐ„์„ ์„ ์ด๋ฃจ๋Š” ์ •์  {E} ์™€ {F}๋ฅผ ์„ ํƒํ•œ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์— ๋„ฃ์œผ๋ฉด ์œ„์™€ ๊ฐ™์ด ๋ฃจํŠธ๋…ธ๋“œ ํ…Œ์ด๋ธ”์ด ์—…๋ฐ์ดํŠธ ๋˜๊ณ , MST๋Š” {C, G}, {E, F} ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

Phase 4

ํ•œ๋ฒˆ ๋” ์ง„ํ–‰ํ•˜๋ฉด B์™€ C๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ ์ด ์„ ํƒ๋˜๋Š”๋ฐ, C๋Š” ์ด๋ฏธ {C, G}๋กœ ํ•ฉ์ณ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ์˜ merge ์—์„œ๋Š” {C} ์™€ {C, G}๋ฅผ ํ•ฉ์น˜๊ฒŒ ๋œ๋‹ค. merge ์—์„œ๋Š” ํŠธ๋ฆฌ ๋ถˆ๊ท ํ˜•์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋‘ ํŠธ๋ฆฌ ์ค‘ ๊ธธ์ด๊ฐ€ ๋” ์งง์€ ํŠธ๋ฆฌ์˜ ๋ฃจํŠธ๋…ธ๋“œ์— ๋‹ค๋ฅธ ํŠธ๋ฆฌ๋ฅผ ๋ถ™์ด๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— {C, G}๋Š” B์•„๋ž˜์— ๋ถ™์–ด ์žˆ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฃจํŠธ ๋…ธ๋“œ ํ…Œ์ด๋ธ” ์—์„œ C์˜ ๋ฃจํŠธ๋…ธ๋“œ๊ฐ€ B๋กœ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ์•„์ง find ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— G์˜ ๋ฃจํŠธ๋…ธ๋“œ๋Š” C๋กœ ๊ณ„์† ๋‚จ์•„์žˆ๋Š”๋‹ค.

Phase 5

 

๋‹ค์Œ์œผ๋กœ ๋น„์šฉ์ด ์ ์€ ๊ฐ„์„ ์„ ์ด๋ฃจ๋Š” ์ €์  {A}์™€ {C}๋ฅผ ์„ ํƒํ•œ๋‹ค. ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋ฅผ ํ†ตํ•ด ํ•ฉ์น˜๋ฉด C ๊ฐ€ ์†ํ•ด์žˆ๋Š” ๋ฃจํŠธ๋…ธ๋“œ B์˜ ํŠธ๋ฆฌ ๋†’์ด๊ฐ€ ๋” ์งง๊ธฐ ๋•Œ๋ฌธ์— A๋ฅผ ๋ฃจํŠธ๋…ธ๋“œ๋กœ ์ง‘ํ•ฉ์— ํŽธ์ž…๋œ๋‹ค.

Phase 6

 

๋‹ค์Œ ์ •์ ์ธ {A} ์™€ {B}๋ฅผ ์„ ํƒํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์œ ๋‹ˆ์˜จ ํŒŒ์ธ๋“œ๋กœ ์œ ๋‹ˆ์˜จ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด, ๋ฃจํŠธ ๋…ธ๋“œ ํ…Œ์ด๋ธ”์€ A์™€ B์— ๋Œ€ํ•ด ๊ฐ™์€ ๋ฃจํŠธ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ๋•Œ๋ฌธ์—, ์ด๋ฏธ ํ•œ ํŠธ๋ฆฌ ์•ˆ์— ์†ํ•œ ์ •์ ๋“ค์ด๋ผ๊ณ  ํŒ๋‹จํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ„ ๋‹ค๋ฅธ ์—ฐ์‚ฐ์—†์ด ๋ฐ˜ํ™˜๋œ๋‹ค. ์œ ๋‹ˆ์˜จ ์—ฐ์‚ฐ์„ ํ†ตํ•ด ๋‘ ์ •์ ์ด ์ด๋ฏธ ํ•œ ํŠธ๋ฆฌ์— ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ํ™•์ธ๋˜์—ˆ๋‹ค๋ฉด, ๊ฐ„์„ ์„ MST์— ์ถ”๊ฐ€ํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ํŠธ๋ฆฌ์•ˆ์— ์žˆ๋Š” ๋‘ ์ •์ ์„ ์ƒˆ๋กœ์šด ๊ฐ„์„ ์œผ๋กœ ์ž‡๊ฒŒ๋˜๋ฉด ์‚ฌ์ดํด์ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— MST์˜ ์กฐ๊ฑด์— ์œ„๋ฐฐ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ„์„  AB๋Š” MST์— ์ถ”๊ฐ€๋˜์ง€ ์•Š๊ณ  ๊ฑด๋„ˆ๋›ด๋‹ค.

More Steps..

 

์œ„ ๊ณผ์ •๋“ค์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ํ…Œ์ด๋ธ”์˜ ๋งˆ์ง€๋ง‰ ๊ฐ„์„ ๊นŒ์ง€ ๊ฒ€์‚ฌํ•˜๊ฒŒ ๋˜๋ฉด ์œ„์™€๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์™„์„ฑ๋œ๋‹ค. ์‚ฌ์ดํด์ด ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ œ๊ฑฐํ•œ ๊ฐ„์„ ๋“ค์„ ๋ชจ๋‘ ์—†์• ๊ณ  ๊ฐ„์„ ๋“ค์˜ ๊ฐ€์ค‘์น˜๋ฅผ ํ•ฉํ•ด๋ณด๊ฒŒ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ€์ค‘์น˜์˜ ํ•ฉ์ด 43์ธ ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ๊ฐ€ ์™„์„ฑ๋œ๋‹ค.