4. Blind Search
1) Breadth-First Search (๋๋น์ฐ์ ํ์) - FIFO(First in first out)
: root node๋ฅผ ์ฒ์์ผ๋ก expandํ๊ณ , ๋ชจ๋ successors(์์ ๋ ธ๋)๋ฅผ ๋ค์์ผ๋ก expandํ ๋ค์์ ๋ ๋ค์ successors......
- Performance of Breadth-First Search
: complete ํ์ง๋ง optimal ํ์ง๋ ์๋ค.
(* complete : ๋ฌด์กฐ๊ฑด goal์ ์ฐพ์ ์ ์์)
๋ง์ฝ ๊ฐ์ฅ ์์ goal node๊ฐ depth d์ ์๋ค๋ฉด, ๋ชจ๋ ๋ ์์ node๋ค์ ํ์ํ ๋ค์์ ์ฐพ์ ์ ์์ ๊ฒ. ๊ทธ๋ฌ๋ ๊ทธ ๊ฐ์ฅ ์์ goal node๊ฐ ํญ์ optimalํ๋ค๊ณ ๋ ๋ณผ ์ ์์. (๋จ, ๋ชจ๋ cost๊ฐ ๊ฐ์ ๊ฒฝ์ฐ optimal ํจ)
- Time complexity : O(b^d)
- Space complexity : O(b^d)
: BFS์์๋ ์ํ ์๊ฐ๋ณด๋ค๋ ๋ฉ๋ชจ๋ฆฌ requirements๊ฐ ๋ ํฐ ๋ฌธ์ ์
(b = number of children at each node, ์ฆ ํ ๋ ธ๋์ ๋ฌ๋ฆฐ ๊ฐ์ง ์, d = ๊ฐ์ฅ ์์ ์ ๋ต์ ๊น์ด)
depth๊ฐ ๊น์ด์ง ์๋ก ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์์ฒญ ์ปค์ง๋๋ฐ, ๋ฉ๋ชจ๋ฆฌ๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ถ๊ฐ๋ก ๋ง๋ค์ด ๋ผ ์ ๊ฐ ์์ผ๋ฏ๋ก ๋ ์ค์ํ ๋ฌธ์ ๊ฐ ๋๋ค.
2) Uniform-Cost Search
: ๊ฐ์ฅ ์์ ๋ ธ๋๋ฅผ expanding ํ๋ ๋์ ์, uniform-cost search์์๋ ๊ฐ์ฅ ์ ์ path cost g(n)์ ๊ฐ๋ node n ์ expanding ํ๋ค. ์ด๊ฒ์ g์ ์ํด ์ ๋ ฌ๋๋ priority queue์ frontier๋ฅผ ์ ์ฅํ์ฌ ์ํ๋๋ค.
( * frontier : ์์ง ํ์ํ์ง ์์ ๋ ธ๋๋ค์ ์งํฉ )
- goal test๋ ๋ ธ๋๋ฅผ ์ฒ์์ ์์ฑํ ๋๊ฐ ์๋๋ผ expansion์ ์ํด ์ ํํ ๋ ํ์ฉ๋๋ค. ๋จผ์ ๋ง๋ค์ด์ง goal node๋ ์๋ง๋ suboptimalํ path์ผ ๊ฐ๋ฅ์ฑ์ด ๋๊ธฐ ๋๋ฌธ์, frontier์ ์๋ ๋ ธ๋ ์ค ๋ ๋์ path๋ฅผ ์ฐพ์ผ๋ฉด test๊ฐ ๋์๊ฐ๋ค.
- Performance of Uniform-Cost Search
: ๋ง์ฝ cost๊ฐ 0์ธ action์ ๋ฌดํ๊ฐ์ sequence๊ฐ ์๋ path๊ฐ ์๋ค๋ฉด Uniform-cost Search๋ ๋ฌดํ ๋ฃจํ์ ๊ฐํ๊ฒ ๋๋ค. ๋ฐ๋ผ์ completeness๋ ๋ชจ๋ ๋จ๊ณ์์์ cost๊ฐ ์์ ์์ ε๋ฅผ ์ด๊ณผํ ๊ฒฝ์ฐ์๋ง ๋ณด์ฅ๋๋ค.
๋ํ uniform-cost search๋ ํญ์ optimal ํ๋ค. ์ฐ๋ฆฌ๊ฐ observeํ node์ ๋ํด ์ฐ๋ฆฌ๋ ํญ์ ๊ทธ node์ ๋ํ optimal path๋ฅผ ์ฐพ์ ์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก step costs๊ฐ ์์๊ฐ ์๋๋ผ๋ฉด, node๊ฐ ๋ํด์ง ์๋ก path๋ ์ ๋ ์งง์์ง ์ ์๋ค. ๋ฐ๋ผ์ ์ฒซ๋ฒ์งธ๋ก ์ ํ๋ goal node๊ฐ ๋ฐ๋์ optimal solution์ด๋ค.
- Time complexity, Space complexity ๋ ๋ค
: BFS์ ๋ง์ฐฌ๊ฐ์ง๋ก memory requirements๊ฐ execution time๋ณด๋ค ๋ ํฐ ๋ฌธ์
3) Depth-first Search (๊น์ด ์ฐ์ ํ์) - LIFO
: search tree์ ํ์ฌ frontier์์ ๋ ๊น์ ๋ ธ๋๋ฅผ ๋จผ์ expand
- Performance of Depth-First Search
: ์ ํํ state spaces์์์ graph-search version์ completeํ์ง๋ง, tree-search version์ ๋ฌดํ๋ฃจํ ๋๋ฌธ์ completeํ์ง ์๋ค. DFS๋ ์ถ๊ฐ์ ์ธ memory cost๊ฐ ์์ด ์์ ํ ์ ์์ด์, ํ์ฌ states๊ฐ root๋ถํฐ current node๊น์ง์ path์์ ์์๋์ง ์์๋์ง๋ฅผ ํ์ธํ ์ ์๋ค. ์ฆ, ์๋ ๋ ธ๋์ธ์ง ํ์ธ์ด ๊ฐ๋ฅํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฌดํ ๋ฃจํ๋ฅผ ํผํ ์๋ ์์ง๋ง, ์ฌ์ ํ rebundant path๋ฅผ ๊ฐ๋ ๊ฒ์ ๋ง์ ์ ์๋ค. (rebundant path๋, ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก์ง๋ง ์์์ ๊ณผ ๋์ ์ ์๋ก ๊ฐ์ ๊ฒฝ๋ก. a->c->d์ a->b->e->d์ฒ๋ผ) ์ฆ, ๊ฐ์ ๊ฒฝ๋ก๋ฅผ ๋ฌดํํ ๋ฐ๋ณตํ๋ ๊ฒ์ ๋ง์ ์ ์์ด๋, ๊ฐ์ ๊ฒฝ๋ก๋ ์๋์ง๋ง ์์์ a์์ ๋์ b๋ฅผ ๊ฐ๋ ๊ฒฝ์ฐ๊ฐ ๋งค์ฐ ๋ง์ ๋, ์ด ๊ฒฝ๋ก๋ค์ ๋ชจ๋ ๊ฐ๋ ๊ฒ์ ๋ง์ ์๋ ์๋ค๋ ๊ฒ! ๋ํ, infinite state spaces์์๋ ๋ ๋ฒ์ ๋ค complete ํ์ง ๋ชปํ๋ค.
๋ํ cost์ ๊ด๊ณ์์ด ๊ฐ์ฅ ๋จผ์ ์ฐพ์ ๊ฒ์ returnํ๋ฏ๋ก nonoptimalํ๋ค.
(๋ณดํต cycle์ด ์๋๊ฒ graph, ์๋๊ฒ tree์ธ๋ฐ ๋ฌด์จ ๋ง์ด์ง..ํ๋๋ ๊ต์ฌ์ ์ ์๊ฐ tree์ check๊ฐ ์์ผ๋ฉด ๊ณ์ ๋ค์ด๊ฐ ์ ์๋ค๊ณ ์ ์๋ฅผ ํ๋ค๋ ๋ญ๋ผ๋ ๋ง์ด๋ ๋ฐฉ๊ตฌ๋ ๋๊ฐ ๋ ์ข ์ดํด์์ผ์ค)
- Time complexity : O(b^m)
: Depth-first tree search๋ tree์ ์๋ ๋ชจ๋ O(b^m)๊ฐ์ ๋ ธ๋๋ฅผ ์์ฑํด๋ธ๋ค. ์ด๊ฒ์ state space์ ํฌ๊ธฐ๋ณด๋ค ํ ์ด์ผ์ฌ ๋ ์ปค์ง ์ ์๋ค.
( State Space : initial state์์๋ถํฐ ์ด๋ค action squence๋ฅผ ํตํด ๋๋ฌํ ์ ์๋ ๋ชจ๋ states๋ค์ ์งํฉ )
- Space complexity : O(b*m)
(m = max depth)
* Backtracking Search
- ๋ณดํต dfs๋ recursive function์ผ๋ก ์ํํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
- ์ด ๋ backtraking search๋ฅผ ํ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ์ค์ผ ์ ์๋ค. Backtracking์์๋ ๊ธฐ์กด์ ๋ชจ๋ ์์ node๊ฐ ์์ฑ๋์๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ, ๋๋จธ์ง๋ ๊ธฐ์ต๋ง ํด๋๊ณ ์ค์ง ํ๋์ ์์๋ง์ด ์์ฑ๋๋ค. ๊ทธ๋์ ๊ธฐ์กด์ memory ์ฌ์ฉ์ด O(bm)์ด์๋ ๊ฒ๊ณผ๋ ๋ฌ๋ฆฌ O(m)์ผ๋ก ์ค์ด๋ค๊ฒ ๋๋ค.
- backtracking์ ํ์ฉํ๋ฉด ๋ ๋ค๋ฅธ memory-saving(time-saving) trick์ด ์ฉ์ดํด์ง๋ค. ํ์ฌ state์ description์ ์ฒ์์ ๋ณต์ฌํ๋ ๊ฒ์ด ์๋๋ผ, ์ง์ ๋ณ๊ฒฝํ์ฌ ์์ ๋ ธ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ฅผ ํตํด ํ์ํ memory๊ฐ ์ค์ง ํ state์ description๊ณผ O(m)์ action์ผ๋ก ์ค์ด๋ ๋ค. ์ด๊ฒ์ด ๊ฐ๋ฅํ๋ ค๋ฉด, ๋ค์ ๋ ธ๋๋ฅผ ์์ฑํ๊ธฐ ์ํด go back, ๋์๊ฐ ๋ ๊ฐ modification์ ์๋๋๋ก ๋๋๋ฆด ์ ์์ด์ผ ํ๋ค.
4) Depth-Limited Search
: infinite state spaces์์์ dfs failure๋ depth limit l์ ๋ depth-first search๋ฅผ ํตํด ํด๊ฒฐํ ์ ์๋ค. ์ด๊ฒ์ depth l์ ์๋ ๋ ธ๋๊น์ง๋ง ํ์ํ๊ณ ๋์์จ๋ค. ๊ทธ ์ด์์ ๋ ์ด์ ๋ด๋ ค๊ฐ์ง ์๋๋ค.
- Depth-limited search์๋ ๋ ๊ฐ์ง ์ข ๋ฅ์ failure๊ฐ ์๋ค. ํ๋๋ solution์ด ์กด์ฌํ์ง ์๋ standard failure value๊ณ , ๋ค๋ฅธ ํ๋๋ solution์ด depth limit ์์ ์กด์ฌํ์ง ์๋ cutoff value ์ด๋ค.
- depth-limited search๋ completeํ์ง๋, optimal ํ์ง๋ ์๋ค.
- Time complexity : O(b^l)
- Space complexity : O(bl)
5) Iterative Deepening Search
: best depth limit์ ์ฐพ๋ ๋ฐฉ๋ฒ. depth limited search ์์ goal์ ์ฐพ์ ๋๊น์ง depth limit์ 0๋ถํฐ 1์ฉ ์ฆ๊ฐ์์ผ ๋๊ฐ๋ ๊ฒ
- Iterative deepening ๋ฐฉ๋ฒ์ depth-first์ ์ฅ์ ๊ณผ breadth-first search์ ์ฅ์ ์ ๊ฒฐํฉ์์ผ ๋์
- dfs์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํฌ์ง ์๊ณ , breadth-first์ฒ๋ผ branching factor๊ฐ finiteํ๋ฉด completeํ๋ค.
- Time complexity : O(b^d)
- Space complexity : O(bd)
* Breadth-first and Iterative Deepening Hybrid
- ๋ณดํต iterative deepening์ search space๊ฐ ํฌ๊ณ solution์ ๊น์ด๋ฅผ ์ ์ ์์ ๊ฒฝ์ฐ, uninformed search(=blind search) ์ ๋ฐฉ๋ฒ์ด ์ ํธ๋๋ค. ]
- ๋ง์ฝ repetition์ ๋ํด ๊ฑฑ์ ์ด ๋๋ค๋ฉด, bfs๋ฅผ ๊ฐ์ฉํ ๋ฉ๋ชจ๋ฆฌ๊น์ง ์ฌ์ฉํ๊ณ , ๊ทธ ๋ค์๋ถํฐ iterative deepening์ frontier์ ๋ชจ๋ ๋ ธ๋์ ๋ํด ์ํ์ํค๋ hybridํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
* Iterative Lengthening Search
Iterative deepening search๋ ๊ฐ ๋ฐ๋ณต๋ง๋ค ์๋ก์ด ๋ ธ๋๋ค์ ๋ ์ด์ด ์ ์ฒด๋ฅผ ํ์ํ ํ ๋ค์ ๋ ์ด์ด๋ก ๋์๊ฐ๋ค๋ ์ ์์ bfs์ ์ ์ฌํ๋ค. uniform-cost search์ memory requirements๋ฅผ ํผํ๋ฉด์๋ ์๊ณ ๋ฆฌ์ฆ์ optimality ํจ์ ์ ์งํ๋ค๋ ์ ์์ ๊ต์ฅํ ์๋ฏธ์๋ค! depth limit์ ๋๋ ค๋๊ฐ๋ ๋์ ์, path-cost limit์ ์ฆ๊ฐ์ํค๋ ์์ด๋์ด๊ฐ ์ฌ์ฉ๋์๋๋ฐ, ๋ง์ฝ path cost๊ฐ current limit์ ์ด๊ณผํ๋ ๋ ธ๋๋ฅผ ์์ฑํ์ ๊ฒฝ์ฐ์ ๊ทธ๊ฒ์ ๊ทธ ์ฆ์ ์ญ์ ๋๋ค. ๋งค ์๋ก์ด ๋ฐ๋ณต๋ง๋ค, ์์ ๋ฐ๋ณต์์ ์ญ์ ๋ ๋ ธ๋๋ค ์ค์ ๊ฐ์ฅ ์์ path node๋ฅผ limit๋ก ์ค์ ํด์ค๋ค. ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ด๋ด๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ฐ๋ก iterative lengthening search์ด๋ค. ์์ฝ๊ฒ๋ iterative lengthening์ uniform-cost search์ ๋นํด์ ์๋นํ ์ค๋ฒํด๋๋ฅผ ๋ฐ์์ํจ๋ค.
6) Bidirectional Search
: ํ๋๋ initial state์์ ๋ถํฐ forward ํ๊ฒ, ํ๋๋ goal์์ ๋ถํฐ backwardํ๊ฒ ๋ ๊ฐ์ search๋ฅผ ๋์์ ์ํํ๋ค. (๋ ๊ฐ์ search๊ฐ ๊ฐ์ด๋ฐ์์ ๋ง๋๊ธฐ๋ฅผ ์์ํ๋ค) -> goal state๋ฅผ ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ ๊ฐ๋ฅ
์ motivation์ ๊ธฐ์กด b^d๋ณด๋ค ๋ ๊ฐ์ด ์๋ค.
- bidirectional search๋ goal test๊ฐ ๋ search์ frontier๋ค์ด ๊ต์ฐจ(intersect)ํ๋์ง ์ํ๋์ง๋ฅผ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ๋์ฒด๋์ด ์ํ๋๋ค.
- ๋ search๊ฐ ๋ชจ๋ breadth-first๋ผ๊ณ ํ๋๋ผ๋, ์ด๋ฌํ first such solution์ optimalํ์ง ์์ ์ ์๋ค. ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์์ ๊ธฐ ์ํด์๋ ๋ช๊ฐ์ง์ ์ถ๊ฐ์ ์ธ ๊ฒ์์ด ํ์ํ๋ค.
- time complexity in both direction : O(b^(d/2)) -> ์ ๋ฐ์
- space complexity : O(b^(d/2)) -> ๋๊ฐ์ง ๊ฒ์ ์ค ํ๋๋ฅผ iterative deepening์ผ๋ก ์ํํ๋ฉด ์ ๋ฐ์ ๋ ์ค์ผ ์ ์์ง๋ง, intersection check๋ฅผ ์ํด frontiers์ ์ ์ด๋ ํ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ณด๊ดํ๊ณ ์์ด์ผ ํ๋ค. ์ด space requirement๊ฐ bidirectional search์ ๊ฐ์ฅ ๋ํ์ ์ธ ์ฝ์ ์ด๋ค.
7) Comparison
'๐ก๐ธ๐ธ๐ถ5: ๐ฆ๐๐๐๐ถ ๐ฐ๐๐พ๐ > Artificial Intelligence(COSE361)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ธ๊ณต์ง๋ฅ] 4. Beyond Classical Search - 2 (0) | 2021.04.24 |
---|---|
[์ธ๊ณต์ง๋ฅ] 4. Beyond Classical Search - 1 (0) | 2021.04.24 |
[์ธ๊ณต์ง๋ฅ] 3. Solving problems by searching - 3 (0) | 2021.04.24 |
[์ธ๊ณต์ง๋ฅ] 3. Solving problems by searching - 1 (0) | 2021.04.23 |
[์ธ๊ณต์ง๋ฅ] 1.1 What is AI? &2.3 The Nature of Environments (0) | 2021.04.23 |