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

DAG๋Š” Directed Acyclic Graph ์ด๋‹ค. ํ’€์–ด์„œ ์จ๋ณด๋ฉด, ๋ฐฉํ–ฅ์ด ์กด์žฌํ•˜๊ณ  ์‚ฌ์ดํด์ด ์—†๋Š” ๊ทธ๋ž˜ํ”„ ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฒจ๋งŒ-ํฌํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ์Œ์ˆ˜ ์‚ฌ์ดํด์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ DAG์—์„œ๋Š” ์‚ฌ์ดํด์ด ์กด์žฌํ•˜์ง€ ์•Š๊ณ , ๋ฐฉํ–ฅ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ์—ฐ์‚ฐ์—†์ด ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•  ๊ฒƒ์ด๋‹ค.

Algorithm Strategy

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

  1. Topological Sort ๋ฅผ ํ†ตํ•ด์„œ ๋ฐฉ๋ฌธ์ˆœ์„œ๋Œ€๋กœ ์ •์ ์„ ์ •๋ ฌํ•œ๋‹ค.
  2. ๊ฐ ์ •์ ๋งˆ๋‹ค Relaxation ์„ ์ง„ํ–‰ํ•ด์„œ ํ•ด๋‹น ์ •์ ๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์ •์ ๋“ค ์ค‘ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๋Š”๋‹ค.

Example

์œ„์™€ ๊ฐ™์€ DAG๊ฐ€ ์žˆ์„ ๋•Œ, ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ํ•œ๋ฒˆ ์ฐพ์•„๋ณด์ž. ์„ค๋ช…์„ ๊ฐ„์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฏธ ์œ„์ƒ ์ •๋ ฌ์ด ๋๋‚œ ๊ทธ๋ž˜ํ”„๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

Phase 1

๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ๋ชจ๋“  ์ •์ ์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์–‘์˜ ๋ฌดํ•œ๋Œ€๋กœ ์ดˆ๊ธฐํ™” ํ•˜๊ณ , ์‹œ์ž‘์ ์ด ๋˜๋Š” ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋…ธ๋“œ๋Š” 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.

Phase 2

์ •๋ ฌ๋œ ์ •์ ๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ๊บผ๋‚ด์„œ Relaxation์„ ์ง„ํ–‰ํ•ด๋ณด์ž. ์ผ๋‹จ ์‹œ์ž‘์ ์— ์žˆ๋Š” A์— ๋Œ€ํ•ด์„œ Relaxation ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด, ์—ฐ๊ฒฐ๋œ ์ •์ ์ด B ํ•˜๋‚˜๋ฟ์ด๊ธฐ ๋•Œ๋ฌธ์˜ B๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ์™€ A์™€ B ์‚ฌ์ด์˜ ๊ฐ„์„  ๊ฑฐ๋ฆฌ๋ฅผ ๋น„๊ตํ•ด์„œ ๋” ์ž‘์€ ๊ฐ’์„ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋กœ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. A์™€ B์˜ ๊ฐ„์„ ๊ฑฐ๋ฆฌ๋Š” 5์ด๊ณ , B์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” ์–‘์˜ ๋ฌดํ•œ๋Œ€๋กœ ์ดˆ๊ธฐํ™”๋˜์–ด ์žˆ๋Š” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์— B์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ 5๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.

Phase 3

๋‹ค์Œ์˜ ์ •์  B์™€ ์—ฐ๊ฒฐ๋œ ์ •์ ๋“ค์˜ ๋Œ€ํ•ด์„œ Relaxation์„ ์ง„ํ–‰ํ•œ๋‹ค.

  1. ์ •์  D: B๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 5์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •์  D๊นŒ์ง€ ๊ฐ€๋Š” ๊ฐ„์„  ๊ฑฐ๋ฆฌ 7์„ ๋”ํ•˜๋ฉด ์ด 12์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์–ป๋Š”๋‹ค. ํ˜„์žฌ๊นŒ์ง€ ์ •์  D์— ์ €์žฅ๋œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” ์–‘์˜ ๋ฌดํ•œ๋Œ€์ด๋ฏ€๋กœ, ์ƒˆ๋กœ์šด ์ตœ๋‹จ๊ฑฐ๋ฆฌ 12์„ ์„ค์ •ํ•œ๋‹ค.
  2. ์ •์  C: ์œ„์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์„œ C์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ 5 + 4 = 9 ๋กœ ๊ฐฑ์‹ ๋œ๋‹ค.

Phase 4

๋‹ค์Œ์€ ์ •์  C๋ฅผ ๊บผ๋‚ด์„œ Relaxation์„ ํ•ด๋ณด์ž.

  1. ์ •์  D: ์ •์  C๊ฐ€ ๊ฐ€์ง„ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 9์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ •์  C์—์„œ ์ •์  D๋กœ ์ด๋™ํ•  ๋•Œ ๊ณ„์‚ฐ๋˜๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 9 + 6 = 15 ์ด๋‹ค. ํ˜„์žฌ D์— ์ €์žฅ๋œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 12์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •์  C๋ฅผ ๊ฑฐ์ณ์„œ D๋กœ ๊ฐ€๋Š” ๊ฒฝ๋กœ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๊ณ  ๋๋‚ธ๋‹ค.
  2. ์ •์  E: ์ •์  E์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” ์–‘์˜ ๋ฌดํ•œ๋Œ€์ด๊ธฐ ๋•Œ๋ฌธ์— C๋ฅผ ํ†ตํ•ด์„œ ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ๋กœ๊ฐ€ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋กœ ์—…๋ฐ์ดํŠธ๋  ๊ฒƒ์ด๋‹ค. E์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 9 + 4 = 13์ด ๋œ๋‹ค.

Phase 5

D ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ Relaxation์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ๋˜๋ฉด E๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ๋กœ๋งŒ ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค. D๋ฅผ ๊ฑฐ์ณ์„œ E๋กœ ๊ฐ€๊ฒŒ๋˜๋ฉด 15์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ํ˜„์žฌ E๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋Š” 13์ด๊ธฐ ๋•Œ๋ฌธ์— ์—…๋ฐ์ดํŠธ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

Phase 6

๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•œ ์ •์ ์€ ๋” ์ด์ƒ ์—ฐ๊ฒฐํ•  ์ •์ ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— Relaxation์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋งˆ์นœ๋‹ค.

Algorithm Analysis

DAG์—์„œ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ์‹œ๊ฐ„๋ณต์žก๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. ์œ„์ƒ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ๊ฐ„ ๐›ฉ(V+E)
  2. ์ตœ์ดˆ์— ๋ชจ๋“  ์ •์ ์„ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ์‹œ๊ฐ„ ๐›ฉ(|V|)
  3. ๊ฐ ์ •์ ์— ๋Œ€ํ•œ Relaxation์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‹œ๊ฐ„ ๐›ฉ(|E|)

๋”ฐ๋ผ์„œ ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” ์œ„์˜ ์„ธ ์—ฐ์‚ฐ์„ ๋‹ค ํ•ฉ์ณค์„ ๋•Œ์˜ ์ ๊ทผํ‘œ๊ธฐ์ธ ๐›ฉ(V+E) ๊ฐ€ ๋œ๋‹ค.