๋ฐฑํธ๋ํน(=ํด๊ฐ๊ฒ์) , ์ผ์ข ์ ํธ๋ฆฌ ํ์ ์๊ณ ๋ฆฌ์ฆ.
ํด๋ฅผ ์ฐพ์๊ฐ๋ ์ค์ ๋งํ๋ฉด ๋ค์ ์ด์ ์ผ๋ก ๋์๊ฐ์ ํด๋ฅผ ์ฐพ์๊ฐ๋ ๊ธฐ๋ฒ์ผ๋ก, ์ต์ ํ ๋ฌธ์ ์ ๊ฒฐ์ ๋ฌธ์ ๋ฅผ ํ ๋ ์ฌ์ฉ.
- ๊น์ด์ฐ์ ํ์ (Depth First Search, DFS)
- ๋๋น์ฐ์ ํ์ (Breadth First Search, BFS)
- ์ต์ ์ฐ์ ํ์ (Best First Search/Heuristic Search)
๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ฒ์ > DFS.
ํธ๋ฆฌ์ ๊น์ด๊ฐ ๋ฌดํ๋์ด๋ฉด BFS
DFS๋ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ํ์ํจ. ์ผ์ผ์ด ํ๋์ฉ ์ฒดํฌํด๋ณด๋ฉด์ ๋ ธ๊ฐ๋คํ๋ ํ์์.
๋ฐฑํธ๋ํน์ DFS ๋ฐฉ์๊ณผ ๋น์ทํ๋ฐ, DFS์ฒ๋ผ ํด๋ฅผ ์ฐพ์๊ฐ๋ ์ค์, ๋ค์์ ๊ฐ ๊ฒฝ๋ก๋ก ํ๋ฉด ํด๊ฐ ์ ๋ ์๋์ฌ๊ฒ ๊ฐ์ผ๋ฉด ๊ทธ ๊ฒฝ๋ก๋ ๊ฐ์ง์๊ณ ๋๋์๊ฐ.
์ด๋ ๊ฒ ์กฐ๊ฑด์ ์ค์ ํด์ ์๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ์ฒดํฌํ์ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ํ์ฐํ๊ฒ ์ค์.
์ด๋ฐ ๊ฒ์ ๊ฐ์ง์น๊ธฐ๋ผ ํ๋๋ฐ, ๋ถํ์ํ ๋ถ๋ถ์ ์ณ๋ด๊ณ ํ์ํ ๋ถ๋ถ์ผ๋ก๋ง ๊ฐ๊ฒ ๋ง๋ค์ด ์ฃผ๋ ๊ฒ์.
๊ฐ์ง์น๊ธฐ๋ฅผ ์ํด์ผ์ง ํจ์จ์ฑ์ด ์ข์.
ํ์ค์ ๋ฆฌํ๋ฉด, ๋ฐฑํธ๋ํน์ ๋ชจ๋ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์์์ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฒฝ์ฐ์ ์๋ง ํ์ธํ๋ ๊ฒ.
๋ต์ด ๋ ์ง ์๋ ์ง ํ๋จํด์ ๊ฐ์ง์น๊ธฐ ํ๋ ๊ฒ์ด ๋ฐฑํธ๋ํน์.
์ ๋งํ์ง ์ ๋งํ์ง์์์ง ํ๋จํด์ ์๋ค๊ณ ํ๋จํ๋ฉด ๊ทธ ๋ ธ๋์ ๋ถ๋ชจ๋ ธ๋๋ก ๋์๊ฐ๋ค์ ๋ค์ ์์๋ ธ๋๋ก ์ด๋ํจ.(Backtracking)
์ ๋งํ๋ค๊ณ ํ๋ฉด ์ ๋งํ์ง ์๋ ๋ ธ๋์ ์๊ฐ๊ฒ ๊ฐ์ง์น๊ธฐํจ.(Pruning)
์ฌ๊ทํจ์๋ ๊น์ด์ฐ์ ํ์์ผ๋ก ๊ตฌํ๊ฐ๋ฅ.