3. Search (2)
Uninformed Search Algorithms (๋น์ ๋ณด ํ์ ์๊ณ ๋ฆฌ์ฆ)
- ๋ฌธ์ ๊ด๋ จ ์ง์(problem-specific knowledge)์ ์ฌ์ฉํ์ง ์๋ ํ์ ์ ๋ต
- ๋ชฉํ ์ํ(goal state)์ ์ผ๋ง๋ ๊ฐ๊น์ด์ง์ ๋ํ ๋จ์(clue)๊ฐ ์์.
- ์:
- Depth-First Search (DFS, ๊น์ด ์ฐ์ ํ์)
- Breadth-First Search (BFS, ๋๋น ์ฐ์ ํ์)
Depth-First Search Algorithm (๊น์ด ์ฐ์ ํ์ ์๊ณ ๋ฆฌ์ฆ)
- ํ๋ก ํฐ์ด(frontier)์์ ํญ์ ๊ฐ์ฅ ๊น์ ๋ ธ๋(deepest node)๋ฅผ ํ์ฅ(expand)ํ๋ ํ์ ์๊ณ ๋ฆฌ์ฆ
- ๊ด๋ จ ์๋ฃ ๊ตฌ์กฐ: Stack (Last-in, First-out (LIFO))
Breadth-First Search Algorithm (๋๋น ์ฐ์ ํ์ ์๊ณ ๋ฆฌ์ฆ)
- ํ๋ก ํฐ์ด์์ ํญ์ ๊ฐ์ฅ ์์ ๋ ธ๋(shallowest node)๋ฅผ ํ์ฅํ๋ ํ์ ์๊ณ ๋ฆฌ์ฆ
- ๊ด๋ จ ์๋ฃ ๊ตฌ์กฐ: Queue (First-in, First-out (FIFO))
Informed Search Strategies (์ ๋ณด ๊ธฐ๋ฐ ํ์ ์ ๋ต)
- Informed Search (์ ๋ณด ๊ธฐ๋ฐ ํ์)
- ๋น์ ๋ณด ์ ๋ต(uninformed strategy)๋ณด๋ค ๋ ํจ์จ์ ์ผ๋ก ํด๋ต์ ์ฐพ๊ธฐ ์ํด ๋ฌธ์ ๊ด๋ จ ์ง์(problem-specific knoweldge)์ ์ฌ์ฉํ๋ ํ์ ์ ๋ต
- ๋ชฉํ์ ์์น์ ๋ํ ๋๋ฉ์ธ ํนํ ํํธ(domain-specific hints)๋ฅผ ์ฌ์ฉ.
- ํํธ๋ heuristic function (ํด๋ฆฌ์คํฑ ํจ์), ์ ํํ๋ก ์ ๊ณต.
- ๊ฒฝ๋ก ์ฐพ๊ธฐ ๋ฌธ์ (route-finding problems)์์, ํ์ฌ ์ํ์์ ๋ชฉํ๊น์ง์ ๊ฑฐ๋ฆฌ๋ฅผ ์ง๋์์ ์ง์ ๊ฑฐ๋ฆฌ(straight-line distance)๋ก ์ถ์ ๊ฐ๋ฅ
- : ๋ ธ๋ ์ ์๋ ์ํ์์ ๋ชฉํ ์ํ(goal state)๊น์ง์ ๊ฐ์ฅ ์ ๋ ดํ ๊ฒฝ๋ก(cheapest path)์ ๋ํ ์์ ๋น์ฉ(estimated cost)
Greedy Best-First Search (ํ์์ค๋ฌ์ด ์ต์ ์ฐ์ ํ์)
- ํด๋ฆฌ์คํฑ ํจ์ ์ ์ํด ์ถ์ ๋ ๋๋ก ๋ชฉํ์ ๊ฐ๊น๋ค๊ณ ์์๋๋ ๋ ธ๋(์ฆ, ๊ฐ์ด ๊ฐ์ฅ ๋ฎ์ ๋ ธ๋)๋ฅผ ํ์ฅํ๋ ํ์ ์๊ณ ๋ฆฌ์ฆ
- ์: ๊ฒฝ๋ก ์ฐพ๊ธฐ ๋ฌธ์ : = straight line distance (์ง์ ๊ฑฐ๋ฆฌ) to the goal (๋ชฉํ)
A* Search (์์ด ์คํ ํ์)
- ์ ๊ฐ์ด ๊ฐ์ฅ ๋ฎ์ ๋
ธ๋๋ฅผ ํ์ฅํ๋ ํ์ ์๊ณ ๋ฆฌ์ฆ
- : ์ด๊ธฐ ์ํ(initial state)์์ ๋ ธ๋ ๊น์ง์ ๊ฒฝ๋ก ๋น์ฉ(path cost)
- : ์์ ๋ชฉํ ์ํ(goal state)๊น์ง์ ์ต๋จ ๊ฒฝ๋ก(shortest path)์ ๋ํ ์์ ๋น์ฉ(estimated cost)
A* Search์ ์ต์ ์ฑ (Optimality of A* Search)
- (tree) search (ํธ๋ฆฌ ํ์)์ ์ด admissible (ํ์ฉ ๊ฐ๋ฅํ) ํ ๊ฒฝ์ฐ ๋น์ฉ ์ต์ (cost-optimal) ๊ฐ๋ฅ
- Admissible heuristic (ํ์ฉ ๊ฐ๋ฅํ ํด๋ฆฌ์คํฑ): ๋ชฉํ์ ๋๋ฌํ๋ ๋น์ฉ์ ์ ๋ ๊ณผ๋ํ๊ฐํ์ง ์๋ ํด๋ฆฌ์คํฑ
- ๋ฐ๋ผ์, ํ์ฉ ๊ฐ๋ฅํ ํด๋ฆฌ์คํฑ์ optimistic (๋๊ด์ )
- ๊ณต์์ ์ผ๋ก, ์ ์์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ชฉํ๊น์ง์ ์ต์ ๊ฒฝ๋ก์ ๋น์ฉ์ด๋ผ๊ณ ํ ๋,
๊ฐ ์ฑ๋ฆฝํจ.
Adversarial Search Problems (์ ๋์ ํ์ ๋ฌธ์ )
- Competitive environments (๊ฒฝ์์ ํ๊ฒฝ)
- ๋ ์ด์์ ์์ด์ ํธ(agents)๊ฐ ์์ถฉ๋๋ ๋ชฉํ(conflicting goals)๋ฅผ ๊ฐ์ง๋ฉฐ, ์ด๋ adversarial search problems (์ ๋์ ํ์ ๋ฌธ์ )์ ์ผ๊ธฐ
- Game (๊ฒ์)์ ์ด์ ์ ๋ง์ถค.
- ํฑํํ , ์ฒด์ค, ๋ฐ๋, ํฌ์ปค ๋ฑ
- AI ์ฐ๊ตฌ์๋ค์๊ฒ๋ ์ด๋ฌํ ๊ฒ์์ ๋จ์ํ๋ ํน์ฑ์ด ์ฅ์
- adversarial game-tree search (์ ๋์ ๊ฒ์ ํธ๋ฆฌ ํ์) ๊ธฐ๋ฒ์ผ๋ก ์ ๋์ ์์ด์ ํธ๋ฅผ ๋ช ์์ ์ผ๋ก ๋ชจ๋ธ๋ง
Two-Player Zero-Sum Games (2์ธ ์ ๋ก์ฌ ๊ฒ์)
- AI ๋ด์์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ตฌ๋๋ ๊ฒ์(์: ์ฒด์ค, ๋ฐ๋)์
- deterministic (๊ฒฐ์ ๋ก ์ )
- two-player (2์ธ)
- turn-taking (์ฐจ๋ก ๊ตํ์)
- perfect information (์๋ฒฝ ์ ๋ณด)
- zero-sum games (์ ๋ก์ฌ ๊ฒ์)
- 'Perfect information'์ 'fully observable (์์ ๊ด์ฐฐ ๊ฐ๋ฅ)'๊ณผ ๋์์ด
- 'Zero-sum'์ ํ ํ๋ ์ด์ด์๊ฒ ์ข์ ๊ฒ์ด ๋ค๋ฅธ ํ๋ ์ด์ด์๊ฒ๋ ๊ทธ๋งํผ ๋์๋ค๋ ์๋ฏธ: (์์) ๊ฒฐ๊ณผ๊ฐ ์์.
- ์ฉ์ด: (์)๋ (ํ๋)์ ๋์์ด, (์์น)์ (์ํ)์ ๋์์ด
- Specification (์ ์)
- ๋ ํ๋ ์ด์ด๋ฅผ ์ ์ผ๋ก ์ง์นญ
- ๊ฐ ๋จผ์ ์ด๋ํ๊ณ , ๊ฒ์์ด ๋๋ ๋๊น์ง ํ๋ ์ด์ด๋ค์ด ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์๋ฅผ ๋ .
- ๊ฒ์์ด ๋๋๋ฉด ์น๋ฆฌํ ํ๋ ์ด์ด์๊ฒ ์ ์๊ฐ ๋ถ์ฌ๋๊ณ ํจ์์๊ฒ๋ ๋ฒ์น ๋ถ์ฌ
- Formal Definition (๊ณต์์ ์ ์): ๋ค์ ์์๋ค๋ก ๊ฒ์์ ์ ์ ๊ฐ๋ฅ
- : (์ด๊ธฐ ์ํ)
- ๋๋ : ์ํ ์์ ์ฐจ๋ก์ธ ํ๋ ์ด์ด
- : ์ํ ์์ ๊ฐ๋ฅํ ํฉ๋ฒ์ ์ธ ์(legal moves)์ ์งํฉ
- : (์ ์ด ๋ชจ๋ธ), ์ํ ์์ ํ๋ ๋ฅผ ์ทจํ ๊ฒฐ๊ณผ ์ํ๋ฅผ ์ ์
- ๋๋ : (์ข ๋ฃ ํ ์คํธ), ๊ฒ์์ด ๋๋ฌ์ ๋ (์ฐธ), ๊ทธ๋ ์ง ์์ผ๋ฉด (๊ฑฐ์ง). ๊ฒ์์ด ์ข ๋ฃ๋ ์ํ๋ฅผ (์ข ๋ฃ ์ํ)๋ผ๊ณ ํจ.
- ๋๋ : (ํจ์ฉ ํจ์), ๊ฒ์์ด ์ข ๋ฃ ์ํ ์์ ๋๋ ๋ ํ๋ ์ด์ด ์ ๋ํ ์ต์ข ์ซ์ ๊ฐ(final numeric value)์ ์ ์
Search Tree and Game Tree (ํ์ ํธ๋ฆฌ์ ๊ฒ์ ํธ๋ฆฌ)
- ์ด๊ธฐ ์ํ, ํจ์, ํจ์๋ state space graph (์ํ ๊ณต๊ฐ ๊ทธ๋ํ)๋ฅผ ์ ์
- ์ ์ (vertices)์ด ์ํ์ด๊ณ , ๋ชจ์๋ฆฌ(edges)๊ฐ ์์ด๋ฉฐ, ํ๋์ ์ํ์ ์ฌ๋ฌ ๊ฒฝ๋ก๋ก ๋๋ฌ ๊ฐ๋ฅ
- ๊ทธ๋ํ ์์ (ํ์ ํธ๋ฆฌ)๋ฅผ ๊ฒน์ณ์ ์ด๋ค ์๋ฅผ ๋์ง ๊ฒฐ์ ๊ฐ๋ฅ
- Complete game tree (์์ ๊ฒ์ ํธ๋ฆฌ): ๋ชจ๋ ์์ ์์(sequence of moves)๋ฅผ ๋ฐ๋ผ ์ข
๋ฃ ์ํ๊น์ง ์ด์ด์ง๋ ํ์ ํธ๋ฆฌ
- ํฑํํ ์ ๊ฒ์ ํธ๋ฆฌ๋ ๋น๊ต์ ์์ (fewer than = $)
- ์ฒด์ค์ ๊ฒฝ์ฐ nodes(๋ ธ๋)๋ฅผ ์ด๊ณผํ์ฌ, game tree๋ ๋ฌผ๋ฆฌ์ ์ธ๊ณ์์ ์คํ ๋ถ๊ฐ๋ฅํ ์ด๋ก ์ ๊ตฌ์ฑ๋ฌผ๋ก ๊ฐ์ฃผ
Minimax Value (๋ฏธ๋๋งฅ์ค ๊ฐ)
- ๊ฒ์ ํธ๋ฆฌ(game tree)๊ฐ ์ฃผ์ด์ง๋ฉด, ํธ๋ฆฌ์ ๊ฐ ์ํ์ ๋ํ minimax value (๋ฏธ๋๋งฅ์ค ๊ฐ), ๋ฅผ ๊ณ์ฐํ์ฌ ์ต์ ์ ๋ต(optimal strategy)์ ๊ฒฐ์ ๊ฐ๋ฅ
- Minimax value๋ ๋ ํ๋ ์ด์ด ๋ชจ๋ ๊ฑฐ๊ธฐ์๋ถํฐ ๊ฒ์ ๋๊น์ง ์ต์ ์ผ๋ก ํ๋ ์ดํ๋ค๊ณ ๊ฐ์ ํ ๋, ํด๋น ์ํ์ ์์ ๋์ ํจ์ฉ(utility)
- ์ข ๋ฃ ์ํ์ ๋ฏธ๋๋งฅ์ค ๊ฐ์ ๋จ์ํ ๊ทธ (ํจ์ฉ)
- ๋น์ข ๋ฃ ์ํ(non-terminal state)์์, ๋ ์ ์ฐจ๋ก์ผ ๋ ์ต๋ ๊ฐ(maximum value)์ ๊ฐ์ง ์ํ๋ก ์ด๋ํ๋ ๊ฒ์ ์ ํธํ๊ณ , ์ ์ต์ ๊ฐ(minimum value)์ ๊ฐ์ง ์ํ๋ฅผ ์ ํธ
- ๋ฐ๋ผ์, :
Minimax Search Algorithm (๋ฏธ๋๋งฅ์ค ํ์ ์๊ณ ๋ฆฌ์ฆ)
- ๋ชจ๋ ํ๋(actions)์ ์๋ํ๊ณ ๊ฒฐ๊ณผ ์ํ(resulting state)๊ฐ ๊ฐ์ฅ ๋์ ๊ฐ(value)์ ๊ฐ๋ ํ๋์ ์ ํํจ์ผ๋ก์จ ์ best move (์ต์ ์ ์)๋ฅผ ์ฐพ์.
Alpha-Beta Pruning (์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ)
- ์ผ๋ฐ์ ์ผ๋ก ๊ฒ์ ์ํ์ ์๋ ํธ๋ฆฌ์ ๊น์ด์ ๋ฐ๋ผ ์ง์์ (exponential)์ผ๋ก ์ฆ๊ฐ
- ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ํธ๋ฆฌ์ ๋ง์ ๋ถ๋ถ์ ๊ฐ์ง์น๊ธฐ(pruning)ํ์ฌ ๋ชจ๋ ์ํ๋ฅผ ๊ฒํ ํ์ง ์๊ณ ๋ ์ฌ๋ฐ๋ฅธ minimax decision(๋ฏธ๋๋งฅ์ค ๊ฒฐ์ )์ ๊ณ์ฐํ์ฌ ํ์์ ์ค์ฌ์ผ ํจ.
- ์ด ๊ธฐ์ ์ alphaโbeta pruning (์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ)์ด๋ผ๊ณ ํจ.
- General principle (์ผ๋ฐ ์๋ฆฌ)
- ํธ๋ฆฌ์ ์ด๋๊ฐ์ ์๋ ๋ ธ๋ ์ ๊ณ ๋ ค, Player(ํ๋ ์ด์ด)๊ฐ ์ผ๋ก ์ด๋ํ๋ ์ ํ๊ถ์ด ์๋ค๊ณ ๊ฐ์
- ๋ง์ฝ Player๊ฐ ๊ฐ์ ๋ ๋ฒจ()์ด๋ ํธ๋ฆฌ์ ์์ ๋ ๋ฒจ()์์ ๋ ๋์ ์ ํ์ ๊ฐ์ง๊ณ ์๋ค๋ฉด, Player๋ ์ผ๋ก ์ ๋ ์ด๋ํ์ง ์์ ๊ฒ
- ์ ๋ํด ์ด ๊ฒฐ๋ก ์ ๋๋ฌํ ๋งํผ ์ถฉ๋ถํ ์๊ฒ ๋๋ฉด (descendants(ํ์) ์ผ๋ถ๋ฅผ ๊ฒํ ํ์ฌ), ์ ๊ฐ์ง์น๊ธฐ(prune) ๊ฐ๋ฅ
- Alpha-beta pruning์ ๋ ๊ฐ์ ์ถ๊ฐ ๋งค๊ฐ๋ณ์ ์ ์์ ์ด๋ฆ์ ๋ฐ์ด.
- : ํ์ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ํ๋๋ ์ ์ต๋๊ฐ(best value)
- : ํ์ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋ํ๋๋ ์ ์ต์๊ฐ(best value)
- Algorithm (์๊ณ ๋ฆฌ์ฆ)
- Alpha-beta search๋ ์งํํ๋ฉด์ ์ ์ ๊ฐ์ ์ ๋ฐ์ดํธํ๊ณ , ํ์ฌ ๋ ธ๋์ ๊ฐ์ด ๋๋ ์ ๋ํด ๊ฐ๊ฐ ํ์ฌ ๋๋ ๊ฐ๋ณด๋ค ๋์๋ค๋ ๊ฒ์ด ์๋ ค์ง์๋ง์ ๋๋จธ์ง ๋ธ๋์น(branches)๋ฅผ ๊ฐ์ง์น๊ธฐ(prune) ๊ฐ๋ฅ
