profile-img
The merit of an action lies in finishing it to the end.
slide-image

Greedy Best-First Search

Evaluation Func & Heuristic Func

  1. Evaluation func f(n)
    1. node n์˜ estimated cost
  2. Heuristic func h(n)
    1. node n์—์„œ goal state๋กœ ๊ฐ€๋Š” ๊ฐ€์žฅ ์ €๋ ดํ•œ ๋น„์šฉ์˜ ์ถ”์ •์น˜
    2. root-finding problem์—์„œ ๊ฐ ๋„์‹œ๋ณ„ ์ง์„ ๊ฑฐ๋ฆฌ ํ•จ์ˆ˜

Greedy Best-First Search

  1. ์ •์˜: best-first search์˜ ์ผ์ข… → h(n) value๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๋…ธ๋“œ๋ฅผ ํ™•์žฅ
    1. table์„ ์œ ์ง€ํ•˜๋Š” ๊ฒฝ์šฐ ๊ทธ๋ž˜ํ”„ (์ค‘๋ณต์„ ๊ณ ๋ ค)
    2. ์—†์• ๋Š” ๊ฒฝ์šฐ tree search (์ค‘๋ณต์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ)
  2. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Completeness → ์‚ฌ์ดํด ๋ฐœ์ƒ
      1. Not complete: tree-like search
      2. complete: graph search
    2. Not cost-optimal
    3. Time Complexity: O(b^m)
    4. Space Complexity: O(b^m)

A* Search

  1. ์ •์˜: f(n) = g(n) + h(n)์„ evaluation function์œผ๋กœ ์ด์šฉ
    1. g(n): n๊นŒ์ง€ ์˜ค๋Š” ๋ฐ ๋น„์šฉ
    2. h(n): n๋ถ€ํ„ฐ goal๊นŒ์ง€ ๊ฐ€๋Š” ๋ฐ ์ถ”์ •๋˜๋Š” ๋น„์šฉ
  2. Admissible Heuristic Function
    1. goal์— ๋„๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ๋น„์šฉ์„ ์ ˆ๋Œ€ overestimateํ•˜์ง€ ์•Š์Œ
    2. h(n) <= h*(n) : h(n)์€ ์‹ค์ œ ๊ฐ’
    3. admissible heuristic function์„ ์ด์šฉํ•œ๋‹ค๋ฉด A* search๋Š” cost-optimalํ•˜๋‹ค.
  3. Consistent Heuristic Function
    1. consistent: ๋ชจ๋“  ๋…ธ๋“œ n๊ณผ a๋ผ๋Š” ํ–‰๋™์œผ๋กœ ์ƒ์„ฑ๋œ ์ž์‹ n’์ด ์žˆ์„ ๋•Œ
    2. h(n) <= c(n,a,n') + h(n') ์„ฑ๋ฆฝ
    3. consistent heuristic function์„ ์ด์šฉํ•œ๋‹ค๋ฉด A* search๋Š” cost-optimalํ•˜๋‹ค → ๋ชจ๋“  consistent heuristic์€ admissibleํ•˜๋‹ค.
  4. Search contours
    1. A*๋Š” ๊ฐ€์žฅ ์ ์€ f-cost๋ฅผ ๊ฐ€์ง„ frontier ๋…ธ๋“œ๋ฅผ ํ™•์žฅํ•˜๋ฏ€๋กœ ๋“ฑ๊ณ ์„ ์ด ์ปค์ง€๋ฉด์„œ cost๊ฐ€ ์ ์  ์ปค์ง€๋Š” ํ˜•ํƒœ์ด๋‹ค.
    2. ์ข‹์€ ํœด๋ฆฌ์Šคํ‹ฑ์„ ๊ฐ€์กŒ๋‹ค๋ฉด, ๋“ฑ๊ณ ์„ ์€ ์ ์  goal state์— ๊ฐ€๊นŒ์›Œ์งˆ ๊ฒƒ์ด๋ฉฐ ์ตœ์  ๊ฒฝ๋กœ์— ๊ฐ€๊นŒ์›Œ์งˆ์ˆ˜๋ก ๋” ์ข์•„์งˆ ๊ฒƒ์ด๋‹ค.
  5. Optimally Efficient → C* : optimal cost
    1. surely expanded: f(n)<C*
    2. depends: f(n)=C*
    3. never expended: f(n) > C*
  6. Weighted A* Search
    1. ์ •์˜: C์™€ WC*์‚ฌ์ด์˜ cost๋ฅผ ๊ฐ€์ง€๋Š” ํ•ด๋‹ต์„ ์ฐพ๋Š” ๊ฒƒ
    2. f(n)=g(n)+W*h(n)
    3. Suboptimal search techniques
      1. bounded suboptimal search: ์‹ค์ œ optimal cost์˜ 1/2๋ฐฐ ..
      2. bounded-cost search: ์‹ค์ œ cost๋Š” ๋ชจ๋ฅด๊ณ  ์–ผ๋งˆ ์•ˆ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ๋กœ ์ฐพ๊ธฐ
      3. unbounded-cost search
      4. beam search: ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ ๊ฒŒ ์œ ์ง€ → ๊ฐ€์žฅ ์ข‹์€ score์ธ ๊ฒƒ๋งŒ ์œ ์ง€ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋Š” ๊ฐ€์ง€์น˜๊ธฐ
  7. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete
    2. Cost-optimal
    3. Time-complexity <= O(b^d)
    4. Space complexity <= O(b^d)

Iterative-Deepening A* Search

  1. ์ •์˜ (IDA*)
    1. iterative deepening search + A* Search
    2. ์ด์ „ ๋ฐ˜๋ณต์—์„œ cutoff๋ฅผ ์ดˆ๊ณผํ•˜์˜€๋˜, f-cost๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ์ž„์˜์˜ ๋…ธ๋“œ๋ฅผ cutoff → ๊ธฐ์ค€๋ณด๋‹ค ํฌ์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ณ„์† ๋‚ด๋ ค๊ฐ
  2. ํŠน์ง•
    1. f-cost๊ฐ€ ๋ชจ๋‘ ์ •์ˆ˜์ผ ๋•Œ ์ž˜ ์ž‘๋™
    2. f-cost๊ฐ€ ๋ชจ๋‘ ๋‹ค๋ฅธ ๋…ธ๋“œ์ผ ๋•Œ, ๋ฐ˜๋ณต ์ˆซ์ž๊ฐ€ ๊ฒฐ๊ตญ state์ˆ˜์™€ ๊ฐ™์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.

Recursive Best-First Search

  1. ์ •์˜ (RBFS)
    1. recursive depth-first search + best-first search
    2. f-limit์„ ํ˜„์žฌ ๋…ธ๋“œ๊ฐ€ ์ดˆ๊ณผํ•œ๋‹ค๋ฉด ๋‹ค์‹œ ๊ฐ์•„ ๋‚ด๋ ค๊ฐ€์„œ alternative path๋กœ ์ด๋™
  2. ์ง„ํ–‰ ๊ณผ์ •
    1. ์ผ๋‹จ ์ฒ˜์Œ limit = ๋ฌดํ•œ๋Œ€
    2. ๋‹ค์Œ ๊ฒฝ๋กœ ์ค‘ ๊ฐ€์žฅ ์ž‘์€ cost์ธ ์ชฝ์„ ์„ ํƒ, limit์€ ๋‘ ๋ฒˆ์งธ๋กœ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝ
    3. ๋‚ด๋ ค๊ฐ€์„œ limit๊ณผ cost์˜ ๊ฐ’์„ ๋น„๊ต → cost๊ฐ€ limit๋ณด๋‹ค ํฌ๋ฉด ํ•ด๋‹น cost๋ฅผ limit์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , limit๊ณผ ๊ฐ™์€ cost๋ฅผ ๊ฐ€์กŒ๋˜ node๋ฅผ ํ™•์ธ
  3. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete
    2. Cost-optimal
    3. time complexity <= O(b^d)
    4. space complexity <= O(bd)
      • ์ง€๋‚˜์น˜๊ฒŒ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ → ๊ณ„์† ๊ฐ™์€ state๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ํƒ์ƒ‰

Simplified Memory-Bounded A* Search

  1. ์ •์˜
    1. A* search๋ฅผ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰ ์ฐฐ ๋•Œ๊นŒ์ง€ ์ง„ํ–‰
    2. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฝ‰ ์ฐผ๋‹ค๋ฉด f-cost๊ฐ€ ๊ฐ€์žฅ ํฐ worst leaf node๋ฅผ ๋ฒ„๋ฆผ
    3. ์žŠ์–ด๋ฒ„๋ฆฐ ๋…ธ๋“œ์˜ ๊ฐ’์„ ๋‹ค์‹œ ๋ถ€๋ชจ์—๊ฒŒ ์ „๋‹ฌ
  2. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete
    2. Cost-optimal
    3. time complexity <= O(b^d)
    4. space complexity <= O(b^d)
'School/COSE361 ์ธ๊ณต์ง€๋Šฅ' Related Articles +

Example Problems

  1. Robotic Vacuum Cleaner
  2. 8-Puzzle
  3. 8-queens
  4. Route-finding problem

Solving Problems by Searching

์šฉ์–ด ์ •์˜

  1. Problem formulation: ์–ด๋–ค ๊ณ ๋ คํ•  state, action์„ ๊ฒฐ์ •ํ• ์ง€ ์ •ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค → ๋ชฉํ‘œ๋Š” ์ฃผ์–ด์ ธ ์žˆ์Œ
  2. ๋ฌธ์ œ๋Š” state space, initial state, goal state, action, transition model, action cost function์œผ๋กœ ๊ตฌ์„ฑ
  3. action์˜ ์—ฐ์†์€ path๋ฅผ ๊ตฌ์„ฑ
  4. solution: initial state→goal state๋กœ ๊ฐ€๋Š” path
  5. optimal solution: path cost๊ฐ€ ๊ฐ€์žฅ ์ ์€ ํ•ด๋‹ต
  6. search: ๋ชฉํ‘œ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ–‰๋™์˜ ์—ฐ์†์„ ์ฐพ๋Š” ๊ฒƒ
  7. execution phase์—์„œ ํ–‰๋™์„ ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์”ฉ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Abstraction

  1. ์ •์˜: ํ‘œํ˜„์— ํ•„์š” ์—†๋Š” ๋””ํ…Œ์ผ์€ ๊ฐ์ถ”๋Š” ๊ฒƒ
    1. Useful abstraction
    2. Valid abstraction
    3. level of abstraction

State space

  1. ์ •์˜: ํ™˜๊ฒฝ์ด ์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ state์˜ ์ง‘ํ•ฉ
  2. ๊ทธ๋ž˜ํ”„๋กœ ํ‘œํ˜„: vertices → state, edges → actions
  3. solution

Search Tree

  1. Node expansion: Node generation, parent / child / successor node
  2. reached state: ํ•ด๋‹น state์— ๋งž๋Š” ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋œ ์ƒํƒœ
  3. frontier: unexpanded node์˜ ์ง‘ํ•ฉ
  4. redundent path and cycle ์‹ ๊ฒฝ์“ฐ๋ฉด → graph search, ์•„๋‹ˆ๋ฉด → tree-like search

ํƒ์ƒ‰ ์ „๋žต ๋ฐ ์„ฑ๋Šฅ ํ‰๊ฐ€

  1. ํƒ์ƒ‰ ์ „๋žต
    1. FIFO
    2. LIFO
    3. Highest priority first
  2. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. completeness
    2. cost optimality
    3. time complexity
    4. space complexity

Task Environment์˜ ํŠน์ง•

  • Task environment: ์„ฑ๋Šฅํ‰๊ฐ€, ํ™˜๊ฒฝ, actuator, sensor
  • fully observable, partially observable, unobservable ⇒ sensor
  • deterministic, nondeterministic, stochastic ⇒ transition model
  • discrete, continuous ⇒ state, action, sensor, time
  • known, unknown ⇒ laws of physics
  • single, multiagent ⇒ agent
  • episodic, sequential ⇒ dependency
  • static, dynamic, semi-dynamic ⇒ state and action
  • fully observable, deterministic, known environment → solution = fixed sequence of actions

Uninformed Searches

Breadth-First Search

  1. ์ •์˜: ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ํ™•์žฅ๋˜๊ณ , ๋ฃจํŠธ ๋…ธ๋“œ์˜ ์ž์‹์ด ํ™•์žฅ๋˜๊ณ , ๊ทธ ๋‹ค์Œ ๊ทธ๋“ค์˜ ์ž์‹์ด ํ™•์žฅ๋˜๊ณ … ํ•˜๋Š” ์‹
  2. ์ˆ˜๋„์ฝ”๋“œ ํŠน์ง•
    • IsGoal ํ•จ์ˆ˜: frontier์— FIFO queue๋ฅผ ์‚ฌ์šฉ
    • reached: ๋…ธ๋“œ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด reached list์— ์ €์žฅ
  3. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete: ์œ ํ•œํ•œ branching factor, ์œ ํ•œ/๋ฌดํ•œ state space
    2. Cost optimalํ•˜์ง€ ์•Š์Œ
    3. time complexity: O(b^d) → b: branching factor, d: ๊ฐ€์žฅ ์–•์€ ํ•ด
    4. space complexity: O(b^d)
    5. ๋‹ต์ด ์žˆ์œผ๋ฉด ๋ฌด์กฐ๊ฑด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.

Uniform-Cost Search

  1. ์ •์˜: ๊ฐ€์žฅ ์ ์€ path cost g(n)์„ ๊ฐ€์ง„ ๋…ธ๋“œ n์œผ๋กœ ํ™•์žฅ
  2. ์ˆ˜๋„์ฝ”๋“œ ํŠน์ง•
    • reached: lookup table → key problem.Initial & value node
    • child.PathCost < reached[s].PathCost : ๋ฐฉ๋ฌธ์€ ์ด๋ฏธ ํ•œ ์ƒํƒœ์—์„œ ๋น„๊ต๋งŒ
    • late goal test
  3. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete: ๋ชจ๋“  cost๊ฐ€ ์–‘์ˆ˜๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ์–ด์•ผ ํ•จ
    2. Cost-Optimal
    3. Time complexity: O(b^{1+\lfloor{C/\epsilon}\rfloor})
    4. Space complexity: O(b^{1+\lfloor{C/\epsilon}\rfloor}) → C*: optimal solution์˜ cost
  4. ํ•˜๋‚˜๋งŒ ์„ ํƒํ•˜๋ ค๋ฉด time๋ณด๋‹ค๋Š” space๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ํ•„์š”

