๐Ÿ” ์ธ๊ณต์ง€๋Šฅ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ

avatar
2025.04.07
ยท
14 min read

๐Ÿ” ํƒ์ƒ‰(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์˜ ์žฅ์ ์„ ๊ฒฐํ•ฉํ•˜์—ฌ ์ตœ์  ๊ฒฝ๋กœ ํƒ์ƒ‰

f(n) = g(n) + h(n) ๊ณต์‹ ํ™œ์šฉ

๊ทธ๋ฆฌ๋”” ํƒ์ƒ‰(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) โ†’ ์Šค๋„์ฟ , ์‹œ๊ฐ„ํ‘œ ์ตœ์ ํ™”, ๋กœ๋ด‡ ์ œ์–ด







- ์ปฌ๋ ‰์…˜ ์•„ํ‹ฐํด