ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [์•Œ๊ณ ๋ฆฌ์ฆ˜] 04. Min-Cost Spanning Tree
    ๐ŸณDev/Algorithm 2021. 11. 23. 18:33

    Minimum Cost Spanning Tree

    Spanning Tree

    ์‹ ์žฅ ํŠธ๋ฆฌ

    : ๊ทธ๋ž˜ํ”„์—์„œ ๋ชจ๋“  ์ •์ ์„ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ๋กœ ๊ทธ๋ž˜ํ”„์—์„œ ์ผ๋ถ€ ๊ฐ„์„ ์„ ์„ ํƒํ•ด์„œ ๋งŒ๋“  ํŠธ๋ฆฌ

    • ์ตœ์†Œ ์—ฐ๊ฒฐ์„ ํ•ด์•ผํ•˜๊ธฐ์—, ์ •์ ์˜ ์ˆ˜๊ฐ€ n์ด๋ฉด, ๊ฐ„์„ ์˜ ์ˆ˜๋Š” n-1
    • ํŠธ๋ฆฌ์ด๋ฏ€๋กœ ์‚ฌ์ดํด์€ ํฌํ•จํ•˜์ง€ ์•Š๊ณ , ์—ฌ๋Ÿฌ๊ฐœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค
    • BFS์™€ DFS๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์‹ ์žฅ ํŠธ๋ฆฌ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค

     

    Min-Cost Spanning Tree

    ์ตœ์†Œ ๋น„์šฉ ์‹ ์žฅ ํŠธ๋ฆฌ

    : MST, ๋„คํŠธ์›Œํฌ์—์„œ ์ตœ์†Œ๋น„์šฉ์˜ ์‹ ์žฅํŠธ๋ฆฌ

    : ๊ฐ€์ค‘์น˜๊ฐ€ ๋‹ค๋ฅธ ์ƒํ™ฉ์—์„œ, ๋‹จ์ˆœํžˆ ๊ฐ€์žฅ ์ ์€ ๊ฐ„์„ ์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ , ์ตœ์†Œ ๋น„์šฉ์€ ์•„๋‹ˆ๋‹ค

     

    • ๊ฐ„์„ ์˜ ๊ฐ€์ค‘์น˜์˜ ํ•ฉ์ด ์ตœ์†Œ
    • n๊ฐœ์˜ ์ •์ ์„ ๊ฐ€์ง€๋Š” ๊ทธ๋ž˜ํ”„์— ๋Œ€ํ•ด, n-1๊ฐœ์˜ ๊ฐ„์„ ๋งŒ์„ ์‚ฌ์šฉ
    • ์‚ฌ์ดํด์ด ํฌํ•จ๋˜๋ฉด ์•ˆ๋œ๋‹ค

     

    ์ตœ์†Œ ์‹ ์žฅ๋น„์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜

    • Kruskal ํฌ๋ฃจ์Šค์นผ : ํฌ์†Œ๊ทธ๋ž˜ํ”„
    • Prim ํ”„๋ฆผ : ๋ฐ€์ง‘๊ทธ๋ž˜ํ”„
    • Solin ์†”๋ฆฐ

     


    Kruskal & Prim Algorithm

    Greedy Algorithm

    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜

    : ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๊ทธ ์ˆœ๊ฐ„์ˆœ๊ฐ„๋งˆ๋‹ค ์ตœ์ ์ด๋ผ๊ณ  ์ƒ๊ฐ๋˜๋Š” ๊ฒฐ์ •์„ ํ•˜๋Š” ๋ฌธ์ œํ•ด๊ฒฐ๋ฐฉ์‹

     

    1. ์•ž์˜ ์„ ํƒ์ด ์ดํ›„์˜ ์„ ํƒ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์•„์•ผ ํ•จ
    2. ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์ด, ๋ถ€๋ถ„ ๋ฌธ์ œ์—์„œ๋„ ์ตœ์ ์˜ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด์–ด์•ผ ํ•จ

     

    Kruskal Algorithm

    : Greedy๋ฅผ ์ด์šฉํ•˜์—ฌ, ๋„คํŠธ์›Œํฌ์˜ ๋ชจ๋“  ์ •์ ์„ ์ตœ์†Œ๋น„์šฉ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋‹ต์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

    : ๊ฐ€์žฅ ์ ์€ ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜์ž

     

    • Union-find Algorithm : ์‚ฌ์ดํด ํ™•์ธ
    • Priority Queue

     

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

     

    Prim Algorithm

    : Greedy๋ฅผ ์ด์šฉํ•˜์—ฌ, ์‹œ์ž‘ ์ •์ ์—์„œ๋ถ€ํ„ฐ ์ถœ๋ฐœํ•ด MST๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ํ™•์žฅํ•ด๋‚˜๊ฐ€๋Š” ๋ฐฉ๋ฒ•

    : ์–ด๋–ค ์ •์ ์„ ์‹œ์ž‘์œผ๋กœ ํ•ด๋„ ๊ฐ™์€ ํŠธ๋ฆฌ๊ฐ€ ํ˜•์„ฑ

     

    • Priority Queue

     

    1. ์‹œ์ž‘ ๋‹จ๊ณ„์—์„œ ์‹œ์ž‘ ์ •์ ์„ priority Queue ์— ๋„ฃ์Œ
    2. ์•ž ๋‹จ๊ณ„์—์„œ ๋งŒ๋“ค์–ด์ง„ MST ์ง‘ํ•ฉ์— ์ธ์ ‘ํ•œ ์ •์ ๋“ค ์ค‘, ๊ฐ€์žฅ ๋‚ฎ์€ ๊ฐ€์ค‘์น˜๋กœ ์—ฐ๊ฒฐ๋œ ์ •์ ์„ ์„ ํƒ
    3. ์œ„์˜ ๊ณผ์ •์„ ํŠธ๋ฆฌ๊ฐ€ n-1๊ฐœ์˜ ๊ฐ„์„ ์„ ๊ฐ€์งˆ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต

     



Designed by Tistory.