Branch and Bound
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
์ง๋๋ฒ์ ์ดํด๋ณธ <Backtracking>๊ณผ ๋น์ทํ๊ฒ <Branch-and-Bound> ํ ํฌ๋ ์ญ์ partial solution์ ๊ฒ์ฌํด Search Space๋ฅผ ์ค์ด๋ ํ ํฌ๋์ด๋ค. <Bracktracking>๊ณผ ์ ์ฒด์ ์ธ ๊ตฌ์กฐ๋ ์์ ๋์ผํ๋ฐ, partial solution์ bound๋ฅผ ์ฌ์ฉํด $\text{test}$ํ๋ค๋ ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ์ด ๋ช ์๋์ด ์๋ค.
๋์ถฉ ์ด๋ค ๋๋์ธ์ง ํ๊ณ ๊ฐ์. ๋ง์ฝ ์ฐ๋ฆฌ๊ฐ minimization problem์ ํ๊ณ ์๋ค๊ณ ํ์. ๊ทธ๋ฆฌ๊ณ partial solution $S_i$๋ฅผ ํ์ํ๊ณ ์๋ค๊ณ ํ์. ์ฐ๋ฆฌ๋ ์ด partial solution $S_i$๋ฅผ ๋ ํ์ฅํ์ ๋์ ์ ์ฌ์ ์ธ ๋น์ฉ์ โ์์โํ ๊ฒ์ด๋ค. ๊ตฌ์ฒด์ ์ธ ๋น์ฉ์ ๊ตฌํ๋ ค๊ณ ํ๋ ๊ฒ์ด ์๋๋ผ โ์์โ์ด๊ธฐ ๋๋ฌธ์ โlower boundโ๋ฅผ ๊ณ์ฐํ ๊ฒ์ด๋ค. ์ฌ๋ก๋ฅผ ๋ณด๋ฉด ์ข๋ ์ดํด๊ฐ ๋น ๋ฅผ ๊ฒ์ด๋ค. <TSP> ๋ฌธ์ ๋ฅผ <Branch-and-Bound>๋ก ํด๊ฒฐํ๋ ๊ณผ์ ์ ์ดํด๋ณด์!
TSP with Branch-and-Bound
Complete weighted graph $G = (V, E)$๋ฅผ ์๊ฐํด๋ณด์. ์ฐ๋ฆฌ๋ ์ง๊ธ $a$์์ ์ถ๋ฐํด $b$์ ๋๋ฌํ๋ partial solution์ ๊ฐ์ง๊ณ ์๋ค. ์ด partial solution์ vertex set $S$์ ์์๋ค์ ์ ํํ ํ๋ฒ์ฉ ์ง๋๊ฐ๋ Hamilton Path๋ค. ์ด partial solution์ $[a, S, b]$๋ก ํํํ๊ฒ ๋ค.
partial solution $[a, S, b]$๋ฅผ ํ์ฅํด๋ณด์. ๊ทธ๊ฒ์ $S$๋ฅผ ์ ์ธํ vertex $x \in V \setminus S$ ์ค์ ํ๋๋ฅผ ์ ํํด $(b, x)$ edge๋ฅผ ์ถ๊ฐํด ํด๋ฐํด ๊ฒฝ๋ก๋ฅผ ํ์ฅํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ, ๋จ์ ์ ์ ์ $\left| V \setminus S \right|$๋งํผ์ subproblem $[a, S \cup \{ x \}, x]$๊ฐ ์๋ก ์์ฑ๋๋ค.
์ฌ๊ธฐ๊น์ง <TSP> ๋ฌธ์ ๋ฅผ ํ์๊ณผ subproblem์ ๊ด์ ์์ ๊ธฐ์ ํด๋ณธ ๊ฒ์ด๋ค.
์ฐ๋ฆฌ๋ partial solution $[a, S, b]$๋ฅผ ํ์ฅํ๊ธฐ ์ ์, ๋จ์ vertex set $V \setminus S$๋ฅผ ํตํด TSP์ lower bound๋ฅผ ๊ตฌํ ์ ์๋ค! lower bound๋ฅผ ๊ตฌํ๋ ์ฌ๋ฌ ๋ฐฉ๋ฒ๋ค์ด ์๊ฒ ์ง๋ง, ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์๋ 4๊ฐ์ง ๋น์ฉ์ ํฉ์ lower bound๋ก ์ผ๋ ๊ฒ์ด๋ค.
- the lightest edge from $a$ to $V \setminus S$
- the lightest edge from $b$ to $V \setminus S$
- the minimum spanning tree of $V \setminus S$
- and current cost of partial solution
๊ฐ๊ฐ ๋ชจ๋ $V \setminus S$์ ์ ์ ์ผ๋ก partial solution์ ํ์ฅ ํ์ ๋ ๊ฐ๋ฅํ ๊ฐ์ฅ ์ต์ ์์ค์ ๋น์ฉ์ด๋ค. ๊ทธ๋ํ์ MST๋ฅผ ๊ตฌํ๋ ๊ฒ์ polynomial-time์ผ๋ก ๊ฐ๋ฅํ๊ธฐ์ ๋ณต์ก๋์ ํฐ ์ํฅ์ ์ฃผ์ง๋ ์๋๋ค. ๋ฐ๋ผ์ ์ด๋ฅผ lower bound๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์ ์ ํ๋ค!
์ข๋ ๊ตฌ์ฒด์ ์ธ ์๋ฅผ ํตํด ์ต์ํด์ ธ๋ณด์!
์์ ๊ฐ์ Graph์์ TSP ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค๊ณ ํด๋ณด์. ์ผ๋จ $A$ ๋ ธ๋์์ ์์ํ๋ ํ์ ํธ๋ฆฌ๋ฅผ ํ์ฅํด๊ฐ์.
ํธ๋ฆฌ ๋ ธ๋ ์์ ์์์ ํด๋น ๋ ธ๋์ lower bound๊ฐ ์ ํ์๋ค. DFS ๋ฐฉ์์ ํตํด ํธ๋ฆฌ๋ฅผ ํ์ํ๋ค๊ณ ํ๋ฉด, ๊ฐ์ฅ ๋จผ์ $H$ ๋ ธ๋๋ก ๋๋๋ ์ผ์ชฝ ๊ฒฝ๋ก๋ฅผ ํ๊ฒ ๋๋ค. ์ด๋์ total cost๊ฐ 11์ธ๋ฐ, ์ด๊ฒ์ $\text{bestsofar}$ ๊ฐ์ผ๋ก ์ ์ฅํด๋๊ณ ๋ค์ ๋ ธ๋๋ฅผ ์ ํํด ํ์ฅํด๊ฐ๋ค.
ํ์ฌ ๋น์ฉ 11์ด $\text{bestsorfar}$ ๊ฐ์ด๋ค. ๋ง์ฝ ๋ค์ partial solution์ ํ์ํ์ ๋, ๋น์ฉ์ lower bound๊ฐ $\text{bestsorfar} = 11$๋ณด๋ค ํฌ๋ค๋ฉด ํด๋น ๋ ธ๋๋ ํ์ํ ํ์๊ฐ ์๋ค!
์ด ๋ฐฉ๋ฒ์ ํ์ฉํด partial solution๋ค์ rejectํ๊ณ lower bound๊ฐ ์ ์ ํ ๋ฎ์ partial solution๋ค๋ง ํ์ฅํด๊ฐ๋ค. ์ต์ข ์ ์ผ๋ก๋ $\text{bestsorfar} = 8$์ solution์ผ๋ก ๋ฆฌํฌํธํ๋ค.
Overview
To expand a subproblem, its lower bound should be smaller than the bestsofar. Otherwise, itโs clear that the cost of subproblem will exceed the bestsofar, so reject it!
<Branch-and-Bound> ์๊ณ ๋ฆฌ์ฆ์ ์๋ฆฌ๋ฅผ ์์ฝํ๋ฉด ์๋์ ๊ฐ๋ค.
Start with some problem $P_0$
Let $S = \{ P_0 \}$, the set of active subproblems.
Set $\text{bestsofar} = \inf$
while $S$ is non-empty:
ย ย choose a subproblem $P \in S$ and remove it from $S$.
ย ย expand it into smaller subproblems $P_1, P_2, \dots, P_k$
ย ย for each $P_i$:
ย ย ย ย if $P_i$ is a complete solution: update $\text{bestsofar}$
ย ย ย ย else: if $\text{lowerbound}(P_i) < \text{bestsofar}$, then add $P_i$ to $S$.
return $\text{bestsofar}$
์ด์ ์ ์ดํด๋ณธ <Backtracking>๊ณผ ํฐ ํ์์ ๋น์ทํ๋ค! ๋จ์ง <Branch-and-Bound>๊ฐ $\text{test}(P_i)$๋ฅผ lower bound๋ก ํ๋จํ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์๋์ด ์์ ๋ฟ์ด๋ค!