Interval Scheduling and Partitioning
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Interval Scheduling
๊ฐ Job $j$๋ $[s_j, f_j]$์ start time, finish time์ ๊ฐ์ง๋ค๊ณ ๊ฐ์. ์ด๋, ๋ Job์ด compatible ํ๋ค๋ ๊ฒ์ ๋ Job์ด ์๋ก ์ค์ฒฉ๋์ง ์๋๋ค๋ ๋ง์ด๋ค. <Interval Scheduling>์ ์ ์ฒด Job์ ์งํฉ์ ๋ถ๋ถ์งํฉ ์ค ํฌํจ๋ ๋ชจ๋ Job์ด ์๋ก compatibleํ๋ฉด์ ๊ทธ ๋ถ๋ถ์งํฉ์ ํฌ๊ธฐ๊ฐ ์ต๋๊ฐ ๋๋ ์งํฉ์ ์ฐพ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ค.
๊ณผ์ฐ ์์ ๊ฐ์ Maximum compatible subset์ ์ฐพ์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?? Greedy Algorithm์ ๋ชจ๋ Job์ finish time์ผ๋ก ์ ๋ ฌํ ํ์ ์ข ๋ฃ์๊ฐ์ด ๋น ๋ฅด๋ฉด์ compatible ํ ์์๋๋ก ๊ณ ๋ฅด๋ ๋ฐฉ์์ ์ ์ํ๋ค.
Theorem.
<Interval Scheduling> ๋ฌธ์ ์์ ์์ ๊ฐ์ Greedy Approach๋ optimal solution์ ๋ณด์ฅํ๋ค.
Proof.
(๊ท๋ฅ๋ฒ) Assume that the given greedy approach is not optimal.
Let $i_1, i_2, \dots, i_n$ denote the set of jobs selected by greedy.
Let $j_1, j_2, \dots, j_m$ denote the set of jobs in the optimal solution with $i_1 = j_1$, $i_2 = j_2$, โฆ, $i_r = j_r$ for the largest possible value of $r$.
(ํด์ค) ์ฆ, greedy๊ฐ optimal์ด ์๋๊ณ , ๋ค๋ฅธ optimal sequence $\{ j_k \}$๊ฐ ์กด์ฌํ๋๋ฐ, ๊ทธ optimal seq.์ greedy seq.๊ฐ $r$๊น์ง๋ ๋์ผํ seq.๋ผ๊ณ ๊ฐ์ ํ๋ค๋ ๋ง์ด๋ค.
By the greedy choice, job $i_{r+1}$ finishes before $j_{r+1}$.
(์ฒ์์ greedy approach๊ฐ optimal์ด ์๋๋ผ๊ณ ํ์ผ๋ฏ๋ก ์์ ๊ฐ์ ์ํฉ์ด ์ฑ๋ฆฝํ๋ค!)
So in the optimal solution, we can replace job $j_{r+1}$ with job $i_{r+1}$. The resulting solution is still feasible and optimal, but contradicts the maximality of $r$.
(์ฆ, ์ฐ๋ฆฌ๊ฐ greedy๊ฐ ์๋ ๋ค๋ฅธ optimal seq.๋ฅผ ๊ฐ์ ํ์ ๋, ์ด maximality ๊ฐ์ ์ด ํ๋ค๋ฆฌ๊ธฐ ๋๋ฌธ์ โgreedy seq.๊ฐ optimal ์๋๋คโ๋ผ๋ ๊ฐ์ ์ ๊ฑฐ์ง์ด ๋๋ค๋ ๋ง์ด๋ค.)
Interval Partitioning
$n$๊ฐ์ ์์ ์ด ์ฃผ์ด์ก๊ณ , ๊ฐ ์์ $j$๋ $[s_j, f_j]$์ start/finish time์ ๊ฐ๋๋ค๊ณ ํ์. ์ด๋, ์ด๋ค ๋ ์์ ๋ ๊ฒน์น์ง ์๋๋ก ์ค์ผ์ฅด๋ง ํ๋ฉด์, ๊ฐ์์ค์ ๊ฐฏ์๋ ์ต์๊ฐ ๋๋ ๋ฐฉ๋ฒ์ ์๊ฐํด๋ณด์!
์์ ๋ฌธ์ ์ญ์ Greedy Algorithm์ผ๋ก ๊ฐ๋จํ ํด๊ฒฐํ ์ ์๋ค!!
Algorithm: Interval-Partition($S$)
// initialization
sort intervals by starting time.
$d=0$
// greedy process!
for $j=1$ to $n$
โโif lecture $j$ is compatible with classroom $k$
โโโโschedule lecture $j$ in classroom $k$
โโelse
โโโโallocate a new classroom $d+1$
โโโโschedule lecture $j$ in a new classroom
โโโโ$d = d+1$
์ด๋, ๊ฐ classroom $k$๋ ํ์ฌ lecture์ finish time $f_j$๋ฅผ ๋ด๊ณ ์์ด์ผ ํ๋ค. ๊ทธ๋์, ์ด๊ฒ์ classroom์ Priorirty Queue๋ก ๊ด๋ฆฌํ์ฌ, ๋ง์ฝ ์๋ก์ด lecture๊ฐ front node์ finish time๋ณด๋ค ๋น ๋ฅธ start time์ ๊ฐ์ง๋ค๋ฉด, $d = d+1$ ํ ํ์ Priority Queue์ ์๋กญ๊ฒ insertion ํ๋ฉด ๋๋ค!