Local Search
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :) ์ ์ฒด ํฌ์คํธ๋ Algorithm ํฌ์คํธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.
์ด์ ์ ๋ ํฌ์คํธ, <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 SearchPermalink
์ฐ์ ์ฌ๊ธฐ์์ <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
while there is some solution
for which
return
์ด ๋ฐฉ์์ ์ ๋ง ๋น ๋ฅด๋ค. ์ด๋ค partial solution์ด๋ผ๋ 2-change neighborhood๋

์ด๊ฒ์ ํด๊ฒฐํ๊ณ ์ถ๋ค๋ฉด, ์ด์์ ์ ์๋ฅผ ์ข๋ ๋๊ฒ ์ก์ผ๋ฉด ๋๋ค. 3๊ฐ์ edge๊ฐ ๋ค๋ฅธ ๋ ์๋ ์ด์์ผ๋ก ๋ณด๊ณ , 4๊ฐ์ edge๋ ์ด์์ผ๋ก ๋ณธ๋ค๋ฉด, ๋ ๋์ ๋ฒ์๋ฅผ ํ๋ณด๋ก ์ก์ ์ฃผ๋ณ ๋ ์๊ณผ ๋น๊ตํด ์ข๋ ์ข์ ๋ ์์ผ๋ก solution์ ๊ฐฑ์ ํ ์ ์์ ๊ฒ์ด๋ค.
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ด์์ ์ ์๋ฅผ ํ์ฅํ๋ค๋ฉด, ํ iteration์์ ํ์ํด์ผ ํ ์ด์์ ์๊ฐ ๋์ด๊ฐ๊ฒ ๋๋ค. 3-change neighborhood๋ผ๋ฉด
Dealing with local optima: Simulated AnnealingPermalink
<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
repeat
randomly choose a solution
if
replace
else:
replace
return

๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ, (์ ๋ง ์ด์ด ๋์๋ฉด) global solution ๋ฐ๋ก ์์์ randomly pickํ neighbor๋ก ๊ฐ๋ฒ๋ฆด ์ ์์ ๊ฒ์ด๋ค. ์ด๋ฐ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด iteration์ ์งํํ ์๋ก probability
Let
repeat
randomly choose a solution
if
replace
else:
replace
return
cost difference
๋ง์ฝ
๊ทธ๋ฐ๋ฐ temperature
์์ ๊ฐ์ ๋ฐฉ์์ <Simulated Annealing; ๋ด๊ธ์ง ๊ธฐ๋ฒ>๋ผ๊ณ ํ๋๋ฐ, โAnnealingโ์ ๊ณ ์จ์ ๊ธ์์ ์์ํ ์ํ๋ ๋ฐฉ์์ด๋ผ๊ณ ํ๋ค. ๋ฌผ๋ฆฌํ(physics)์ ์ฝ์ ํธ์์ ์๊ฐ์ ๋ฐ์ ๊ธฐ๋ฒ์ธ๋ฐ, ์ ์๋ค์ด ๊ณ ์จ์์ ๊ธฐ์ฒด/์ก์ฒด ์ํ๋ก ์์ ๋กญ๊ฒ ์์ง์ด์ง๋ง, ์ด์ด ์์ผ๋ฉด์ ๊ณ ์ฒด์ ํํ๋ก ๊ท์น์ ์ด๊ณ ๊ฒฐ์ ์ ํํ๋ก ๋ณํ๋ ๊ฒ์ ๋ชจ์ฌํ ๊ฒ์ด๋ค.
์ด๊ฒ์ผ๋ก <์๊ณ ๋ฆฌ์ฆ; Algorithm;>์ ์ ๊ท ์์ ์์ ๋ค๋ฃฌ ๋ด์ฉ์ ๋ชจ๋ ์ดํด๋ณด์๋ค ๐ ๋ค์ ํฌ์คํธ์์ ๊ฐ๋จํ ํ๊ธฐ๋ฅผ ์จ๋ณด๊ณ ์ ํ๋ค ๐