๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐“ก๐“ธ๐“ธ๐“ถ5: ๐’ฆ๐‘œ๐“‡๐‘’๐’ถ ๐’ฐ๐“ƒ๐’พ๐“‹/Artificial Intelligence(COSE361)

[์ธ๊ณต์ง€๋Šฅ] 3. Solving problems by searching - 2

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