Depth-First Search

  1. ์ •์˜: Frontier์— ์žˆ๋Š” ๊ฐ€์žฅ ๊นŠ์€ ๋…ธ๋“œ๋ฅผ ํ™•์žฅ
    • backing search: ๋‹จ 1๊ฐœ์˜ successor๋งŒ์ด ์ƒ์„ฑ๋จ → ๋ถ€๋ถ„์ ์œผ๋กœ ํ™•์žฅ๋œ ๋…ธ๋“œ๋Š” ๋‹ค์Œ ๋ฒˆ์— ํ™•์žฅ๋  ๋…ธ๋“œ์— ๋Œ€ํ•ด์„œ ๊ธฐ์–ต
    • ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ˜„์žฌ ์ƒํƒœ ์„ค๋ช…์„ ์ง์ ‘ ๋ณ€๊ฒฝํ•จ์œผ๋กœ์จ successor ์ƒ์„ฑ → backtrack์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ
  2. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Completeness
      • not complete: infinite state space, tree-like search
      • complete: finite, graph
    2. Not cost-optimal
    3. Time complexity: $O(b^m)$ → m: ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ๊นŠ์ด
    4. Space complexity
      1. O(b^m): graph search → backtracking ์ •๋ณด๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•˜๋ฏ€๋กœ
      2. O(bm): tree-like search → ํŠธ๋ฆฌ ์„œ์น˜๋ฅผ ํ•˜๋ฉด completeํ•ด์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ
      3. O(m): backtracking search

Depth-Limited Search

  1. ์ •์˜: depth limit l์ด ์ •ํ•ด์ ธ ์žˆ์Œ → ๊นŠ์ด l์ธ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ๋Š” successor๊ฐ€ ์—†๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ทจ๊ธ‰
  2. ์ˆ˜๋„์ฝ”๋“œ ํŠน์ง•
    1. result ← cutoff
  3. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Not complete
    2. Not cost-optimal
    3. time complexity: $O(b^l)$ → l: depth limit
    4. space complexity: $O(bl)$ → ๋ฐฉ๋ฌธํ•œ ๋…ธ๋“œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ

Iterative Deepening Search

  1. ์ •์˜: depth-limited search + increasing limits
  2. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete
    2. Not cost-optimal
    3. Time complexity: O(b^d)
    4. Space complexity: O(bd) → ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ
  3. ํŠน์ง•
    1. depth first search์™€ breadth first search์˜ ์žฅ์ ์„ ๋ชจ๋‘ ํฌํ•จ
    2. hybrid approach๋กœ ์ด์šฉ ๊ฐ€๋Šฅ
    3. state space๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ณด๋‹ค ํฌ๊ณ  depth๊ฐ€ ์•Œ๋ ค์ง€์ง€ ์•Š์•˜์„ ๋•Œ ์ด์šฉ
    4. Iterative lengthening search: cost๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ๋ฉด cost๊ฐ€ ์ปค์ง€๋Š” ๋ฐฉ์‹์œผ๋กœ deepening

Bidirectional Search

  1. ์ •์˜: 2๊ฐœ์˜ frontier๋กœ ํ™•์žฅ → 1๊ฐœ๋Š” initial state, 1๊ฐœ๋Š” goal state → ์ค‘๊ฐ„์—์„œ ๋งŒ๋‚˜๊ธฐ๋ฅผ ๊ธฐ์›
  2. ์ˆ˜๋„์ฝ”๋“œ ํŠน์ง•
    1. solution ์„ ํƒ ์‹œ ์–ด๋–ค ๋ฐฉํ–ฅ์ด ๊ฐ€์žฅ ๋น„์šฉ์ด ์ ์„์ง€ ํŒ๋‹จํ•˜์—ฌ ๊ทธ๊ฒƒ์„ ์„ ํƒํ•จ
    2. proceed ํ•จ์ˆ˜: ์ƒ๋Œ€๋ฐฉ์˜ reached state ์ •๋ณด๋ฅผ ๋ฐ›์•„์„œ ์‹คํ–‰
  3. ์„ฑ๋Šฅ ํ‰๊ฐ€
    1. Complete
    2. Not cost-optimal
    3. time complexity: O(b^{d/2})
    4. space complexity: O(b^{d/2})

'School/COSE361 ์ธ๊ณต์ง€๋Šฅ' Related Articles +
1