Local Search
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
์ด์ ์ ๋ ํฌ์คํธ, <Backtracking>๊ณผ <Branch-and-Bound>๋ Exhausitive Search ๋ฐฉ์์ด์๋ค. ์ด๋ฒ์ ์ดํด๋ณด๋ <Local Search>๋ Heuristic Algorithm์ ์ผ์ข ์ผ๋ก โOptimality of the solutionโ๋ฅผ ํฌ์ํด ๋น ๋ฅด๊ฒ solution์ ์ฐพ๋ ๊ธฐ๋ฒ์ด๋ค.
<Local Search>๋ ํ์ฌ์ partial solution์์ ๊ฐ๊น์ด ์ด์ solution์ ํ์ํด ๊ทธ ์ค ๊ฐ์ฅ ์ข์ ๋ ์์ผ๋ก partial solution์ ๊ฐฑ์ ํ๋ ๊ธฐ๋ฒ์ด๋ค.
incremental process of introducing small mutations and keeping them if they work well!
์ด๋ฒ์๋ <TSP> ๋ฌธ์ ๋ฅผ ๋ฐํ์ผ๋ก <Local Search>๋ฅผ ์ข๋ ์ดํดํด๋ณด์.
TSP with Local Search
์ฐ์ ์ฌ๊ธฐ์์ <TSP> partial solution์ ์ด๋ค Hamilton Cycle์ด๋ค. ๊ทธ๋ํ๊ฐ Complete Graph๋ผ๋ฉด, ๋น์ฐํ Hamilton Cycle์ด ์กด์ฌ ํ ๊ฒ์ด๋ ์ผ๋จ ํ๋๋ฅผ ๋ง๋ค์ด ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด partial solution์ ์์ฃผ ์ฝ๊ฐ ์์ ํด neighborhood solution์ ๋ง๋ ๋ค. ์๋ก ๋ค๋ฅธ ๋ ํฌ์ด(tour)๊ฐ ์๋ก ์ผ๋ง๋ ๊ฐ๊น์ด์ง, ์๋ก ์ด์์ธ์ง๋ฅผ ์ด๋ป๊ฒ ์ ์ํ ๊น?
์ฐ๋ฆฌ๋ cycle์ ๋ค๋ฃจ๊ณ ์๊ธฐ ๋๋ฌธ์, ๋ cycle์ด ํ๋์ edge๋ง ๋ค๋ฅผ ์ ์๋ค. ์ ์ด๋ 2๊ฐ์ edge๋ฅผ ๋ฐ๊ฟ์ค์ผ ์๋ก์ด cycle์ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ โ2-change neighborhoodโ๋ผ๊ณ 2๊ฐ์ edge๊ฐ ๋ฐ๊ฟ partial solution์ neighborhood solution์ ์์ฑํ๊ฒ ๋ค.
Let $s$ be any initial solution.
while there is some solution $sโ$ in the neighborhood of $s$
ย ย for which $\text{cost}(sโ) < \text{cost}(s)$: replace $s$ by $sโ$.
return $s$.
์ด ๋ฐฉ์์ ์ ๋ง ๋น ๋ฅด๋ค. ์ด๋ค partial solution์ด๋ผ๋ 2-change neighborhood๋ $O(n^2)$ ๋งํผ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ iteration์ โ์ธ์ โ ๋ฉ์ถฐ์ผ ํ ์ง๋ ์ ํด์ง์ง ์์๋ค. ์ด์ด ์ ์ข์ผ๋ฉด ํ์ iteration์ ํด๋ ์ํ๋ solution์ ๋๋ฌํ์ง ๋ชปํ ์ ์๋ค. ์ด๊ฒ์ด <Local Search>์ ๋จ์ ์ธ๋ฐ, ํ์์ ํตํด ์ฐพ์ final solution์ด optimal solution์์ ๋จ์ธํ ์ ์๋ค. ๊ทธ๊ฒ์ ๋จ์ง local optimal solution์ผ ๋ฟ์ด๋ค!
์ด๊ฒ์ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด, ์ด์์ ์ ์๋ฅผ ์ข๋ ๋๊ฒ ์ก์ผ๋ฉด ๋๋ค. 3๊ฐ์ edge๊ฐ ๋ค๋ฅธ ๋ ์๋ ์ด์์ผ๋ก ๋ณด๊ณ , 4๊ฐ์ edge๋ ์ด์์ผ๋ก ๋ณธ๋ค๋ฉด, ๋ ๋์ ๋ฒ์๋ฅผ ํ๋ณด๋ก ์ก์ ์ฃผ๋ณ ๋ ์๊ณผ ๋น๊ตํด ์ข๋ ์ข์ ๋ ์์ผ๋ก solution์ ๊ฐฑ์ ํ ์ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ด์์ ์ ์๋ฅผ ํ์ฅํ๋ค๋ฉด, ํ iteration์์ ํ์ํด์ผ ํ ์ด์์ ์๊ฐ ๋์ด๊ฐ๊ฒ ๋๋ค. 3-change neighborhood๋ผ๋ฉด $O(n^3)$์ ๋น์ฉ์ด ๋ค๊ฒ ๋๋ค. ๊ทธ๋์ optimality์ complexity ์ฌ์ด์ ์ ์ ํ ์์ค์ผ๋ก ํํํด Neighborhood-ness๋ฅผ ๊ฒฐ์ ํ๋๋ก ํ์.
Dealing with local optima: Simulated Annealing
<Local Search>๋ solution์ optimality๋ฅผ ๋ณด์ฅํ์ง ๋ชปํ๋ค๋ ๋จ์ ์ด ์๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด, ๋จ์ํ ์๋ก์ด starting point์์ <Local Search>๋ฅผ ์ํํด ์๋ก์ด solution์ ์ป๋ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ๋ฌด์ํ๊ฒ Restart ํ๋ ๊ฒ์ ํ์ ๊ณต๊ฐ์ด ๋ฌด์ง๋ฌด์ง ํฌ๋ค๋ฉด, ์ ๋ง ๋ง์ staring point๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ข์ solution์ ์ฐพ์ ๊ฐ๋ฅ์ฑ์ด ํฌ๊ฒ ์ค์ด๋ ๋ค.
๊ทธ๋์ ์ฝ๊ฐ์ ํฌ์ฉ์ฑ์ ๊ฐ์ง <Local Search> ๋ฐฉ์์ด ์ ์๋์๋ค. ์ฌ๋ฌ๋ฒ Restart ํ๋ ๋์ ํ๋ฅ ์ ์ผ๋ก bad solution์ ํ์ํจ์ผ๋ก์จ Restart์ ๋๋ค์ฑ์ ํ๋ณดํ๋ค.
Occasionally allow moves that actually increase the cost, in the hope that they will pull the search out of dead ends.
Let $s$ be any starting solution.
repeat
ย ย randomly choose a solution $sโ$ in the neighborhood of $s$
ย ย if $\text{cost}(sโ) < \text{cost}(s)$:
ย ย ย ย replace $s$ by $sโ$
ย ย else:
ย ย ย ย replace $s$ by $sโ$ with probability $p$
return $s$.
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ, (์ ๋ง ์ด์ด ๋์๋ฉด) global solution ๋ฐ๋ก ์์์ randomly pickํ neighbor๋ก ๊ฐ๋ฒ๋ฆด ์ ์์ ๊ฒ์ด๋ค. ์ด๋ฐ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด iteration์ ์งํํ ์๋ก probability $p$์ ๊ฐ์ ์ค์ฌ ์ค์ง $\text{cost}(sโ) < \text{cost}(s)$๋ง ํ์ฉํ๋๋ก <Local Search>๋ฅผ ์ค๊ณํ ์ ์๋ค. ์ด๊ฒ์ ์ํด cost difference $\Delta$์ temperature $T$๋ฅผ ๋์ ํ๋ค.
Let $s$ be any starting solution.
repeat
ย ย randomly choose a solution $sโ$ in the neighborhood of $s$
ย ย if $\Delta = \text{cost}(sโ) - \text{cost}(s) < 0$:
ย ย ย ย replace $s$ by $sโ$
ย ย else:
ย ย ย ย replace $s$ by $sโ$ with probability $e^{-\Delta / T}$
return $s$.
cost difference $\Delta$๋ iteration์ ๋๋ฉด์ ๋์ ์ผ๋ก ์ ํด์ง๋ ๊ฐ์ด๋ค. $\Delta < 0$์ด๋ฉด, $\text{cost}$๊ฐ ๊ฐ์ํ๋ฏ๋ก ๊ทธ๊ฑธ ์ ํํ๋ค. $\Delta > 0$๋ผ๋ฉด bad solution์ด์ง๋ง, ํ๋ฅ $0 \le p = e^{-\Delta / T} \le 1$์ ๋ฐ๋ผ accept ๋๋ reject ํ๋ค.
๋ง์ฝ $T = 0$๋ผ๋ฉด, $e^{-\Delta / T} \rightarrow e^{-\inf} = 0$์ด๊ธฐ ๋๋ฌธ์ pureํ <Local Search>์ ๊ฐ๋ค. ๋ง์ฝ $T > 0$๋ผ๋ฉด, $0 < e^{-\Delta / T} < 1$๋ก ๊ฐ๋์ bad solution์ผ๋ก ํ์ํ๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ temperature $T$๋ก ์ด๋ค ๊ฐ์ ์ค์ ํด์ผ ํ ๊น? ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ฒ์์ ํฐ ๊ฐ์ $T$๋ก ์์ํด์ iteration์ ๋ ๋๋ง๋ค $T \leftarrow T - 1$์ ํด $T$ ๊ฐ์ ์ ์ ์ค์ฌ 0์ผ๋ก ๋ง๋๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ <Local Search> ์ด๊ธฐ์๋ ์์ ๋กญ๊ฒ search space๋ฅผ ๋์๋ค๋๋ฉฐ local optima์์ ๋ฒ์ด๋๋ ค๊ณ ํ๋ค. ๊ทธ๋ฌ๋ $T$ ๊ฐ์ด 0์ผ๋ก ์๋ ดํ๊ธฐ ๋๋ฌธ์ ์ ์ฐจ strict <Local Search>๋ฅผ ์ํํ๊ฒ ๋๋ค.
์์ ๊ฐ์ ๋ฐฉ์์ <Simulated Annealing; ๋ด๊ธ์ง ๊ธฐ๋ฒ>๋ผ๊ณ ํ๋๋ฐ, โAnnealingโ์ ๊ณ ์จ์ ๊ธ์์ ์์ํ ์ํ๋ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค. ๋ฌผ๋ฆฌํ(physics)์ ์ฝ์ ํธ์์ ์๊ฐ์ ๋ฐ์ ๊ธฐ๋ฒ์ธ๋ฐ, ์ ์๋ค์ด ๊ณ ์จ์์ ๊ธฐ์ฒด/์ก์ฒด ์ํ๋ก ์์ ๋กญ๊ฒ ์์ง์ด์ง๋ง, ์ด์ด ์์ผ๋ฉด์ ๊ณ ์ฒด์ ํํ๋ก ๊ท์น์ ์ด๊ณ ๊ฒฐ์ ์ ํํ๋ก ๋ณํ๋ ๊ฒ์ ๋ชจ์ฌํ ๊ฒ์ด๋ค.
์ด๊ฒ์ผ๋ก <์๊ณ ๋ฆฌ์ฆ; Algorithm;>์ ์ ๊ท ์์ ์์ ๋ค๋ฃฌ ๋ด์ฉ์ ๋ชจ๋ ์ดํด๋ณด์๋ค ๐ ๋ค์ ํฌ์คํธ์์ ๊ฐ๋จํ ํ๊ธฐ๋ฅผ ์จ๋ณด๊ณ ์ ํ๋ค ๐