[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ์๊ณ ๊ฒฝ๋ก(Critical Path)
Critical Path (์๊ณ๊ฒฝ๋ก)
๋ฐฉํฅ ๊ทธ๋ํ๋ ์์์ ๋ ฌ์์ ๋ณด์๋ ๊ฒ ์ฒ๋ผ ์ด๋ค ์์๋ฅผ ํํํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค. Critical Path
๋ ๋ฐฉํฅ ๊ทธ๋ํ์์ ์ด๋ค ์ ์ ๊น์ง ๋๋ฌํ๋๋ฐ ๊ฐ์ฅ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ๋ก๋ฅผ ์๋ฏธํ๋ค. ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ๊ฒ์ด ๋ ์๋ฏธ์๊ฒ ๋๊ปด์ง ์๋ ์๊ฒ ์ง๋ง, ๊ฐ์ฅ ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ค๋ฉด, ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๋ก๊ฐ ํด๋น ๊ฒฝ๋ก์ ๊ฑฐ๋ฆฌ๋ ์๊ฐ ์ด๋ด๋ก ๋ง์น ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๊ธฐ ๋๋ฌธ์ ์๋นํ ์๋ฏธ๊ฐ ์๋ค.
Alogrithm Concepts
์ด ์๊ณ ๋ฆฌ์ฆ ์ ๋ต์์๋ DFS๊ฐ ์ฌ์ฉ๋๋ค. ์ฌ์ค์ Topological Sort
์์ ์ฌ์ฉํ๋ ๊ฐ๋
์ด ๋ค์ ๋ฑ์ฅํ๋ค. Topological Sort ๋ฅผ ์ฌ์ฉํ๊ฒ๋๋ฉด ๊ฐ ์ ์ ๋ง๋ค ๊ฑธ๋ฆฌ๋ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ ์ ์๊ฒ ๋๋๋ฐ ์ด๋ฒ์๋ ๊ฐ ๊ฐ์ ์ ๊ฐ์ค์น๊ฐ ์๋ค๋ ์กฐ๊ฑด์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ด๋ฅผ ์ํด์ ๊ทธ๋ํ์ ๊ฐ์ ์ ๋ชจ๋ ์ญ๋ฐฉํฅ์ผ๋ก ๋ง๋ค๊ณ ๊ฐ ๋
ธ๋๋ค์ ๋ํด์ ๋๊ฐ์ง ์ ๋ณด๋ฅผ ๊ธฐ๋กํด์ผ ํ๋ค:
est (Earlist Start Time)
eft (Earlist Finish Time)
Node Dependency
est ์ eft๋ Node dependency ์ ์ํด์ ์ ํด์ง๋ค. ๋ง์ฝ์ ์ด๋ค ๋ ธ๋๊ฐ ๋ค์์ ํด์ผํ ์ผ์ด ์ ํด์ ธ ์์ง ์๋ค๋ฉด ๊ทธ ๋ ธ๋๋ dependency ๊ฐ ์๋ค๊ณ ํ ์ ์๋ค. ์ฆ ์ด๋ค ๋ ธ๋๋ฅผ ๊ฐ๋ฅดํค๋ ๊ฐ์ ์ ๊ฐ์ง๋ ๋ ธ๋๋ฅผ dependency๊ฐ ์๋ค๊ณ ๋งํ ์ ์๋ ๊ฒ์ด๋ค.
๊ฐ ๋ ธ๋๋ค์ ๋ค์ ์ธ ์ํ ์ค ํ๋์ ์ํ๊ฒ ๋๊ณ ๊ฐ ๊ฒฝ์ฐ๋ง๋ค est์ ๊ณ์ฐ ์กฐ๊ฑด์ด ๋ฌ๋ผ์ง๋ค.
- ๋ ์ด์ ์งํํ ๋ค์ ๋ ธ๋๊ฐ ์์ ๊ฒฝ์ฐ : est = 0
- ์งํํ ์ ์๋ ๋ค์ ๋ ธ๋๊ฐ ํ๋์ธ ๊ฒฝ์ฐ : ๋ค์ ๋ ธ๋์ eft๊ฐ ํ์ฌ ๋ ธ๋์ est๊ฐ ๋๋ค.
- ์งํํ ์ ์๋ ๋ค์ ๋ ธ๋๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ : ์ฐ๊ฒฐ๋ ๋ค์ ๋ ธ๋๋ค์ eft์ค ๊ฐ์ฅ ํฐ ๊ฐ์ด ํ์ฌ ๋ ธ๋์ est๊ฐ ๋๋ค. eft๋ est + ๊ฐ์ ๊ฐ์ค์น ๋ก ๊ณ์ฐํ๋ค.
์กฐ๊ธ ํท๊ฐ๋ฆด ์๋ ์์ง๋ง, ์๊ฐํด๋ณด๋ฉด ๋จ์ํ๋ค. topological sort๋ฅผ ์๊ฐํด๋ณด๋ฉด, finish time์ด ๊ฐ์ฅ ๋ฆ๋ ๋ ธ๋๋ฅผ ์ ์ ์๋๋ฐ, ํด๋น ๋ ธ๋๋ก๋ถํฐ ๊ฒฝ๋ก๋ฅผ backtrack ํ๋ฉด์ ๊ธธ์ด๊ฐ ์ ์ผ ๊ธด ๊ฐ์ ๋ง ์ ํํ๋ค๋ฉด ๊ฐ์ฅ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒฝ๋ก๋ฅผ ์์๋ผ ์ ์๋ค.
Modify DAG
Critical Path ๋ฅผ ์ฐพ๊ธฐ ์ํด์ ๊ทธ๋ํ๋ฅผ ์กฐ๊ธ ์์ ํด์ผํ ํ์๊ฐ ์๋ค.
- ๊ทธ๋ํ๋ฅผ topological sort ํ์ ๋ ๊ฐ์ฅ ๋ง์ง๋ง์ ์๋, ์ฆ ์๋ฌด ๋
ธ๋๋ ๊ฐ๋ฅดํค์ง ์๋ ๋
ธ๋๋ค์ ์๋ก์ด ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋
ธ๋๋ฅผ
done
์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด ์์ ์ ๋ง์น๋ฉด dependency๊ฐ ์๋ ๋ ธ๋๋ค์ ๋ชจ๋ done์ ๊ฐ๋ฅดํค๊ฒ ๋ ๊ฒ์ด๋ค. ์ด์ ์ด done ๋ ธ๋๋ก ๋ถํฐ ์ญ๋ฐฉํฅ์ผ๋ก ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๊ฒ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ฒฝ๋ก๋ค ์ค์์ ๊ฐ์ฅ ํฐ est๋ฅผ ์ ํํ๋ฉด์ ๋ค์ done์ผ๋ก ๋ฐฑํธ๋ํน ํ๋ค๋ณด๋ฉด ์ต์ข ์ ์ผ๋ก๋ ๊ฐ์ฅ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฌ๋ ๊ฒฝ๋ก๋ฅผ ์ ํํ๊ฒ ๋ ๊ฒ์ด๋ค.
Example
์์ ๊ฐ์ด ์์์ ๋ ฌ์ ์งํํ๊ณ ๊ฐ์ ์ ๋ฐฉํฅ์ ์ญ๋ฐฉํฅ์ผ๋ก ๋ฐ๊พผ ๊ทธ๋ํ๊ฐ ์๋ค๊ณ ํ์. ๊ฐ ๋ ธ๋ ์์ ์ ํ ์ซ์๋ค์ ํด๋น ๋ ธ๋๋ก๋ถํฐ ๋ค์ ๋ ธ๋๊น์ง ์ด๋ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ(๊ฐ์ค์น)์ด๋ค. ์์์ ์ค๋ช ํ๋ node dependency์ ๋ฐ๋ฅธ est, esf ๊ณ์ฐ ์กฐ๊ฑด์ ์๊ฐํ๋ฉด์ ๋ฐ๋ผ๊ฐ๋ณด์.
1. ๋ ์ด์ ์งํํ ๋ค์ ๋
ธ๋๊ฐ ์์ ๊ฒฝ์ฐ : est = 0
2. ์งํํ ์ ์๋ ๋ค์ ๋
ธ๋๊ฐ ํ๋์ธ ๊ฒฝ์ฐ : ๋ค์ ๋
ธ๋์ eft๊ฐ ํ์ฌ ๋
ธ๋์ est๊ฐ ๋๋ค.
3. ์งํํ ์ ์๋ ๋ค์ ๋
ธ๋๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ : ์ฐ๊ฒฐ๋ ๋ค์ ๋
ธ๋๋ค์ eft์ค ๊ฐ์ฅ ํฐ ๊ฐ์ด ํ์ฌ ๋
ธ๋์ est๊ฐ ๋๋ค. eft๋ est + ๊ฐ์ ๊ฐ์ค์น๋ก ๊ณ์ฐํ๋ค.
done ์์๋ถํฐ ํ์์ ์์ํ๊ฒ ๋๋ฉด, DFS์ด๊ธฐ ๋๋ฌธ์ leaf node ๊น์ง ์งํํ ๊ฒ์ด๋ค. 9๋ฒ ๋ ธ๋์ ๋ค๋ค๋ฅด๊ณ ๋ค์ ๋ฐฑํธ๋ํน์ ์์ํ ๋, est์ eft์ ๊ณ์ฐ์ด ์์๋๋ค.
Phase 1
9๋ฒ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ ๋
: 9๋ฒ ๋ ธ๋๋ ๋ ์ด์ ์งํํ ๋ ธ๋๊ฐ ์๊ธฐ ๋๋ฌธ์ est ๊ฐ 0์ด ๋๋ค.1๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋ ํ์ ๋
: 1๋ฒ ๋ ธ๋๋ ๋ค์ ๋ ธ๋๊ฐ 9๋ฒ ๋ ธ๋ ํ๋๋ฟ์ด๋ค. 2๋ฒ ์กฐ๊ฑด์ ๋ง์กฑํ๊ธฐ ๋๋ฌธ์ 9๋ฒ ๋ ธ๋์ eft๊ฐ 1๋ฒ ๋ ธ๋์ est ๊ฐ ๋๋ค. ๋ฐ๋ผ์ 1๋ฒ ๋ ธ๋์ est + 1๋ฒ ๋ ธ๋์ ์๊ฐ = 0 + 3.0 = 3.0 ์ด 1๋ฒ ๋ ธ๋์ eft๊ฐ ๋๋ค.2๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋ ํ์ ๋
: 2๋ฒ ๋ ธ๋ ๋ค์์ผ๋ก ์ฐ๊ฒฐ๋ ๋ ธ๋๋ 1๋ฒ๊ณผ 8๋ฒ์ด๋ค. ๋ ๋ ธ๋ ์ค eft๊ฐ ๋ ํฐ ๋ ธ๋๋ฅผ ํ์ฌ ๋ ธ๋์ est๋ก ๋ง๋ ๋ค. ์์ง 8๋ฒ ๋ ธ๋์ eft๋ฅผ ๋ชจ๋ฅด์ง๋ง ์ผ๋จ 2๋ฒ ๋ ธ๋์ eft๋ฅผ ํ์ฌ์์ ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด๋ผ๊ณ ๊ณ ๋ คํ ์ ์๋ค. 2๋ฒ ๋ ธ๋์ est๋ฅผ 1๋ฒ ๋ ธ๋์ eft๋ก ๋ง๋ค์ด์ฃผ์.
Phase 2
์ฒซ ํ์์ ๋ํ ๊ณ์ฐ์ด ๋๋ฌ์ ๋, ๊ฐ ๋ ธ๋์ est, eft๋ ์ ๊ทธ๋ฆผ์ฒ๋ผ ์ค์ ๋๋ค. ์ด์ DFS์ ์ํด์ 8๋ฒ ๋ ธ๋๋ก ํ์์ด ์ด์ด์ง๋ค. ์ด๋ฒ ์ญ์ ์งํํ ์ ์์๋งํผ ์์ผ๋ก ์งํํ๊ณ ๋ฐฑํธ๋ํน์ ํ๋ฉด์ ๊ฐ์ ๊ณ์ฐํ๋ค.
9๋ฒ ๋ ธ๋์ ๋ฐฉ๋ฌธ?
: 9๋ฒ ๋ ธ๋๋ ํ๋ฒ ๋ฐฉ๋ฌธํ๋ ๋ ธ๋์ด๊ธฐ ๋๋ฌธ์ ๋ฐฉ๋ฌธํ์ง ์๋๋ค.8๋ฒ ๋ ธ๋์ ํ์์ ๋ง์น๋ฉด์
: 9๋ฒ ๋ ธ๋๋ก ์งํํ์ง ์์๊ธฐ ๋๋ฌธ์ ๊ณง๋ฐ๋ก 8๋ฒ ๋ ธ๋์ ๋ํ ๊ณ์ฐ์ด ์ด๋ฃจ์ด์ง๋ค. 8๋ฒ ๋ ธ๋๋ 2๋ฒ ์กฐ๊ฑด์ ํด๋น๋ผ์ 9๋ฒ ๋ ธ๋์ eft์ธ 0 ์ด 8๋ฒ ๋ ธ๋์ est๊ฐ ๋๊ณ , eft๋ ์์ ์ ์ด๋ ์๊ฐ์ธ 8.5๋ฅผ ๋ํด 8.5๊ฐ ๋๋ค.2๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋ ํ์ ๋
: 2๋ฒ ๋ ธ๋์ ๋ํ ํ์์ด ๋ชจ๋ ๋๋ฌ๋ค. 8๋ฒ ๋ ธ๋์์ ๋ฆฌํด๋๋ฉด์ 2๋ฒ ๋ ธ๋์ ๋ค์ ๋ฐฉ๋ฌธํ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ํ์ฌ 2๋ฒ ๋ ธ๋์ est์ธ 3 ๊ณผ 8๋ฒ๋ ธ๋์ eft์ธ 8.5 ์ค ๋ ํฐ ๊ฐ์ธ 8.5๋ฅผ ์ ํํด์ est๋ก ๋ง๋ ๋ค. ๊ทธ๋ฆฌ๊ณ 2๋ฒ ๋ ธ๋์ eft๋8.5 + 6.5 = 15
๊ฐ ๋๋ค.4๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋ ํ์ ๋
: 2๋ฒ ๋ ธ๋์ ํ์์ด ์ข ๋ฃ๋๋ฉด์ 4๋ฒ ๋ ธ๋๋ก์ ๋ฐฑํธ๋์ด ์งํ๋๋ค. ์ฌ๊ธฐ์์๋ ๊ฐ์ ๋ ผ๋ฆฌ๋ก 4๋ฒ ๋ ธ๋์ est ๋ฅผ 15๋ก ์ค์ ํด์ค๋ค.
Phase 3
์ด์ 3๋ฒ ๋ ธ๋๋ถํฐ์ ํ์์ด ์งํ๋๋ค. ์์ ๋จ๊ณ์์์ ๊ฐ์ด ๊ณ์ ์งํํด๋ณด์.
5๋ฒ ๋ ธ๋์์์ ๊ณ์ฐ
: ์ด๋ฒ์๋ ์ญ์ 9๋ฒ ๋ ธ๋๋ ๋ฐฉ๋ฌธํ์ง ์๋๋ค. 5๋ฒ ๋ ธ๋์ est๋ 0, eft๋ 0 + 4.5 ์ธ 4.5 ๊ฐ ๋๋ค.5๋ฒ ๋ ธ๋์์ 3๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋
: 3๋ฒ ๋ ธ๋์ ํ์์ด ์์ง ๋๋์ง ์์์ง๋ง ํ์ฌ์์ ์์ ๊ฐ์ฅ ํฐ 5๋ฒ ๋ ธ๋์ eft๋ฅผ ์์ ์ est๋ก ๋ง๋ ๋ค. ๋ฐ๋ผ์ ํ์ฌ est๋ 4.5๊ฐ ๋๋ค.6๋ฒ ๋ ธ๋๋ก ํ์
: 6๋ฒ ๋ ธ๋๋ 3๋ฒ ๋ ธ๋์ ์ํฉ์ด ๊ฐ๋ค. est ๋ 0, eft๋ 0 + 2.0 = 2๊ฐ ๋๋ค.6๋ฒ ๋ ธ๋์์ 3๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋
: 3๋ฒ ๋ ธ๋์ ํ์ฌ est๋ 4.5์ด๋ค. 6๋ฒ ๋ ธ๋์ eft์ธ 2.0๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ์ ๋ฐ์ดํธ ํ์ง ์๊ณ ๋์ด๊ฐ๋ค.7๋ฒ ๋ ธ๋๋ก ํ์
: 6๋ฒ ๋ ธ๋์ ์ํฉ์ด ๊ฐ๋ค. est ๋ 0, eft๋ 0 + 0.5 = 0.5๊ฐ ๋๋ค.7๋ฒ ๋ ธ๋์์ 3๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋
: 3๋ฒ ๋ ธ๋์๋ est๋ก 4.5 ์ ์ฅ๋์ด ์๋ค. ์ด ๊ฐ์ด 7๋ฒ ๋ ธ๋์ eft๋ณด๋ค ํฌ๊ธฐ ๋๋ฌธ์ ์ ๋ฐ์ดํธ๋ฅผ ํ์ง ์๋๋ค.
Phase 4
์ฌ๊ธฐ๊น์ง ์งํ์ด ๋๋ฉด ์์ ๊ฐ์ด est, eft๊ฐ ๊ฐ ๋ ธ๋์ ์ ์ฅ๋๋ค. ์ด์ ๋ง๋ฌด๋ฆฌ๋ง ์ ํด์ฃผ๋ฉด ๋๋ค.
3๋ฒ ๋ ธ๋์์ 4๋ฒ ๋ ธ๋๋ก ๋ฐฑํธ๋
: 4๋ฒ ๋ ธ๋์ est์๋ 2๋ฒ ๋ ธ๋์ ํ์์ ๋๋์ ๋์ ๊ฐ์ธ 15๊ฐ ์ ์ฅ๋์ด ์๋ค. 3๋ฒ ๋ ธ๋๊ฐ ํ์์ด ์๋ฃ๋๊ณ ๋ฐฑํธ๋ํ์ ๋, 3๋ฒ ๋ ธ๋์ eft์ธ 10.5๋ ํ์ฌ 4๋ฒ ๋ ธ๋์ est์ธ 15๋ณด๋ค ์๊ธฐ ๋๋ฌธ์ 4๋ฒ ๋ ธ๋๋ est๋ฅผ ์ ๋ฐ์ดํธ ํ์ง ์๋๋ค.4๋ฒ ๋ ธ๋ ํ์์ข ๋ฃ
: 4๋ฒ ๋ ธ๋์ ํ์์ด ๋๋ฌ๊ธฐ ๋๋ฌธ์ eft๋ฅผ ๊ณ์ฐํ ์ ์๋ค. ํ์ฌ 4๋ฒ ๋ ธ๋์ est์ธ 1.0 ๊ณผ ์ด๋์๊ฐ 1.0์ ๋ํด์ ์ต์ข ์ ์ผ๋ก 4๋ฒ ๋ ธ๋์ eft๋ 16.0์ด ๋๋ค.done์ผ๋ก ๋ฐฑํธ๋
: ๋ชจ๋ ํ์ ๋ ธ๋๋ค์ ํ์์ ๋ง์น๊ณ done ์ ๋์์ค๊ฒ ๋๋ฉด, done์ est ์ eft๋ 0์ผ๋ก ์ด๊ธฐํ ๋์ด์๊ธฐ ๋๋ฌธ์ ์์ฐ์ค๋ฝ๊ฒ done์ est์ eft๋ ๋ชจ๋ 16์ด ๋๋ค.
์ด ์์ ์์ ์ต์ข ์ ์ผ๋ก ๋์จ ๋ต์ 9์์ 4๊น์ง ์ด๋ํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ด ์๋ฌด๋ฆฌ ์ค๋๊ฑธ๋ ค์ 16 ์ดํ๋ผ๋ ๊ฒ์ ์ ์ ์๊ฒ ๋๋ค.
'๐ฎ ์จ-์์ค > ๐ ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ(Kruskal Algorithm) (0) | 2021.07.18 |
---|---|
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ์ต์ ์ ์ฅ ํธ๋ฆฌ(MST) (1) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๊ฐํ ์ฐ๊ฒฐ ์์(Strongly Connected Component) (0) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๊น์ด ์ฐ์ ํ์(DFS) (0) | 2021.07.18 |
[์๊ณ ๋ฆฌ์ฆ ์ ๋ฆฌ] ๋๋น ์ฐ์ ํ์(BFS) (0) | 2021.07.18 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote