๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ137

15-4. ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ( Minimum Spanning Tree) Prim์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ž„์˜์˜ ๋…ธ๋“œ๋ฅผ ์ถœ๋ฐœ๋…ธ๋“œ๋กœ ์„ ํƒ - ์ถœ๋ฐœ ๋…ธ๋“œ๋ฅผ ํฌํ•จํ•˜๋Š” ํŠธ๋ฆฌ๋ฅผ ์ ์  ํ‚ค์›Œ ๊ฐ (ํฌ๋Ÿฌ์Šค์นผ์€ ์—์ง€๋“ค์˜ ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ ์ˆœ์„œ๋Œ€๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค๋ฉด, ํ”„๋ฆผ์€ ์ถœ๋ฐœ๋…ธ๋“œ๋ถ€ํ„ฐ ์—ฐ๊ฒฐ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ํƒ์ƒ‰ํ•˜์—ฌ ํŠธ๋ฆฌ๋ฅผ ํ‚ค์šด๋‹ค) - ๋งค ๋‹จ๊ณ„์—์„œ ์ด๋ฏธ ํŠธ๋ฆฌ์— ํฌํ•จ๋œ ๋…ธ๋“œ์™€ ํฌํ•จ๋˜์ง€ ์•Š์€ ๋…ธ๋“œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—์ง€๋“ค ์ค‘ ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ ์—์ง€๋ฅผ ์„ ํƒ ์œ„์˜ ๊ทธ๋ž˜ํ”„์—์„œ ์ถœ๋ฐœ ๋…ธ๋“œ๊ฐ€ ์ดˆ๋ก์ƒ‰ ๋…ธ๋“œ๋ผ๊ณ  ํ•˜๋ฉด, ์ถœ๋ฐœ ๋…ธ๋“œ์— ์ธ์ ‘ํ•œ ๋…ธ๋“œ๋“ค์„ A๋ผ ํ•˜๋ฉด, ๊ทธ ๋ถ€๋ถ„ํŠธ๋ฆฌ์— ํฌํ•จ๋œ ๋…ธ๋“œ๋“ค์˜ ์ง‘ํ•ฉ์€ V of A(๋นจ๊ฐ„ ๋…ธ๋“œ๋“ค)๋ผ ํ•˜์ž. (a) : ์ถœ๋ฐœ๋…ธ๋“œ a ์—์„œ ์ธ์ ‘ํ•œ ๋…ธ๋“œ b์™€ ๋…ธ๋“œ k ๊ฐ€ ์žˆ๋‹ค. ๊ฐ€์ค‘์น˜๊ฐ€ ์ž‘์€ ์—์ง€๋Š” 4์ด๋ฏ€๋กœ ๋…ธ๋“œ b๋ฅผ ์„ ํƒํ•œ๋‹ค. (b) : ์ด์ œ ๋…ธ๋“œ a ์™€ ๋…ธ๋“œ b๋Š” V of A์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์ด ๋˜์—ˆ๋‹ค. (c.. 2020. 12. 17.
15-2๊ฐ•. ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ (Minimum Spanning Tree) (2) ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ (Minimum Spanning Tree) Kruskal์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์—์ง€๋“ค์„ ๊ฐ€์ค‘์น˜์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. - ์—์ง€๋“ค์„ ๊ทธ ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์„ ํƒํ•ด ๊ฐ„๋‹ค. ๋‹จ, ์ด๋ฏธ ์„ ํƒ๋œ ์—์ง€๋“ค๊ณผ ์‚ฌ์ดํด(cycle)์„ ํ˜•์„ฑํ•˜๋ฉด ์„ ํƒํ•˜์ง€ ์•Š๋Š”๋‹ค. - n-1๊ฐœ์˜ ์—์ง€๊ฐ€ ์„ ํƒ๋˜๋ฉด ์ข…๋ฃŒํ•œ๋‹ค. ์œ„์˜ ๊ทธ๋ž˜ํ”„์—์„œ, ๋ชจ๋ฅธ ์—์ง€๋“ค์„ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ํฐ ๊ฒƒ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ๋‘์—ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. (a) : ๊ฐ€์žฅ ๊ฐ€์ค‘์น˜(weight)๊ฐ€ ์ž‘์€ ์—์ง€(1)๋ฅผ ์„ ํƒํ•œ๋‹ค. => ๋‚ด๊ฐ€ ์„ ํƒํ•œ ์—์ง€๋“ค์€ cycle์„ ํ˜•์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. (์™œ? ์—์ง€๊ฐ€ ํ•˜๋‚˜๋ฐ–์— ์„ ํƒ๋˜์ง€ ์•Š์•˜์œผ๋‹ˆ๊นŒ) (b) : ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ€์ค‘์น˜(weight)๊ฐ€ ์ž‘์€ ์—์ง€(2)๋ฅผ ์„ ํƒํ•œ๋‹ค. => cycle์„ ํ˜•์„ฑํ•˜์ง€ ์•Š๋Š”๋‹ค. (c) : ๊ทธ ๋‹ค์Œ์œผ๋กœ ๊ฐ€์ค‘์น˜(weight)๊ฐ€ ์ž‘์€ ์—.. 2020. 12. 13.
15-1๊ฐ•. ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ(Minimum spanning tree) ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ (Minimum Spanning Tree) - ์ž…๋ ฅ : n ๊ฐœ์˜ ๋„์‹œ, ๋„์‹œ์™€ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ ๋น„์šฉ - ๋ฌธ์ œ : ์ตœ์†Œ์˜ ๋น„์šฉ์œผ๋กœ ๋ชจ๋“  ๋„์‹œ๋“ค์ด ์„œ๋กœ ์—ฐ๊ฒฐ๋˜๊ฒŒ ํ•œ๋‹ค. ํ•ด๊ฐ€ ์œ ์ผํ•˜์ง€๋Š” ์•Š๋‹ค.. ์˜ˆ) (b, c) ๋Œ€์‹ ์— (a, h)๊ฐ€ ๋˜์–ด๋„ ๋œ๋‹ค. -> ๋น„์šฉ์ด ๊ฐ™๊ณ , ๋‹ค ์—ฐ๊ฒฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. * ์ตœ์†Œ๋น„์šฉ์‹ ์žฅํŠธ๋ฆฌ์˜ ๋‹ต์€ ํ•ญ์ƒ ํŠธ๋ฆฌ๊ฐ€ ๋œ๋‹ค. ์™œ? (ํŠธ๋ฆฌ : ์‹ธ์ดํด์ด ์—†๋Š” ์—ฐ๊ฒฐ๋œ(connected) ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„) : cycle์ด ์žˆ๋‹ค๋Š” ๋ง์€ ์ด์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋„ ์ €์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋„ ๋˜๋Š”๋ฐ, ์ด ๊ฒฝ์šฐ ํ•œ ์ชฝ์˜ ๊ธธ์ด ๋Š์–ด์ ธ๋„ ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ์ตœ์†Œ๋น„์šฉ์„ ์›ํ•˜๋ฏ€๋กœ cycle์ด ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋Š” ์ด ๊ฒฝ์šฐ์—์„œ ์ œ์™ธํ•œ๋‹ค. - ์–ด๋–ค MST(Minimun Spanning Tree)์˜.. 2020. 12. 11.
14-4๊ฐ•. DAG์™€ ์œ„์ƒ์ˆœ์„œ DAG (Directed Acyclic Graph) : ๋ฐฉํ–ฅ ์‚ฌ์ดํด(directed cycle)์ด ์—†๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„. (์ž๊ธฐ ์ž์‹ ์œผ๋กœ ๋Œ์•„์˜ค์ง€ ์•Š๋Š” ๋ฐฉํ–ฅ๊ทธ๋ž˜ํ”„..) ์˜ˆ) ์ž‘์—…๋“ค์˜ ์šฐ์„ ์ˆœ์œ„ ์œ„์˜ ๊ทธ๋ž˜ํ”„์—์„œ b๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” a๊ฐ€ ๋ฐ˜๋“œ์‹œ ์„ ํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค! ์œ„์ƒ์ •๋ ฌ (topological ordering) - DAG์—์„œ ๋…ธ๋“œ๋“ค์˜ ์ˆœ์„œํ™”(sorting) .. v1, v2, ..., vn. ๋‹จ ๋ชจ๋“  ์—์ง€(vi, vj)์— ๋Œ€ํ•ด์„œ i < j๊ฐ€ ๋˜๋„๋ก! ์œ„์˜ ๊ทธ๋ž˜ํ”„์—์„œ ์œ„์ƒ์ •๋ ฌ์„ ํ–ˆ์„ ๋•Œ, ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ ๋ฐฉํ–ฅ์œผ๋กœ ์ •๋ ฌํ–ˆ์„ ๋•Œ, a-g-... ๋˜๋Š” a-b-... ์ธ๋ฐ, ์—ญ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋ฉด ์•ˆ ๋œ๋‹ค. (์˜ค๋ฅธ์ชฝ์—์„œ ์™ผ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด ์ ˆ๋Œ€ ์•ˆ ๋œ๋‹ค.) ์–ด๋–ค ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ๋“ค์–ด์˜ค๋Š” ๋…ธ๋“œ์˜ ๊ฐฏ์ˆ˜๋ฅผ in-degree, ๋‚˜๊ฐ€๋Š” ๋…ธ๋“œ์˜ .. 2020. 12. 8.