๐ ํ์(Search)์ด๋? ๐ค
ํ์(Search)์ด๋, ์ฃผ์ด์ง ๋ฌธ์ ์ ํด๋ต์ ์ฐพ๊ธฐ ์ํด ๊ฐ๋ฅํ ๊ฒฝ๋ก๋ฅผ ์กฐ์ฌํ๋ ๊ณผ์ ์ ์๋ฏธํฉ๋๋ค.
ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ธธ ์ฐพ๊ธฐ, ๊ฒ์ AI, ๋ค๋น๊ฒ์ด์
, ๋ฐ์ดํฐ ๊ตฌ์กฐ ํ์ฉ ๋ฑ์ ํ์์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
โ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฃผ์ ํ์ฉ ์ฌ๋ก
๋ค๋น๊ฒ์ด์ ์์คํ (Google Maps, Waze) โ ์ต์ ๊ฒฝ๋ก ์ฐพ๊ธฐ
๊ฒ์ AI (์ฒด์ค, ์คํํฌ๋ํํธ, RPG ๊ฒ์) โ ์ต์ ์ ์์ง์ ๊ฒฐ์
๋ก๋ด๊ณตํ (์์จ์ฃผํ, ๋ก๋ด ๊ฒฝ๋ก ์ค์ ) โ ์ฅ์ ๋ฌผ์ ํผํด ์ด๋
์น ํฌ๋กค๋ง (Google ๊ฒ์ ์์ง) โ ๋งํฌ๋ฅผ ๋ฐ๋ผ๊ฐ๋ฉฐ ์ ๋ณด๋ฅผ ํ์
๐ 1. ๋งน๋ชฉ์ ํ์(Blind Search)
โ ๋งน๋ชฉ์ ํ์์ด๋?
๋งน๋ชฉ์ ํ์(Blind Search)์ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ฌ์ ์ ๋ณด ์์ด ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ ๋ฐฉ์์
๋๋ค.
์ด ๋ฐฉ์์ ํด๋ฆฌ์คํฑ(heuristic, ๊ฒฝํ์ ์ ๋ณด)์ ์ฌ์ฉํ์ง ์์ผ๋ฉฐ, ๋ชฉํ ์ํ์ ๋๋ฌํ ๋๊น์ง ํ์์ ๊ณ์ํฉ๋๋ค.
๐ ๋งน๋ชฉ์ ํ์ ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ
ํ์ ๊ธฐ๋ฒ์ค๋ช ํน์ง | ||
๊น์ด ์ฐ์ ํ์(DFS) | ํ ๊ฒฝ๋ก๋ฅผ ๋๊น์ง ํ์ํ ํ, ๋๋์๊ฐ ๋ค๋ฅธ ๊ฒฝ๋ก ํ์ | ์คํ(Stack) ๋๋ ์ฌ๊ท(Recursion) ์ฌ์ฉ |
๋๋น ์ฐ์ ํ์(BFS) | ๋ฃจํธ์์ ๊ฐ๊น์ด ๋ ธ๋๋ถํฐ ํ์ | ํ(Queue) ์ฌ์ฉ, ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ |
๊น์ด ์ ํ ํ์(Depth-Limited Search, DLS) | DFS์ ์ต๋ ํ์ ๊น์ด๋ฅผ ์ค์ ํ์ฌ ๋ฌดํ ๋ฃจํ ๋ฐฉ์ง | ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ ๊ฐ๋ฅ |
๋ฐ๋ณต์ ๊น์ด ์ฌํ ํ์(Iterative Deepening DFS, IDDFS) | DLS๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ํํ์ฌ ์ต์ ์ ํด๋ฅผ ์ฐพ์ | DFS์ BFS์ ์ฅ์ ๊ฒฐํฉ |
๐ก ๋งน๋ชฉ์ ํ์์ ๋ฌธ์ ํด๊ฒฐ์ ๋ณดํธ์ ์ธ ๋ฐฉ๋ฒ์ด์ง๋ง, ๋นํจ์จ์ ์ผ ์ ์์!
๐ 2. ์ ๋ณด ์ด์ฉ ํ์(Heuristic Search)
โ ์ ๋ณด ์ด์ฉ ํ์์ด๋?
์ ๋ณด ์ด์ฉ ํ์(Heuristic Search)์ ๋ฌธ์ ํด๊ฒฐ์ ์ํด ํด๋ฆฌ์คํฑ(heuristic, ๊ฒฝํ์ ์ ๋ณด)์ ํ์ฉํ๋ ํ์ ๋ฐฉ์์
๋๋ค.
์ฆ, ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ ์ํด ์์ ๋น์ฉ์ ๊ณ์ฐํ์ฌ ํ์์ ์งํํฉ๋๋ค.
๐ ์ฃผ์ ์๊ณ ๋ฆฌ์ฆ
ํ์ ๊ธฐ๋ฒ์ค๋ช ํน์ง | ||
ํด๋ฆฌ์คํฑ ํ์(Heuristic Search) | ๋น์ฉ์ด ๋ฎ์ ๊ฒ์ผ๋ก ์์๋๋ ๊ฒฝ๋ก๋ฅผ ๋จผ์ ํ์ | ์ต์ ํด๋ฅผ ๋ณด์ฅํ์ง ์์ |
A* ์๊ณ ๋ฆฌ์ฆ(A-Star Algorithm) | DFS์ BFS์ ์ฅ์ ์ ๊ฒฐํฉํ์ฌ ์ต์ ๊ฒฝ๋ก ํ์ |
|
๊ทธ๋ฆฌ๋ ํ์(Greedy Best-First Search) | ๋ชฉํ์ ๊ฐ์ฅ ๊ฐ๊น์ ๋ณด์ด๋ ๋ ธ๋๋ฅผ ๋จผ์ ํ์ | ํจ์จ์ ์ด์ง๋ง ์ต์ ๊ฒฝ๋ก ๋ณด์ฅ X |
๐ก ์ ๋ณด ์ด์ฉ ํ์์ ๋งน๋ชฉ์ ํ์๋ณด๋ค ํจ์จ์ ์ด์ง๋ง, ํด๋ฆฌ์คํฑ์ด ๋ถ์ ํํ๋ฉด ์ฑ๋ฅ์ด ๋จ์ด์ง ์ ์์!
๐ 3. ๊ฒ์์์์ ํ์(Game Search)
๊ฒ์ ์ธ๊ณต์ง๋ฅ(AI)์ ์๋์์ ๊ฒฝ์์ ๊ณ ๋ คํ์ฌ ์ต์ ์ ์์ง์์ ์ ํํ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
๊ฒ์ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฒด์ค, ๋ฐ๋, ์ค๋ชฉ, ์คํํฌ๋ํํธ AI ๋ฑ์์ ํ์ฉ๋ฉ๋๋ค.
๐ ๊ฒ์ ํ์ ์๊ณ ๋ฆฌ์ฆ ์ข ๋ฅ
ํ์ ๊ธฐ๋ฒ์ค๋ช ํน์ง | ||
๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ(Mini-Max Algorithm) | ์๋๊ฐ ์ต์ ์ ์๋ฅผ ๋๋ ๊ฒ์ ๊ฐ์ ํ๊ณ , ๊ฐ์ฅ ์ ๋ฆฌํ ์๋ฅผ ์ ํ | ์ฒด์ค, ๋ฐ๋, ํฑํํ ๋ฑ์ ์ฌ์ฉ |
์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ(ฮฑ-ฮฒ Pruning) | ๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ์์ ๋ถํ์ํ ๊ฒฝ๋ก๋ฅผ ์ ๊ฑฐํ์ฌ ์๋๋ฅผ ํฅ์ | ํ์ ๊ณต๊ฐ ์ ์ฝ, ๊ณ์ฐ๋ ๊ฐ์ |
๋ชฌํ ์นด๋ฅผ๋ก ์๋ฎฌ๋ ์ด์ (Monte Carlo Simulation) | ๋ฌด์์ ์๋ฎฌ๋ ์ด์ ์ ์คํํ์ฌ ์น๋ฅ ์ด ๋์ ์ ๋ต์ ์ ํ | ๋ฐ๋ AI(AlphaGo), ๊ฐํํ์ต์ ํ์ฉ |
๐ก ๊ฒ์ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์๋๋ฐฉ์ ์๋ฅผ ์์ธกํด์ผ ํ๋ฏ๋ก, ์ ๋ต์ ์ธ ๊ณ์ฐ์ด ํ์!
๐ 4. ์ ์ฝ ์กฐ๊ฑด ๋ง์กฑ ๋ฌธ์ (Constraint Satisfaction Problem, CSP)
โ ์ ์ฝ ์กฐ๊ฑด ๋ง์กฑ ๋ฌธ์ ๋?
์ ์ฝ ์กฐ๊ฑด ๋ง์กฑ ๋ฌธ์ (CSP, Constraint Satisfaction Problem)๋ ์ฃผ์ด์ง ์ ์ฝ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํด๋ฅผ ์ฐพ๋ ๋ฌธ์ ์
๋๋ค.
์ฆ, ๋ฌธ์ ์ ์ ๋ต์ ๋ง์กฑํ๋ ๊ฐ์ ์ฐพ๋, ์ฃผ์ด์ง ์กฐ๊ฑด์ ์ถฉ์กฑํด์ผ ํฉ๋๋ค.
๐ ์ ์ฝ ์กฐ๊ฑด ๋ง์กฑ ๋ฌธ์ ์์
๋ฌธ์ ์ ํ์์ํน์ง | ||
์ค๋์ฟ (Sudoku) | 9x9 ๊ทธ๋ฆฌ๋์์ ์ซ์ ์ค๋ณต ์์ด ๋ฐฐ์น | ๋ฐฑํธ๋ํน(Backtracking) ์ฌ์ฉ |
N-ํธ ๋ฌธ์ (N-Queens Problem) | ์ฒด์คํ์ N๊ฐ์ ํธ์ด ์๋ก ๊ณต๊ฒฉํ์ง ์๋๋ก ๋ฐฐ์น | DFS ๋ฐ ๋ฐฑํธ๋ํน ํ์ฉ |
์์ ์๊ฐํ ๋ฐฐ์ (Scheduling Problem) | ํ์๊ณผ ๊ฐ์์ค์ ๋ฐฐ์ ํ๋ ์ต์ ์ ์ค์ผ์ค ์์ฑ | ์ต์ ํ ์๊ณ ๋ฆฌ์ฆ ์ ์ฉ |
๐ก CSP ๋ฌธ์ ๋ AI๊ฐ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์ค์ํ ๊ฐ๋ ์ด๋ฉฐ, ๋ค์ํ ๋ถ์ผ์์ ํ์ฉ๋จ!
๐ 5. ํ์ ์๊ณ ๋ฆฌ์ฆ ๋น๊ต
์๊ณ ๋ฆฌ์ฆ๋ฐฉ์ํ์ฉ ๋ถ์ผ์ฅ์ ๋จ์ | ||||
DFS | ๊น์ด ์ฐ์ ํ์ | ๊ทธ๋ํ ํ์, ํผ์ฆ ํด๊ฒฐ | ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ | ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ X |
BFS | ๋๋น ์ฐ์ ํ์ | ์ต๋จ ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ | ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ | ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ํผ |
A* | ์ต์ ๊ฒฝ๋ก ํ์ | ๋ค๋น๊ฒ์ด์ , ๊ฒ์ AI | ํจ์จ์ , ์ต์ ๊ฒฝ๋ก ๋ณด์ฅ | ๊ณ์ฐ๋ ๋ง์ |
๋ฏธ๋๋งฅ์ค | ๊ฒ์ ํ์ | ์ฒด์ค, ๋ฐ๋, ์คํํฌ๋ํํธ | ์ ๋ต์ ๊ณ์ฐ ๊ฐ๋ฅ | ๊ณ์ฐ๋ ๋ง์ |
๋ชฌํ ์นด๋ฅผ๋ก | ๋ฌด์์ ์๋ฎฌ๋ ์ด์ | ๊ฐํํ์ต, ๋ฐ๋ AI | ์ ์ฐํ ์ ๋ต | ๊ณ์ฐ๋์ด ๋ง์ |
CSP | ์ ์ฝ ์กฐ๊ฑด ํด๊ฒฐ | ์ค๋์ฟ , ์ผ์ ๊ด๋ฆฌ | ์ต์ ํ ๊ฐ๋ฅ | ๋ฌธ์ ๋ณต์ก๋ ์ฆ๊ฐ |
๐ฏ ๋ง๋ฌด๋ฆฌ: ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด๋์ ํ์ฉ๋ ๊น?
๐ ๋งน๋ชฉ์ ํ์(Blind Search) โ ํผ์ฆ ๊ฒ์, ๊ฒฝ๋ก ํ์, ํธ๋ฆฌ ๊ตฌ์กฐ ๋ถ์
๐ ์ ๋ณด ์ด์ฉ ํ์(Heuristic Search) โ ๋ค๋น๊ฒ์ด์
, ์์จ์ฃผํ, AI ์ถ์ฒ ์์คํ
๐ ๊ฒ์ ํ์(Game Search) โ ์ฒด์ค AI, ๋ฐ๋ AI, ์คํํฌ๋ํํธ AI
๐ ์ ์ฝ ์กฐ๊ฑด ๋ง์กฑ ๋ฌธ์ (CSP) โ ์ค๋์ฟ , ์๊ฐํ ์ต์ ํ, ๋ก๋ด ์ ์ด