
ํ๊ต์์ ์ปดํจํ ๋ฌธ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๋ ๊ณผ๋ชฉ์ ๋ค์ ๋ ๋ฐฐ์ ๋ ๋ด์ฉ๋ค์ด ๊ฑฐ์ ๋๋ค์ ๋ฑ์ฅํ ๋จ์์ด์๋ค.
๊ธฐ์ด์ ์ธ ๊ทธ๋ํ ํ์์ ์์์ผ๋ก
๊ทธ๋ํ์ ํธ๋ฆฌ์ ๊ฐ๋
, ๊ทธ๋ฆฌ๊ณ ๋ํ์ ์ธ ํ์ ์๊ณ ๋ฆฌ์ฆ์ธ BFS์ DFS๋ฅผ ๋ค๋ฃฌ๋ค.
๊ทธ๋ฐ๋ฐ ์ด๋ฒ ๊ฐ์์์๋ ๋จ์ํ
DFS๋ ๊น๊ฒ ํ์ํ๋ค.
BFS๋ ๋๊ฒ ํ์ํ๋ค.
์ ๋์์ ๋๋์ง ์์๋ค.
์กฐ๊ธ ๋ ๊ทผ๋ณธ์ ์ธ ๊ด์ ์์
์ปดํจํฐ๊ฐ ์ด๋ค ๋ฌธ์ ๋ฅผ 'ํ์ ๋ฌธ์ '๋ก ๋ฐ๊พธ๊ณ , ๊ทธ ์์์ ํด๋ต์ ์ด๋ป๊ฒ ์ฐพ์๊ฐ๋๊ฐ?
๋ฅผ ์ค๋ช ํ๋ค.
๊ทธ๋ฆฌ๊ณ BFS์ DFS๋ฟ๋ง ์๋๋ผ
์ ๊ฐ์ ํ์ ์ ๋ต๋ ํจ๊ป ๋ค๋ค๋ค.
๊ฐ์ธ์ ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ์์
์์ ์ด๋ฏธ ๊ณต๋ถํ๋ ๋ด์ฉ์ด๋ผ ์ต์ํ ๋ถ๋ถ๋ ๋ง์์ง๋ง,
์ด๋ฒ์๋ ์ด๋ฅผ AI์ Problem-Solving Agent ๊ด์ ์์ ๋ฐ๋ผ๋ณธ๋ค๋ ์ ์ด ์ฌ๋ฏธ์์๋ค.
๊ฐ์์์๋ ๋ฌธ์ ํด๊ฒฐ์ ๊ต์ฅํ ์ถ์์ ์ผ๋ก ์ ์ํ๋ค.
์ด๋ค ๋ฌธ์ ์๋ ํ์ฌ ์ํ๊ฐ ์๊ณ ,
Initial State
์ฐ๋ฆฌ๊ฐ ๋๋ฌํ๊ณ ์ถ์ ์ํ๊ฐ ์๋ค.
Goal State
๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ํ๋ฅผ ๋ค๋ฅธ ์ํ๋ก ๋ณํ์ํค๋ ํ๋์ด ์กด์ฌํ๋ค.
Operator / Action
๊ฒฐ๊ตญ ๋ฌธ์ ํด๊ฒฐ์ด๋ผ๋ ๊ฒ์
Initial State
โ
Action
โ
State
โ
Action
โ
State
โ
...
โ
Goal State
์ฒ๋ผ ์ด๊ธฐ ์ํ์์ ๋ชฉํ ์ํ๊น์ง ๋๋ฌํ ์ ์๋ ํ๋์ ์์๋ฅผ ์ฐพ๋ ๊ฒ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์๋ฅผ ๋ค์ด ๊ธธ ์ฐพ๊ธฐ๋ฅผ ์๊ฐํด๋ณด์.
ํ์ฌ ์์น : ์ ๋ถ๋ํ๊ต
๋ชฉํ ์์น : ์ ์ฃผ์ญ
๊ทธ๋ฆฌ๊ณ ๋ด๊ฐ ํ ์ ์๋ ํ๋์
๋ฒ์ค๋ฅผ ํ๋ค.
ํ์๋ฅผ ํ๋ค.
๊ฑท๋๋ค.
๋ฑ์ด ๋ ์ ์๋ค.
์ปดํจํฐ ์ ์ฅ์์๋ ๊ฒฐ๊ตญ
"์ด๋ค ํ๋๋ค์ ์ด๋ค ์์๋ก ์ํํด์ผ ๋ชฉํ ์ํ๊น์ง ๊ฐ ์ ์์๊น?"
๋ฅผ ์ฐพ์๋ด๋ ๊ฒ์ด ๋ฌธ์ ํด๊ฒฐ์ด๋ค.
๊ฐ์์์๋ ํนํ ๊ฐ๋ฅํ๋ฉด ์ต์์ ์ฐ์ฐ ๋๋ ์ต์ ๋น์ฉ์ผ๋ก ๋ชฉํ ์ํ์ ๋๋ฌํ๋ ๊ฒ์ ์ค์ํ๊ฒ ๋ค๋ฃฌ๋ค.
์ฌ๊ธฐ์ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์๋ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
Offline Problem Solving์
์ค์ ๋ก ํ๋ํ๊ธฐ ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋จผ์ ์ฐพ์๋๋ ๋ฐฉ์์ด๋ค.
๋ฌธ์ ๋ถ์
โ
ํด๊ฒฐ ๊ฒฝ๋ก ํ์
โ
๊ฒฝ๋ก ๊ฒฐ์
โ
์ค์ ํ๋
๋ง ๊ทธ๋๋ก ๊ณํ์ ๋ชจ๋ ์ธ์ด ๋ค ์์ง์ธ๋ค.
์๋ฅผ ๋ค์ด ๋ด๋น๊ฒ์ด์ ์ด ๊ฒฝ๋ก๋ฅผ ๋จผ์ ๊ณ์ฐํ๊ณ
์ ๋ถ๋
โ ๋ฐฑ์ ๋๋ก
โ ๊ธฐ๋ฆฐ๋๋ก
โ ์ ์ฃผ์ญ
์ด๋ผ๋ ๊ธธ์ ์๋ ค์ฃผ๋ ๊ฒ๊ณผ ๋น์ทํ๋ค.
๊ฐ์์์๋ ์ด๋ฅผ ์ฝ๊ฐ ์ฌ๋ฏธ์๊ฒ
solution executed "eyes closed"
๋ผ๊ณ ํํํ๋ค.
์ด๋ฏธ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์
๊ทธ ๊ณํ์ ๊ทธ๋๋ก ์คํํ๋ฉด ๋๋ค๋ ์๋ฏธ๋ค.
๋ฐ๋๋ก Online Problem Solving์
ํ๊ฒฝ์ ๋ํ ์ ๋ณด๋ฅผ ์์ ํ ์์ง ๋ชปํ๋ ์ํ์์ ํ๋ํ๋ค.
ํ๋
โ
์๋ก์ด ์ ๋ณด ํ๋
โ
๋ค์ ํ๋ ๊ฒฐ์
โ
์๋ก์ด ์ ๋ณด ํ๋
โ
...
์๋ฅผ ๋ค์ด ๋ฏธ๋ก ์ ์ฒด ์ง๋๋ฅผ ๋ชจ๋ฅด๋ ์ํ์์
์ง์ ์์ง์ด๋ฉฐ ๊ธธ์ ์ฐพ๋ ๋ก๋ด์ ์๊ฐํ๋ฉด ๋๋ค.
์ด ๊ฒฝ์ฐ์๋
ํ์ โ ํ๋ โ ๊ด์ฐฐ โ ๋ค์ ํ์
์ด ๋ฐ๋ณต๋๋ค.
๊ฐ์์์๋ ๋ฌธ์ ๋ฅผ ํ๊ฒฝ์ ๋ํ ์ ๋ณด๊ฐ ์ผ๋ง๋ ์ฃผ์ด์ง๋์ง์ ๋ฐ๋ผ ์ฌ๋ฌ ์ข ๋ฅ๋ก ๋๋์๋ค.
์ฒ์์๋ ์ฉ์ด๊ฐ ์กฐ๊ธ ๋ณต์กํด ๋ณด์๋๋ฐ
๊ฒฐ๊ตญ ํต์ฌ์
ํ์ฌ ์ํฉ์ ์ผ๋ง๋ ์ ํํ๊ฒ ์๊ณ ์๋๊ฐ?
๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฌ์ ๋ค.
๊ฐ์ฅ ๋จ์ํ ๊ฒฝ์ฐ๋ค.
ํ๊ฒฝ์ด Deterministicํ๊ณ Fully Observableํ๋ค.
์ฆ,
ํ์ฌ ๋ด๊ฐ ์ด๋ ์๋์ง ์ ํํ ์๊ณ ์๊ณ
+
์ด๋ค ํ๋์ ํ์ ๋ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง๋ ์๊ณ ์๋ค.
์๋ฅผ ๋ค์ด
A โ B โ C โ Goal
์ด๋ผ๋ ๊ธธ์ ์ ํํ๊ฒ ์๊ณ ์๋ค๋ฉด
Right
Right
Right
์ ๊ฐ์ ํ๋ Sequence๋ฅผ ๋ง๋ค๋ฉด ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฝ๋ฉํ
์คํธ์์ ์ผ๋ฐ์ ์ผ๋ก ํ๊ฒ ๋๋
๊ทธ๋ํ ํ์ ๋ฌธ์ ๋๋ถ๋ถ์ ์ด๋ฐ ํํ๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ด๋ฒ์๋ ํ์ฌ ์ํ๋ฅผ ์ ํํ๊ฒ ์ ์ ์๋ค.
์ฆ Non-observable ํ๊ฒฝ์ด๋ค.
์ผ์๊ฐ ์์ด์ ๋ด๊ฐ ์ ํํ ์ด๋ค ์ํ์ธ์ง ๋ชจ๋ฅด์ง๋ง
๊ทธ๋๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํด์ ๋ชฉํ์ ๋๋ฌํด์ผ ํ๋ค.
์ด๋๋ ๋จ์ํ ๋ฌผ๋ฆฌ์ ์ธ State ํ๋๊ฐ ์๋๋ผ
ํ์ฌ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ์๋ State๋ค์ ์งํฉ
์ ๊ณ ๋ คํ๊ฒ ๋๋ค.
๊ฐ์์์๋ ์ด๋ฅผ Belief State๋ผ๊ณ ํํํ๋ค.
ํ๊ฒฝ์ด
Nondeterministic
๋๋
Partially Observable
ํ ๊ฒฝ์ฐ๋ค.
ํ๋์ ๊ฒฐ๊ณผ๊ฐ ํญ์ ๋์ผํ์ง ์์ ์๋ ์๊ณ
ํ๊ฒฝ์ ์ผ๋ถ ์ ๋ณด๋ง ๊ด์ฐฐํ ์๋ ์๋ค.
๋ฐ๋ผ์ ํด๊ฒฐ ๋ฐฉ๋ฒ๋ ๋จ์ํ ํ๋์ Action Sequence๊ฐ ์๋๋ผ
๋ง์ฝ A๋ผ๋ฉด โ ํ๋ 1
๋ง์ฝ B๋ผ๋ฉด โ ํ๋ 2
๊ฐ์ ์กฐ๊ฑด๋ถ ๊ณํ(Contingent Plan) ๋๋ Policy๊ฐ ๋๋ค.
์ฆ,
Search
โ
Execution
โ
์๋ก์ด ์ ๋ณด
โ
Search
๊ฐ ๋ฐ๋ณต๋ ์ ์๋ค.
๊ฐ์์์๋ ์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํด
AI ๋ถ์ผ์์ ์์ฃผ ๋ฑ์ฅํ๋ Vacuum World ์์ ๋ฅผ ์ฌ์ฉํ๋ค.
์ฒญ์๊ธฐ๊ฐ ๋ ๊ณต๊ฐ์ ์ด๋ํ๋ฉด์
๋จผ์ง๋ฅผ ์ ๊ฑฐํ๋ ๋งค์ฐ ๋จ์ํ ํ๊ฒฝ์ด๋ค.
์ฒญ์๊ธฐ๊ฐ ์ํํ ์ ์๋ ํ๋์
Left
Right
Vacuum
NoOp
์ ๋๋ค.
๋ชฉํ๋ ๋จ์ํ๋ค.
๋ชจ๋ ๊ณต๊ฐ์ ๋จผ์ง๊ฐ ์๋ ์ํ
์ด๋ค.
Single-State Problem์ด๋ผ๋ฉด ํ์ฌ ์ฒญ์๊ธฐ ์์น์
๋จผ์ง๊ฐ ์ด๋ ์๋์ง ๋ชจ๋ ์๊ณ ์์ผ๋ฏ๋ก
Right
Vacuum
๊ฐ์ ๋ช ํํ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ง๋ค ์ ์๋ค.
ํ์ง๋ง ํ์ฌ ์์น๋ ๋จผ์ง์ ์์น๋ฅผ ์ ์ ์๋ค๋ฉด
๊ฐ๋ฅํ ๋ชจ๋ ์ํ๋ฅผ ๊ณ ๋ คํด์ผ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํ๊ฒฝ์ด ๋ถํ์คํ๋ค๋ฉด
Right
if dirt then Vacuum
Left
if dirt then Vacuum
...
์ฒ๋ผ ์กฐ๊ฑด์ ๋ฐ๋ผ ํ๋์ ๊ฒฐ์ ํด์ผ ํ๋ค.
๊ฒฐ๊ตญ ๊ฐ์ ์ฒญ์ ๋ฌธ์ ๋ผ๋
ํ๊ฒฝ์ ๋ํ ์ ๋ณด๋ฅผ ์ผ๋ง๋ ์๊ณ ์๋๋์ ๋ฐ๋ผ ๋ฌธ์ ์ ํํ๊ฐ ์์ ํ ๋ฌ๋ผ์ง๋ค.
์ด์ ๋ถํฐ๊ฐ ๊ทธ๋ํ ํ์๊ณผ ์ง์ ์ ์ผ๋ก ์ฐ๊ฒฐ๋๋ ๋ถ๋ถ์ด๋ค.
๊ฐ์์์๋ ํ๋์ Single-State Problem์ ๋ค ๊ฐ์ง ์์๋ก ์ ์ํ๋ค.
1. Initial State
2. Successor Function
3. Goal Test
4. Path Cost
ํ๋์ฉ ์ดํด๋ณด์.
ํ์์ด ์์๋๋ ์ํ๋ค.
์๋ฅผ ๋ค์ด ๋ฃจ๋ง๋์์ ๋์ ๊ฐ ๊ธธ ์ฐพ๊ธฐ ๋ฌธ์ ์์
ํ์ฌ ์์น = Arad
๋ผ๋ฉด
Initial State = Arad
๊ฐ ๋๋ค.
ํ์ฌ ์ํ์์
๋ค์์ผ๋ก ์ด๋ํ ์ ์๋ ์ํ๋ค์ ์ ์ํ๋ค.
์๋ฅผ ๋ค์ด Arad์์ ์ง์ ๊ฐ ์ ์๋ ๋์๊ฐ
Zerind
Sibiu
Timisoara
๋ผ๋ฉด
S(Arad)
=
{Zerind, Sibiu, Timisoara}
์ ๋๋ก ์๊ฐํ ์ ์๋ค.
์ฆ,
ํ์ฌ ์ํ์์ ์ด๋ค ํ๋์ ์ํํ ์ ์์ผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ์ด๋ค ์ํ๊ฐ ๋๋๊ฐ?
๋ฅผ ์ ์ํ๋ค.
์ฝ๋ฉํ ์คํธ์์ ๊ทธ๋ํ์ ์ธ์ ๋ ธ๋๋ฅผ ์ฐพ๋ ๊ฒ๊ณผ ๊ฑฐ์ ๊ฐ๋ค.
ํ์ฌ ์ํ๊ฐ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋ชฉํ์ธ์ง ๊ฒ์ฌํ๋ค.
์๋ฅผ ๋ค์ด ๋ชฉ์ ์ง๊ฐ Bucharest๋ผ๋ฉด
ํ์ฌ ๋์ == Bucharest ?
๋ฅผ ๊ฒ์ฌํ๋ฉด ๋๋ค.
์ด์ฒ๋ผ ๋ชฉํ๊ฐ ์ ํํ ํ๋์ ์ํ๋ก ์ฃผ์ด์ง ์๋ ์๊ณ ,
์ฒญ์๊ธฐ ๋ฌธ์ ์ฒ๋ผ
๋ชจ๋ ๋จผ์ง๊ฐ ์ ๊ฑฐ๋์๋๊ฐ?
์ฒ๋ผ ์กฐ๊ฑด ํํ๋ก ์ ์๋ ์๋ ์๋ค.
๋ชฉํ๊น์ง ์ด๋ํ๋ ๋ฐ ํ์ํ ๋น์ฉ์ด๋ค.
์๋ฅผ ๋ค์ด ๋์ ๊ฐ ์ด๋์์๋
๊ฑฐ๋ฆฌ
๊ฐ ๋น์ฉ์ด ๋ ์ ์๋ค.
๋ฐ๋ฉด ํผ์ฆ์์๋
ํ ๋ฒ ์ด๋ = ๋น์ฉ 1
์ด๋ผ๊ณ ์ ์ํ ์๋ ์๋ค.
๊ทธ๋ฌ๋ฉด ์ ์ฒด ๊ฒฝ๋ก ๋น์ฉ์
๊ฐ ์ด๋ ๋น์ฉ์ ํฉ
์ด ๋๋ค.
๊ฒฐ๊ตญ ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๊ฒ์ ๋จ์ํ Goal์ ๋์ฐฉํ๋ ๊ฒฝ๋ก๊ฐ ์๋๋ผ
๊ฒฝ์ฐ์ ๋ฐ๋ผ์๋
Goal๊น์ง ๊ฐ๋ ๊ฒฝ๋ก ์ค ๊ฐ์ฅ ๋น์ฉ์ด ์์ ๊ฒฝ๋ก
์ผ ์ ์๋ค.
์ด์ ๋ฌธ์ ๋ฅผ ๊ทธ๋ํ๋ก ํํํ ์ ์๋ค.
๊ฐ์์์๋ ์ด๋ฅผ State Space, ๋๋ Problem Space๋ผ๊ณ ๋ถ๋ฅธ๋ค.
State Space๋ ๊ฒฐ๊ตญ ํ๋์ Graph๋ค.
Node
โ ๋ฌธ์ ์์ ๊ฐ๋ฅํ State
Edge
โ ํ State์์ ๋ค๋ฅธ State๋ก ์ด๋ํ ์ ์๋ Action
์๋ฅผ ๋ค์ด
A โ B โ C
โ
D โ Goal
์ด๋ผ๋ ๊ตฌ์กฐ๊ฐ ์๋ค๋ฉด
A, B, C, D, Goal์ ๊ฐ๊ฐ State์ด๊ณ
ํ์ดํ๋ ๊ฐ๋ฅํ Action์ ์๋ฏธํ๋ค.
์ฆ,
๋ฌธ์ ๋ฅผ ๊ทธ๋ํ๋ก ๋ฐ๊พธ๊ณ , ๊ทธ๋ํ์์ Initial State๋ถํฐ Goal State๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ฒ
์ด Search Problem์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๊ฐ์์์๋ ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ค๋ช
ํ๊ธฐ ์ํด
๋ฃจ๋ง๋์์ ๋์ ์ง๋๋ฅผ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด ํ์ฌ ์์น๊ฐ
Arad
์ด๊ณ ๋ชฉ์ ์ง๊ฐ
Bucharest
๋ผ๊ณ ํด๋ณด์.
๊ทธ๋ฌ๋ฉด ๋ฌธ์ ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ ์ ์๋ค.
Initial State
= Arad
States
= ๊ฐ ๋์
Actions
= ์ฐ๊ฒฐ๋ ๋์๋ก ์ด๋
Goal
= Bucharest
Path Cost
= ๋์ ๊ฐ ๊ฑฐ๋ฆฌ
๊ทธ๋ฌ๋ฉด ๋ฌธ์ ๋ ์์ ํ ๊ทธ๋ํ ํ์ ๋ฌธ์ ๊ฐ ๋๋ค.
Arad
โ
Sibiu
โ
Fagaras
โ
Bucharest
๊ฐ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๋ค.
๋ฌผ๋ก ์ด ๊ฒฝ๋ก๊ฐ ํญ์ ๊ฐ์ฅ ์งง์ ๊ฒฝ๋ก๋ผ๋ ์๋ฏธ๋ ์๋๋ค.
์ดํ ์ด๋ค Search Strategy๋ฅผ ์ฌ์ฉํ๋๋์ ๋ฐ๋ผ
์ฐพ๊ฒ ๋๋ ๊ฒฝ๋ก๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค.
๋ค์ ์์ ๋ 8-Puzzle์ด๋ค.
3ร3 ์นธ ์์์ ํ๋์ ๋น์นธ์ ์ด๋์ํค๋ฉด์
์ซ์๋ฅผ ๋ชฉํ ๋ฐฐ์ด๋ก ๋ง๋๋ ํผ์ฆ์ด๋ค.
์ฒ์ ๋ณด๋ฉด ๊ทธ๋ํ์ ๋ณ๋ก ๊ด๋ จ์ด ์์ด ๋ณด์ธ๋ค.
ํ์ง๋ง ์ด๊ฒ๋ State Space๋ก ํํํ ์ ์๋ค.
ํ๋์ ํผ์ฆ ๋ฐฐ์น๋ฅผ
State
๋ผ๊ณ ์๊ฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋น์นธ์
Left
Right
Up
Down
์ผ๋ก ์์ง์ด๋ ๊ฒ์ Action์ผ๋ก ์๊ฐํ๋ค.
๊ทธ๋ฌ๋ฉด
ํ์ฌ ํผ์ฆ
โ
๋น์นธ ์ด๋
โ
์๋ก์ด ํผ์ฆ
์ด ๋๋ค.
์ฆ ๊ฐ๊ฐ์ ํผ์ฆ ๋ฐฐ์น๊ฐ Node์ด๊ณ
ํ ๋ฒ์ ์ด๋์ด Edge์ธ ๊ฑฐ๋ํ Graph๊ฐ ๋ง๋ค์ด์ง๋ค.
Goal Test๋
ํ์ฌ ํผ์ฆ == ๋ชฉํ ํผ์ฆ
์ด๊ณ ,
ํ ๋ฒ ์์ง์ผ ๋ ๋น์ฉ์ 1์ด๋ผ๊ณ ๋๋ฉด
Path Cost = ์ด๋ ํ์
๊ฐ ๋๋ค.
์ฒ์์๋ ์์ ํ ๋ค๋ฅธ ๋ฌธ์ ์ฒ๋ผ ๋ณด์ด์ง๋ง
์ถ์ํํ๊ณ ๋๋ฉด ๊ฒฐ๊ตญ ๊ฐ์ ๊ทธ๋ํ ํ์ ๋ฌธ์ ๋ผ๋ ์ ์ด ์ฌ๋ฏธ์๋ค.
์ฌ๊ธฐ์ ๊ทธ๋ํ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ ๋ค์ ๋ค๋ค๋ค.
๊ทธ๋ํ๋ ํฌ๊ฒ
Node(Vertex)
Edge
๋ก ๊ตฌ์ฑ๋๋ค.
Node๋ ํ๋์ State๋ฅผ ๋ํ๋ด๊ณ
Edge๋ Node ์ฌ์ด์ ์ฐ๊ฒฐ ๊ด๊ณ๋ฅผ ์๋ฏธํ๋ค.
๊ฐ์์์๋ ์ฃผ๋ก Directed Graph๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ช ํ๋ค.
A โ B
๊ฐ ์๋ค๊ณ ํด์ ๋ฐ๋์
B โ A
๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐ๊ฒฐ๋ Node๋ค์ ๋ฐ๋ผ๊ฐ๋ ์์๋ฅผ Path๋ผ๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด
A โ B โ C โ D
๊ฐ ํ๋์ Path๋ค.
Edge๊ฐ 3๊ฐ์ด๋ฏ๋ก ์ด ๊ฒฝ๋ก์ ๊ธธ์ด๋ 3์ด๊ณ
ํฌํจ๋ Node์ ๊ฐ์๋ 4๊ฐ๋ค.
์ฌ๊ธฐ์์ ๊ฐ์ธ์ ์ผ๋ก ๋ค์ ํ๋ฒ ์ ๋ฆฌํ ๋งํ๋ ๋ถ๋ถ์ด ์์๋ค.
๋ฐ๋ก
State Space Graph
์
Search Tree
์ ์ฐจ์ด๋ค.
State Space Graph์์๋
ํ๋์ State๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ ๋ฒ๋ง ์กด์ฌํ๋ค.
ํ์ง๋ง Search Tree์์๋ ๊ฐ์ State๊ฐ ์ฌ๋ฌ ๋ฒ ๋ฑ์ฅํ ์ ์๋ค.
์๋ํ๋ฉด Search Tree์ Node๋ ๋จ์ํ State ํ๋๋ฅผ ํํํ๋ ๊ฒ์ด ์๋๋ผ
๊ทธ State์ ๋๋ฌํ๊ธฐ๊น์ง์ ์ ์ฒด ๊ฒฝ๋ก
๋ฅผ ํํํ๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฅผ ๋ค์ด
S โ A โ C
์
S โ B โ C
๊ฐ ์๋ค๊ณ ํด๋ณด์.
State Space Graph์์๋ C๋ผ๋ Node๊ฐ ํ๋๋ง ์กด์ฌํ๋ค.
ํ์ง๋ง Search Tree์์๋
S-A-C
S-B-C
๋ผ๋ ์๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๊ฐ ์๊ธฐ ๋๋ฌธ์
C๊ฐ ๋ ๋ฒ ๋ฑ์ฅํ ์ ์๋ค.
๋ฐ๋ผ์ Search Tree์๋ ์๋นํ ๋ง์ ์ค๋ณต ๊ตฌ์กฐ๊ฐ ์๊ธธ ์ ์๋ค.
State ์์ฒด์
Search ๊ณผ์ ์์ ์ฌ์ฉํ๋ Tree Node๋ ๊ตฌ๋ถํด์ผ ํ๋ค.
State๋ ๋ง ๊ทธ๋๋ก
ํ์ฌ ์ธ๊ณ์ ์ํ
๋ค.
ํ์ง๋ง Tree Node๋ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์
๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๋ ๊ฐ์ง๊ณ ์์ ์ ์๋ค.
State
Parent
Children
Depth
Path Cost
Action
์ฆ,
State โ Search Tree Node
๋ผ๊ณ ์ดํดํ๋ฉด ๋๋ค.
Search Algorithm์์ ๋งค์ฐ ์ค์ํ ๊ฐ๋ ์ด ํ๋ ๋ฑ์ฅํ๋ค.
๋ฐ๋ก Frontier, ๋๋ Fringe๋ค.
Frontier๋
์์ง ํ์ํด์ผ ํ ํ๋ณด Node๋ค์ ์งํฉ
์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
ํ์ ๊ณผ์ ์ ๊ต์ฅํ ๋จ์ํ๊ฒ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Start Node๋ฅผ Frontier์ ๋ฃ๋๋ค.
while Frontier๊ฐ ๋น์ด์์ง ์๋ค๋ฉด
Frontier์์ Node ํ๋๋ฅผ ์ ํํ๋ค.
Goal์ธ์ง ํ์ธํ๋ค.
Goal์ด๋ผ๋ฉด ์ข
๋ฃํ๋ค.
์๋๋ผ๋ฉด Neighbor๋ค์ Frontier์ ๋ฃ๋๋ค.
์ฌ๊ธฐ์ ์ ๋ง ์ค์ํ ๋ถ๋ถ์
Frontier์์ "์ด๋ค Node๋ฅผ ๋จผ์ ์ ํํ ๊ฒ์ธ๊ฐ?"
์ด๋ค.
์ด ์ ํ ๋ฐฉ์์ด ๋ฐ๋ก Search Strategy๊ฐ ๋๋ค.
ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋จ์ํ
๋ต์ ์ฐพ์๋๊ฐ?
๋ง์ผ๋ก ํ๊ฐํ์ง ์๋๋ค.
๊ฐ์์์๋ ๋ค ๊ฐ์ง ๊ธฐ์ค์ ์ฌ์ฉํ๋ค.
ํด๋ต์ด ์กด์ฌํ๋ค๋ฉด ๋ฐ๋์ ์ฐพ์ ์ ์๋๊ฐ?
์ผ๋ง๋ ๋ง์ Node๋ฅผ ์์ฑํ๊ณ ํ์ํด์ผ ํ๋๊ฐ?
์ผ๋ง๋ ๋ง์ Node๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด์ผ ํ๋๊ฐ?
์ฐพ์ ๋ต์ด ์ต์ ๋น์ฉ์ ์ต์ ํด์ธ๊ฐ?
์ด ๋ค ๊ฐ์ง ๊ธฐ์ค์ผ๋ก
๊ฐ ํ์ ์๊ณ ๋ฆฌ์ฆ์ ํน์ง์ ๋น๊ตํ ์ ์๋ค.
์ด๋ฒ ๊ฐ์์์ ๋ค๋ฃจ๋ ํ์ ์ ๋ต์
์ฃผ๋ก Uninformed Search๋ค.
๋ง ๊ทธ๋๋ก ์ถ๊ฐ์ ์ธ ์ ๋ณด ์์ด
๋ฌธ์ ์ ์์ ์ฃผ์ด์ง ์ ๋ณด๋ง์ผ๋ก ํ์ํ๋ค.
๋ํ์ ์ธ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
Breadth-First Search
Uniform-Cost Search
Depth-First Search
Depth-Limited Search
Iterative Deepening Search
๋จผ์ ์ฝ๋ฉํ ์คํธ์์ ์ ๋ง ์์ฃผ ๋ฑ์ฅํ๋ BFS๋ค.
BFS๋
๊ฐ์ฅ ์์ Node๋ถํฐ ํ์ํ๋ค.
์๋ฅผ ๋ค์ด ๋ค์ Tree๊ฐ ์๋ค๊ณ ํด๋ณด์.
A
/ \
B C
/ \ / \
D E F G
BFS์ ํ์ ์์๋
A
โ
B, C
โ
D, E, F, G
๊ฐ ๋๋ค.
์ฆ,
A โ B โ C โ D โ E โ F โ G
์ฒ๋ผ Level ๋จ์๋ก ํ์ํ๋ค.
BFS์์๋ ๋จผ์ ๋ค์ด์จ Node๋ฅผ ๋จผ์ ํ์ํด์ผ ํ๋ค.
๋ฐ๋ผ์ FIFO(First In First Out) ๊ตฌ์กฐ๊ฐ ํ์ํ๋ค.
๋ฐ๋ก Queue๋ค.
Queue
A ์ฝ์
A ์ ๊ฑฐ
B, C ์ฝ์
B ์ ๊ฑฐ
D, E ์ฝ์
C ์ ๊ฑฐ
F, G ์ฝ์
์ด๋ฐ ๋ฐฉ์์ผ๋ก ํ์ํ๋ค.
๊ทธ๋์ BFS ๊ตฌํ์ ๋ณด๋ฉด ๊ฑฐ์ ํญ์
queue<Node> q;
๊ฐ ๋ฑ์ฅํ๋ค.
BFS์ ๊ฐ์ฅ ์ค์ํ ํน์ง์
Edge์ ๋น์ฉ์ด ๋ชจ๋ ๊ฐ๋ค๋ฉด ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์ ์๋ค๋ ๊ฒ
์ด๋ค.
์๋ฅผ ๋ค์ด ๋ชจ๋ ์ด๋ ๋น์ฉ์ด 1์ด๋ผ๋ฉด
ํ ๋ฒ ์ด๋
๋ ๋ฒ ์ด๋
์ธ ๋ฒ ์ด๋
...
์์๋ก ํ์ํ๊ธฐ ๋๋ฌธ์
Goal์ ์ฒ์ ๋ฐ๊ฒฌํ์ ๋์ ๊ฒฝ๋ก๊ฐ ๊ฐ์ฅ ์งง๋ค.
๊ทธ๋์
๋ฏธ๋ก ์ต๋จ ๊ฑฐ๋ฆฌ
๊ฒ์ ๋งต ์ต๋จ ๊ฑฐ๋ฆฌ
์ต์ ์ด๋ ํ์
๊ฐ์ ๋ฌธ์ ์์ BFS๋ฅผ ๋ง์ด ์ฌ์ฉํ๋ค.
์ต๊ทผ ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ ๋ฌธ์ ๋ฅผ ํ๋ฉด์
DFS๋ก ์ ๊ทผํ๋ค๊ฐ ํจ์จ์ฑ ํ
์คํธ์์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฌ๋ ์ด์ ๋ ์ด๊ฒ๊ณผ ์ฐ๊ฒฐ๋๋ค.
์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ธ๋ฐ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๋๊น์ง ํ์ธํ๋ ค๊ณ ํ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ๋ Memory๋ค.
BFS๋ ๊ฐ์ Level์ Node๋ค์ ๋ชจ๋ Frontier์ ์ ์ฅํด์ผ ํ๋ค.
Branching Factor๋ฅผ b,
๊ฐ์ฅ ๊ฐ๊น์ด ํด๋ต์ ๊น์ด๋ฅผ d๋ผ๊ณ ํ๋ฉด
ํ์ํด์ผ ํ๋ Node์ ์๋ ๋๋ต ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๋ค.
1
+ b
+ bยฒ
+ bยณ
+ ...
+ bแต
๋ฐ๋ผ์ ์๊ฐ๋ฟ๋ง ์๋๋ผ
๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ๋งค์ฐ ์ปค์ง ์ ์๋ค.
๊ฐ์์์๋ BFS์์ ํนํ Space Complexity๊ฐ ํฐ ๋ฌธ์ ๋ผ๊ณ ๊ฐ์กฐํ๋ค.
๋ค์์ DFS๋ค.
DFS๋ BFS์ ์์ ํ ๋ฐ๋๋ค.
ํ์ฌ ๊ฐ ์ ์๋ ๊ณณ๊น์ง ์ต๋ํ ๊น๊ฒ ๋ค์ด๊ฐ๋ค.
์๋ฅผ ๋ค์ด ๊ฐ์ Tree๊ฐ ์๋ค๊ณ ํด๋ณด์.
A
/ \
B C
/ \ / \
D E F G
๋ ์๋์ Node๊ฐ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ฉด
DFS๋ ๋๋ต
A
โ
B
โ
D
โ
D์ ์์
โ
...
์ฒ๋ผ ํ์ชฝ ๋๊น์ง ๋ด๋ ค๊ฐ๋ค.
๋ ์ด์ ๊ฐ ๊ณณ์ด ์์ผ๋ฉด ๋ค์ ๋์์
๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ํ์ํ๋ค.
DFS์์๋ ๊ฐ์ฅ ์ต๊ทผ์ ๋ฐ๊ฒฌํ Node๋ฅผ ๋จผ์ ํ์ํ๋ค.
๋ฐ๋ผ์
LIFO
Last In First Out
๊ตฌ์กฐ๊ฐ ์ ํฉํ๋ค.
์ฆ Stack์ด๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌ๊ท ํจ์๋ ๋ด๋ถ์ ์ผ๋ก Call Stack์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
DFS๋ฅผ ์ฌ๊ท๋ก ๊ตฌํํ๋ ๊ฒฝ์ฐ๊ฐ ๊ต์ฅํ ๋ง๋ค.
void dfs(int node) {
visited[node] = true;
for (int next : graph[node]) {
if (!visited[next]) {
dfs(next);
}
}
}
๋๋ ๊ทธ๋ํ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ ์ค๋ฅด๋ ๋ฐฉ์์ด
์ด ์ฌ๊ท DFS์ธ ๊ฒ ๊ฐ๋ค.
DFS์ ๊ฐ์ฅ ํฐ ์ฅ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ค.
BFS๋ ๊ฐ Level์ Node๋ฅผ ๋๋ถ๋ถ ๋ณด๊ดํด์ผ ํ์ง๋ง
DFS๋ ํ์ฌ ํ์ ์ค์ธ ๊ฒฝ๋ก ์ค์ฌ์ผ๋ก ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉด ๋๋ค.
๊ทธ๋์ ์ผ๋ฐ์ ์ผ๋ก BFS๋ณด๋ค ํจ์ฌ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
๋ํ ์ ๋ต์ด ๊น์ ์์น์ ์๊ณ
์ด ์ข๊ฒ ํด๋น ๋ฐฉํฅ๋ถํฐ ํ์ํ๋ค๋ฉด ๋งค์ฐ ๋น ๋ฅด๊ฒ ๋ต์ ์ฐพ์ ์๋ ์๋ค.
ํ์ง๋ง DFS์๋ ์ค์ํ ๋ฌธ์ ๊ฐ ์๋ค.
๋จผ์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๋ณด์ฅํ์ง ์๋๋ค.
์๋ฅผ ๋ค์ด
A โ B โ C โ D โ E โ Goal
์ด๋ผ๋ ๊ฒฝ๋ก๋ฅผ ๋จผ์ ๋ฐ๊ฒฌํ๋๋ผ๋
์ค์ ๋ก๋
A โ F โ Goal
์ด๋ผ๋ ํจ์ฌ ์งง์ ๊ฒฝ๋ก๊ฐ ์กด์ฌํ ์ ์๋ค.
DFS๋ ์ฒซ ๋ฒ์งธ Goal์ ์ฐพ์๋ค๊ณ ํด์
๊ทธ๊ฒ์ด ์ต์ ์ด๋ผ๋ ๋ณด์ฅ์ด ์๋ค.
๋ํ Cycle์ด ์กด์ฌํ๋ Graph์์ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ผ๋ฉด
A โ B โ C โ A โ B โ C โ ...
์ฒ๋ผ ๋ฌดํํ ๋ฐ๋ณต๋ ์๋ ์๋ค.
๊ทธ๋์ ์ค์ ๊ตฌํ์์๋ ๋ณดํต
visited[]
๋ฅผ ์ฌ์ฉํ๋ค.
๋์ ์ฐจ์ด๋ฅผ ๊ฐ์ฅ ๋จ์ํ๊ฒ ํํํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
| BFS | DFS |
|---|---|
| ๋๊ฒ ํ์ | ๊น๊ฒ ํ์ |
| Queue | Stack / Recursion |
| ์์ Solution์ ์ ๋ฆฌ | ๊น์ Solution์ ์ ๋ฆฌํ ์ ์์ |
| ๋์ผ ๋น์ฉ์์ ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ | ์ต๋จ ๊ฒฝ๋ก ๋ณด์ฅ X |
| ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ํผ | ์๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ |
๊ฒฐ๊ตญ
DFS์ BFS ์ค ๋ฌด์์ด ๋ ์ข์ ์๊ณ ๋ฆฌ์ฆ์ธ๊ฐ?
๋ผ๋ ์ง๋ฌธ์ ์๋ฏธ๊ฐ ์๋ค.
๋ฌธ์ ๊ฐ ๋ฌด์์ ์๊ตฌํ๋์ง๋ฅผ ๋จผ์ ๋ด์ผ ํ๋ค.
์ฌ๊ธฐ์์ BFS์ ํ๊ณ๊ฐ ํ๋ ๋ฑ์ฅํ๋ค.
BFS๋ ์ด๋ ํ์๊ฐ ๊ฐ์ฅ ์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋๋ค.
ํ์ง๋ง
์ด๋ ํ์๊ฐ ์ ๋ค
=
๋น์ฉ์ด ๊ฐ์ฅ ์๋ค
๋ ํญ์ ์ฑ๋ฆฝํ์ง ์๋๋ค.
์๋ฅผ ๋ค์ด
A โ B โ Goal
์ด๋ผ๋ ๊ฒฝ๋ก์ ๋น์ฉ์ด
A โ B = 100
B โ Goal = 100
Total = 200
์ด๋ผ๊ณ ํด๋ณด์.
๋ฐ๋ฉด
A โ C โ D โ Goal
์ ์ด๋ ํ์๋ ๋ ๋ง์ง๋ง
10 + 10 + 10 = 30
์ผ ์๋ ์๋ค.
BFS๋ ์ด๋ ํ์๋ง ๋ณด๋ฉด ์ฒซ ๋ฒ์งธ ๊ฒฝ๋ก๋ฅผ ์ ํํ ์ ์๋ค.
ํ์ง๋ง ์ง์ง ์ต์ ๋น์ฉ ๊ฒฝ๋ก๋ ๋ ๋ฒ์งธ๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด Uniform Cost Search(UCS)๋ค.
UCS๋ Frontier์์
๊ฐ์ฅ Path Cost๊ฐ ์์ Node
๋ถํฐ ์ ํํ๋ค.
๋ฐ๋ผ์ ์ผ๋ฐ Queue๊ฐ ์๋๋ผ
Priority Queue๋ฅผ ์ฌ์ฉํ๋ค.
Frontier
Path Cost 3
Path Cost 7
Path Cost 12
๊ฐ ์๋ค๋ฉด ํญ์ Cost 3๋ถํฐ ํ์ํ๋ค.
์ฆ,
์ง๊ธ๊น์ง ๋ค์ด๊ฐ ๋น์ฉ์ด ๊ฐ์ฅ ์์ ๊ฒฝ๋ก๋ถํฐ ํ์ฅํ๋ค.
๋ชจ๋ Step Cost๊ฐ ๋์ผํ๋ค๋ฉด
UCS๋ BFS์ ๋์ผํ๊ฒ ๋์ํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ ํ ์์ Step Cost ์กฐ๊ฑด์์๋
์ต์ ๋น์ฉ์ Optimal Solution์ ์ฐพ์ ์ ์๋ค.
DFS์ ๊ฐ์ฅ ํฐ ๋ฌธ์ ์ค ํ๋๋
๋์์ด ๊น๊ฒ ๋ค์ด๊ฐ ์ ์๋ค.
๋ ๊ฒ์ด๋ค.
๊ทธ๋์ ์์ ๊น์ด์ ์ ํ์ ๋ ์ ์๋ค.
์ด๊ฒ์ด Depth-Limited Search๋ค.
์๋ฅผ ๋ค์ด
Depth Limit = 3
์ด๋ผ๊ณ ํ๋ฉด
Depth 0
Depth 1
Depth 2
Depth 3
๊น์ง๋ง ํ์ํ๊ณ
๊ทธ ์๋๋ ํ์ํ์ง ์๋๋ค.
์ฝ๊ฒ ๋งํ๋ฉด
DFS์ ์ต๋ ๊น์ด ์ ํ์ ์ถ๊ฐํ ๋ฐฉ์
์ด๋ค.
๊ทธ๋ฐ๋ฐ Depth Limit์ ์ผ๋ง๋ก ์ค์ ํด์ผ ํ ๊น?
1?
3?
10?
100?
์ ๋ต์ด ์ด๋์ ์๋์ง ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์
์ ์ ํ ๊ฐ์ ๋ฏธ๋ฆฌ ๊ฒฐ์ ํ๊ธฐ ์ด๋ ต๋ค.
๊ทธ๋์ ๋์จ ๋ฐฉ๋ฒ์ด Iterative Deepening Search(IDS)๋ค.
์์ด๋์ด๋ ๋งค์ฐ ๋จ์ํ๋ค.
Depth Limit = 0์ผ๋ก DFS
์์ผ๋ฉด
Depth Limit = 1๋ก DFS
์์ผ๋ฉด
Depth Limit = 2๋ก DFS
์์ผ๋ฉด
Depth Limit = 3๋ก DFS
...
์ ๋ต์ด ๋์ฌ ๋๊น์ง Depth Limit์ ๊ณ์ ์ฆ๊ฐ์ํจ๋ค.
๋๋ ์ด ๋ถ๋ถ์ ๋ณด๊ณ ์ฒ์์๋
"์ด๊ฑฐ ๋๋ฌด ๋นํจ์จ์ ์ธ ๊ฒ ์๋๊ฐ?"
๋ผ๋ ์๊ฐ์ด ๋ค์๋ค.
์๋ฅผ ๋ค์ด Depth 3๊น์ง ๊ฐ๋ ค๋ฉด
Depth 1 ํ์
Depth 2 ํ์
Depth 3 ํ์
์ ๋ฐ๋ณตํ๋ฏ๋ก
์์ชฝ Node๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ฐฉ๋ฌธํ๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ Tree ํ์์์๋ ๋ณดํต
๊ฐ์ฅ ๋ง์ง๋ง Level์ Node ์๊ฐ ์๋์ ์ผ๋ก ๋ง๋ค.
์๋ฅผ ๋ค์ด Branching Factor๊ฐ 10์ด๋ฉด
Depth 0 โ 1๊ฐ
Depth 1 โ 10๊ฐ
Depth 2 โ 100๊ฐ
Depth 3 โ 1,000๊ฐ
Depth 4 โ 10,000๊ฐ
๊ฐ ๋๋ค.
์ฆ ์์ Level์ ๋ช ๋ฒ ๋ฐ๋ณตํ๋ ๋น์ฉ๋ณด๋ค
๊ฐ์ฅ ๊น์ Level์ ํ์ํ๋ ๋น์ฉ์ด ํจ์ฌ ํฌ๋ค.
๊ทธ๋์ ์๊ฐ๋ณด๋ค ๋ฐ๋ณต ํ์์ ์ํด๊ฐ ํฌ์ง ์๋ค.
Iterative Deepening์ ๋ชฉ์ ์ ๊ฝค ๋ช ํํ๋ค.
DFS์ ๋ฎ์ Memory ์ฌ์ฉ๋
+
BFS์ ์์ Solution ํ์ ๋ฅ๋ ฅ
์ ํจ๊ป ์ป๋ ๊ฒ์ด๋ค.
๊ฐ์์์๋
DFS์ Space Advantage์ BFS์ Shallow-Solution Advantage๋ฅผ ํจ๊ป ์ป๋ ๋ฐฉ์
์ผ๋ก ์ค๋ช ํ๋ค.
Step Cost๊ฐ ๋์ผํ ๊ฒฝ์ฐ
IDS ์ญ์ ์์ Goal๋ถํฐ ๋ฐ๊ฒฌํ๊ธฐ ๋๋ฌธ์ Optimal Solution์ ์ฐพ์ ์ ์๋ค.
์ฌ๊ธฐ๊น์ง ๋ณด๊ณ ๋๋ ํ์ ์๊ณ ๋ฆฌ์ฆ๋ค์ด
์ฌ์ค ์์ ํ ๋ค๋ฅธ ์๊ณ ๋ฆฌ์ฆ์ฒ๋ผ ๋๊ปด์ง์ง ์์๋ค.
๊ธฐ๋ณธ ๊ตฌ์กฐ๋ ๊ฑฐ์ ๋์ผํ๋ค.
Frontier์์ Node๋ฅผ ํ๋ ๊บผ๋ธ๋ค.
โ
Goal์ธ์ง ํ์ธํ๋ค.
โ
Neighbor๋ฅผ ์ถ๊ฐํ๋ค.
โ
๋ฐ๋ณตํ๋ค.
๋ฌ๋ผ์ง๋ ๊ฒ์ ๋ฑ ํ๋๋ค.
Frontier์์ ์ด๋ค Node๋ฅผ ๋จผ์ ๊บผ๋ผ ๊ฒ์ธ๊ฐ?
์ด๋ค.
BFS๋
๊ฐ์ฅ ์์ Node
DFS๋
๊ฐ์ฅ ๊น์ Node
Uniform Cost Search๋
ํ์ฌ๊น์ง ๋น์ฉ์ด ๊ฐ์ฅ ์์ Node
๋ฅผ ์ ํํ๋ค.
์ด ์ ํ ๊ธฐ์ค์ด ๋ฌ๋ผ์ง๋ฉด์
์๊ณ ๋ฆฌ์ฆ์ ์ฑ์ง๋ ์์ ํ ๋ฌ๋ผ์ง๋ค.
๊ฐ์ ๋ง์ง๋ง์๋ ์ง๊ธ๊น์ง ๋ค๋ฃฌ Search Algorithm์
Completeness, Time, Space, Optimality ๊ด์ ์์ ๋น๊ตํ๋ค.
ํฐ ํน์ง๋ง ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
| Algorithm | Complete | Optimal | ํต์ฌ ํน์ง |
|---|---|---|---|
| BFS | O | Step Cost๊ฐ ๋์ผํ๋ฉด O | ์์ Node๋ถํฐ ํ์ |
| Uniform Cost | O | O | Path Cost๊ฐ ์์ ์์๋ก ํ์ |
| DFS | ์ผ๋ฐ์ ์ผ๋ก X | X | ๊น๊ฒ ํ์, Memory ํจ์จ์ |
| Depth-Limited | Limit์ ๋ฐ๋ผ ๊ฒฐ์ | X | DFS์ ์ต๋ ๊น์ด ์ค์ |
| Iterative Deepening | O | Step Cost๊ฐ ๋์ผํ๋ฉด O | DFS์ Memory + BFS์ ์ฅ์ |
๊ฒฐ๊ตญ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ ์ง๋
๋ฌธ์ ๊ฐ ๋ฌด์์ ์๊ตฌํ๋๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
์ด๋ฒ Lesson์ ๊ฐ์ธ์ ์ผ๋ก ๋ค๋ฅธ ๋จ์๋ณด๋ค ํจ์ฌ ์ต์ํ๋ค.
ํ๊ต์์ ์ปดํจํ
๋ฌธ์ ์ ์๊ณ ๋ฆฌ์ฆ ๊ณผ๋ชฉ์ ๋ค์ผ๋ฉฐ
Graph, Tree, BFS, DFS ๊ฐ์ ๋ด์ฉ์ ์ด๋ฏธ ๊ณต๋ถํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋๋ ์ฃผ๋ก
DFS ๊ตฌํํ๊ธฐ
BFS ๊ตฌํํ๊ธฐ
์ต๋จ ๊ฒฝ๋ก ์ฐพ๊ธฐ
๊ทธ๋ํ ํ์ํ๊ธฐ
๊ฐ์ ์๊ณ ๋ฆฌ์ฆ ์์ฒด์ ์ง์คํ๋ ๊ฒ ๊ฐ๋ค.
ํ์ง๋ง ์ด๋ฒ ๊ฐ์์์๋ ์กฐ๊ธ ๋ ์์ ๊ฐ๋ ์์ ์ ๊ทผํ๋ค.
ํ์ค์ ๋ฌธ์
โ
State์ Action์ผ๋ก ์ถ์ํ
โ
State Space ๊ตฌ์ฑ
โ
Graph๋ก ํํ
โ
Search Strategy ์ ํ
โ
Solution ํ์
์ด๋ผ๋ ์ ์ฒด ํ๋ฆ์ผ๋ก ๋ฐ๋ผ๋ณธ๋ค.
๊ทธ๋์ ์์ ์๋
"๊ทธ๋ํ๊ฐ ์ฃผ์ด์ก์ผ๋๊น BFS๋ฅผ ์ฌ์ฉํ๋ค."
์ ๋๋ก ์๊ฐํ๋ค๋ฉด,
์ด๋ฒ์๋
"ํ์ค์ ๋ฌธ์ ์์ฒด๋ฅผ State Space๋ก ํํํ๋ฉด ๊ฒฐ๊ตญ Graph Search Problem์ผ๋ก ๋ฐ๊ฟ ์ ์๊ตฌ๋."
๋ผ๋ ์๊ฐ์ ํ๊ฒ ๋์๋ค.
์ด ์ฐจ์ด๊ฐ ์๊ฐ๋ณด๋ค ์ปธ๋ค.
์ฝ๋ฉํ
์คํธ๋ฅผ ํ๋ค ๋ณด๋ฉด
DFS์ BFS ๋ฌธ์ ๋ฅผ ์ ๋ง ๋ง์ด ๋ง๋๊ฒ ๋๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๋๋ ๊ฐ๋
๊ทธ๋ํ ๋ฌธ์ ๋ค?
โ ์ผ๋จ DFS?
์ฒ๋ผ ์ต๊ด์ ์ผ๋ก ์ ๊ทผํ ๋๊ฐ ์๋ค.
์ต๊ทผ ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ ๋ฌธ์ ์์๋
์ฒ์์๋ ๋ณ ์๊ฐ ์์ด DFS ์ฌ๊ท๋ฅผ ์์ฑํ๋ค.
์ ๋ต ์์ฒด๋ ๋์์ง๋ง
๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ๊ณ์ ํ์ํ๋ค ๋ณด๋ ํจ์จ์ฑ ํ
์คํธ์์ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๋ฌธ์ ์์ ์๊ตฌํ ๊ฒ์
๋์ฐฉ ๊ฐ๋ฅํ๊ฐ?
๊ฐ ์๋๋ผ
์ต์ ๋ช ์นธ์ ์ง๋์ผ ํ๋๊ฐ?
์๋ค.
์ฆ ๋์ผํ ๋น์ฉ์ Graph์์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๋ฌธ์ ์๊ณ
์ด ๊ฒฝ์ฐ์๋ Level ์์๋๋ก ํ์ํ๋ BFS๊ฐ ํจ์ฌ ์์ฐ์ค๋ฌ์ด ์ ํ์ด์๋ค.
์ด๋ฒ ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๋ค์ ๋๊ผ๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ ์ค ์๋ ๊ฒ๋ ์ค์ํ์ง๋ง,
๋ฌธ์ ์ ํน์ฑ์ ๋ณด๊ณ ์ด๋ค Search Strategy๋ฅผ ์ ํํด์ผ ํ๋์ง๋ฅผ ํ๋จํ๋ ๊ฒ์ด ํจ์ฌ ์ค์ํ๋ค.
์ด๋ฒ Lesson 3์ ํต์ฌ์ ํ ๋ฌธ์ฅ์ผ๋ก ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Problem Solving์ ๊ฒฐ๊ตญ ๊ฐ๋ฅํ State๋ค์ ํ์ํ๋ฉด์ Initial State์์ Goal State๊น์ง์ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ณผ์ ์ด๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ ๋ฌธ์ ๋ฅผ
State
Action
Goal
Cost
๋ก ์ถ์ํํ๋ฉด
Graph Search Problem์ผ๋ก ํํํ ์ ์๋ค.
๊ทธ Graph๋ฅผ ์ด๋ค ์์๋ก ํ์ํ๋๋์ ๋ฐ๋ผ
BFS
DFS
Uniform Cost Search
Depth-Limited Search
Iterative Deepening Search
์ ๊ฐ์ ์๋ก ๋ค๋ฅธ Search Strategy๊ฐ ๋ง๋ค์ด์ง๋ค.
์์ ์ ๋ฐฐ์ ๋ DFS์ BFS๋ฅผ ๋ค์ ๋ณต์ตํ ๋จ์์ด๊ธฐ๋ ํ์ง๋ง,
์ด๋ฒ์๋ ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ์ ๋์ด
์ Search๊ฐ ๋ฌธ์ ํด๊ฒฐ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ ๋๋๊ฐ
๋ฅผ ์ดํดํ ์ ์์๋ ๋จ์์ด์๋ค.