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

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

[์ธ๊ณต์ง€๋Šฅ] 5. Adversarial Search(์ ๋Œ€์  ํƒ์ƒ‰)

์ด ๋‹จ์›์—์„œ๋Š” competitive multiagent environment, ์ฆ‰ ์„œ๋กœ ๊ฒฝ์Ÿ์ ์ธ ๋‘ agent๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์„ ๋‹ค๋ฃฌ๋‹ค. ์ด๋Š” game์œผ๋กœ ์ž˜ ์•Œ๋ ค์ ธ ์žˆ๋Š” adversarial search problem์„ ๋งํ•œ๋‹ค.

 

 

1. Game 

 1) game์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์†Œ๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. 

 

 - S0 : The initial state. ๊ฒŒ์ž„์ด ์–ด๋–ค ์ƒํ™ฉ์—์„œ ์‹œ์ž‘๋˜๋Š”์ง€

 - Player(s) : ๊ฐ state์—์„œ ์–ด๋Š player๊ฐ€ ์›€์ง์ผ ์ฐจ๋ก€์ธ์ง€ ์•Œ๋ ค์คŒ

 - Actions(s) : ๊ฐ state์—์„œ ์ทจํ•  ์ˆ˜ ์žˆ๋Š” move๋“ค์˜ ์ง‘ํ•ฉ์„ return

 - Result(s, a) : ์–ด๋–ค state s์—์„œ action a๋ฅผ ํ–ˆ์„ ๋•Œ result. transition model.

 - TerminalTest(s) : ๊ฒŒ์ž„์ด ๋๋‚ฌ๊ฑฐ๋‚˜ ํ•œ๋ช…์ด ์กŒ์„ ๋•Œ true๋ฅผ ๋ฐ˜ํ™˜. ๊ฒŒ์ž„์ด ๋๋‚ฌ๋Š”์ง€ ์•ˆ ๋๋‚ฌ๋Š”์ง€๋ฅผ ํŒ๋ณ„. (๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋œ ๊ทธ state๋ฅผ terminal state๋ผ๊ณ  ๋ถ€๋ฆ„)

 - Utility(s, p) : state s์—์„œ player p์—๊ฒŒ ์–ผ๋งˆ๋‚˜ ์œ ๋ฆฌํ•œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” utility function( = objective function or payoff function)

 

 2) Game Tree

  : initial state, actions function, result function์œผ๋กœ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด search space๋ฅผ ํ‘œํ˜ํ•จ. 

    ์ •์ ์€ ๊ฒŒ์ž„์˜ state, ๊ฐ„์„ ์€ move๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์ด tree๋Š” ๊ฐ๊ฐ ์ ˆ๋ฐ˜์˜ move๊ฐ€ ํ•ฉ์ณ์ ธ ์žˆ๋‹ค. ์ฆ‰ ๋‚˜ ํ•œ๋ฒˆ ์ƒ๋Œ€๋ฐฉ ํ•œ ๋ฒˆ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ move๋ฅผ ํ•œ๋‹ค. ์ด๋Ÿฐ move๋ฅผ ๊ฒŒ์ž„ ์šฉ์–ด๋กœ ply๋ผ๊ณ  ๋งํ•œ๋‹ค. 

 

2. Optimal Decision in Games (Minimax Algorithm)

 

  * Minimax Value : game tree์—์„œ optimal stategy๋Š” minimax value๋ฅผ ํ†ตํ•ด ๊ฒฐ์ •๋œ๋‹ค. ๊ฐ node์˜ minimax value๋Š” ๊ฐ player๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ optimalํ•˜๊ฒŒ ๊ฒŒ์ž„์„ playํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ์˜ utility์ด๋‹ค. ์„ ํƒ๊ถŒ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋‚˜๋Š” ๋‚˜์—๊ฒŒ value๊ฐ€ maximum์ด ๋˜๋Š” state๋ฅผ ์„ ํ˜ธํ•  ๊ฒƒ์ด๊ณ , ์ƒ๋Œ€๋ฐฉ์€ ๋‚˜์˜ value๊ฐ€ minmum๋˜๋Š” state๋ฅผ ์„ ํ˜ธํ•  ๊ฒƒ์ด๋‹ค. 

 

MiniMax(s) = Utility(s)  if TerminalTest(s)

                  max MiniMax(Result(s,a))  if Player(s) = MAX( ์ด๊ฑด ๋‚ด ์ฐจ๋ก€์ผ ๋•Œ )

                  min MiniMax(Result(s,a))   if Player(s) = MIN( ์ƒ๋Œ€ ์ฐจ๋ก€์ผ ๋•Œ )

์ฆ‰ ๋‚ด ์ฐจ๋ก€์ผ ๋•Œ๋Š” action์„ ์ทจํ–ˆ์„ ๋•Œ์˜ utility ๊ฐ’์ด maximumํ•˜๊ฒŒ ์„ ํƒํ•  ๊ฒƒ์ด๊ณ 

์ƒ๋Œ€ ์ฐจ๋ก€์ผ ๋•Œ๋Š” action์„ ์œ„ํ–ˆ์„ ๋•Œ์˜ utility ๊ฐ’์ด minimumํ•˜๊ฒŒ ์„ ํƒํ•  ๊ฒƒ์ด๋‹ค. 

 

์ฒซ ๋ฒˆ์งธ, ๋‚˜๋Š” utility ๊ฐ’์ด ๊ฐ€์žฅ ํฐ ๊ฒƒ์„ ์„ ํƒํ• ๊ฑฐ๋‹ค. ๊ทธ๋ž˜์„œ ์–ด๋–ค ๊ฐ’์ด ๊ฐ€์žฅ ํด๊นŒ ํ•˜๊ณ  ๋ดค๋”๋‹ˆ ์•„๋ž˜์—์„  ์ด๋ฏธ ์ƒ๋Œ€๊ฐ€ ๋‚ด utility๊ฐ€ ๊ฐ€์žฅ ์ž‘์•„์ง€๋Š” state๋ฅผ ์„ ํƒํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ๋‚ด๊ฐ€ ์„ ํƒํ•˜๊ฒŒ ๋˜๋Š” state๋Š” ์ƒ๋Œ€๊ฐ€ ๊ฐ๊ฐ์˜ action์„ ์ทจํ–ˆ์„ ๋•Œ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” utility์˜ ์ตœ์†Ÿ๊ฐ’ ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ๊ฐ€์ง„ state๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ณ„์‚ฐ์ด ๋˜๋ฉด A๋Š” ์ตœ์†Œํ•œ 3์˜ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” a1์˜ action์„ ์ทจํ•  ๊ฒƒ์ด๋‹ค. B๋Š” ๋‹น์—ฐํžˆ ์ด ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ b1 action์„ ์ทจํ•  ๊ฒƒ์ด๊ณ . 

 

๋‹ค์Œ์€ minimax algorithm์ด๋‹ค. Max-Value๋Š” MinValue์ค‘์— ์ตœ๋Œ“๊ฐ’, Min-Value๋Š” MaxValue์ค‘์— ์ตœ์†Ÿ๊ฐ’์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ œ์ผ ๋จผ์ €๋Š” MAX turn์ด๋‹ˆ๊นŒ Min-value ์ค‘ max ๊ฐ’์„ returnํ•œ๋‹ค. ์•„๋ž˜์„œ ๋ถ€ํ„ฐ๋Š” ๊ณ„์† ๋ฐ˜๋ณต์ด๋‹ค. 

๋งŒ์•ฝ terminal node, ์ฆ‰ ๊ฒŒ์ž„์ด ๋๋‚˜๋Š” node๋ฉด ๊ทธ ๋…ธ๋“œ์˜ utility ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. 

 

์ด๋ ‡๊ฒŒ ์ƒ๊ธด๊ฒŒ ๋งˆ์น˜ dfs๊ฐ™๋‹ค. 

 

 

- Min์ด optimalํ•˜๊ฒŒ ๊ฒŒ์ž„์„ playํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ, optimal ํ•  ๊ฒฝ์šฐ๋ณด๋‹ค ๋‚˜์—๊ฒŒ๋Š” ๋” ์ด๋“์ด ๋œ๋‹ค.

- minimax algorithm์€ ํ˜„์žฌ state์—์„œ ๋ชจ๋“  minimax decision์„ ํƒ์ƒ‰ํ•˜๋ฏ€๋กœ complete dfs์™€ ๊ฐ™๋‹ค.

- ๊ทธ๋ž˜์„œ minimax search๋Š” tree์˜ ๊นŠ์ด์— ๋”ฐ๋ผ ํƒ์ƒ‰ํ•ด์•ผ ํ•  game์˜ states๊ฐ€ exponential ํ•˜๋‹ค.

 

 

 * Multiplayer Games

 : ๋งŒ์•ฝ ๋‘˜์ด์„œ ๊ฒŒ์ž„์„ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์—ฌ๋Ÿฌ๋ช…์ด์„œ ๊ฒŒ์ž„์„ ํ•œ๋‹ค๋ฉด, node์—๋Š” utility ๊ฐ’ ํ•˜๋‚˜ ๋Œ€์‹ ์— vector of value๊ฐ€ ๋ฐฐ์ •๋  ๊ฒƒ์ด๋‹ค. ์ด vector๋Š” ๊ฐ player์˜ ๊ด€์ ์—์„œ ์ด state์˜ utility๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ๊ฐ player์˜ ์ฐจ๋ก€์—์„œ player๋“ค์€ ์ž์‹ ์˜ ๊ด€์ ์—์„œ ๊ฐ€์žฅ ์ด๋“์ด ๋†’์€ state๋ฅผ ๊ณ ๋ฅด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. 

 

 

 

3. Alpha-Beta Pruning ( Alpha - Beta Search Algorithm )

: minimax ์™€ ๋˜‘๊ฐ™์ด ์ž‘๋™ํ•˜์ง€๋งŒ, final decision์— ์–ด์ฐจํ”ผ ์†ํ•˜์ง€ ๋ชปํ•  branch๋“ค์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ€์ง€์น˜๊ธฐ๋ฅผ ํ•ด์ค€๋‹ค. 

๋งŒ์•ฝ tree์— node n์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ๋งŒ์•ฝ player๊ฐ€ n๋ณด๋‹ค ์œ— ์ชฝ์—์„œ ๋” ์ข‹์€ ์„ ํƒ์ง€ m์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค๋ฉด, n์€ ์‹ค์ œ play์—์„œ ์„ ํƒ๋  ์ผ์ด ์—†์„ ๊ฒƒ์ด๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์šฐ๋ฆฌ๋Š” n์ด ์†ํ•œ ๋…ธ๋“œ๋“ค์„ ๋”์ด์ƒ ์กฐ์‚ฌํ•ด๋ณด์ง€ ์•Š๊ณ  pruneํ•  ์ˆ˜ ์žˆ๋‹ค. ์–ด์ฐจํ”ผ ์ €๊ธฐ์„œ ์ œ์ผ bestํ•œ ๊ฒฝ์šฐ๋ฅผ ์„ ํƒํ•ด๋ดค์ž n์ด๊ธฐ ๋•Œ๋ฌธ์—! 

 

๊ทธ๋ž˜์„œ Alpha-beta pruning์€ ๋‘๊ฐœ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

  a(alpha) : ์ง€๊ธˆ๊นŒ์ง€ ์ญ‰ ํƒ์ƒ‰ํ–ˆ๋˜ ๊ฒƒ ์ค‘์—์„œ max์—๊ฒŒ ๊ฐ€์žฅ bestํ•œ ๊ฐ’(highest-value) max๋Š” ์ด ๊ฐ’๋ณด๋‹ค ์ž‘์€ node๋Š” ์•„์˜ˆ ์•ˆ๋ณธ๋‹ค.

  B(beta) : ์ง€๊ธˆ๊นŒ์ง€ ์ญ‰ ํƒ์ƒ‰ํ–ˆ๋˜ ๊ฒƒ ์ค‘์—์„œ min์—๊ฒŒ ๊ฐ€์žฅ bestํ•œ ๊ฐ’(lowest-value) min์€ ์ด ๊ฐ’๋ณด๋‹ค ํฐ node๋Š” ์•„์˜ˆ ์•ˆ๋ณธ๋‹ค.

Alpha-beta search๋Š” ๋‚จ์€ ๊ฐ€์ง€๋“ค์„ ๊ฐ€์ง€์น˜๊ธฐ ํ•ด๋‚˜๊ฐ€๋ฉฐ ๊ณ„์†ํ•ด์„œ a์™€ B ๊ฐ’์„ Update ํ•ด๋‚˜๊ฐ„๋‹ค.

 minimax์™€ ๋‹ฌ๋ฆฌ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ์ง์ ‘ max_value๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. ์ด ๋•Œ ์ตœ๋Œ“๊ฐ’์€ -INT, ์ตœ์†Ÿ๊ฐ’์€ INF์ด๋‹ค.

 

max_value์— ๋“ค์–ด์˜ค๋ฉด ๋‹ค๋ฅธ ๊ฒƒ์€ ๊ธฐ์กด์˜ ๊ฒƒ๊ณผ ๊ฐ™์€๋ฐ, ์•ŒํŒŒ์™€ ๋ฒ ํƒ€ ๊ฐ’์ด ์ถ”๊ฐ€๊ฐ€ ๋˜์—ˆ๋‹ค.

v ๊ฐ’์€ (์ด Max๋…ธ๋“œ์—์„œ ๋ฐ›์€ min value์ค‘์— ๊ฐ€์žฅ ๋†’์•˜๋˜ minimax ๊ฐ’)๊ณผ (์ƒˆ๋กœ ์ฐพ์€ min_value)์ค‘์— ๋” ํฐ ๊ฒƒ์ด ๋œ๋‹ค. ์ฆ‰ v๋Š” ํ•ญ์ƒ min value ์ค‘ ์ตœ๋Œ“๊ฐ’์ด๋‹ค.

๋งŒ์•ฝ ์ด v์˜ ๊ฐ’์ด ๊ธฐ์กด ์ตœ์†Ÿ๊ฐ’ B(์œ„์ชฝ Min node์—์„œ ๋ฐ›์•„์˜จ, ์ด์ „๊นŒ์ง€์˜ min ๋…ธ๋“œ์—์„œ ์ฐพ์•˜๋˜ ๊ฐ€์žฅ ๋‚ฎ์€ minimax ๊ฐ’) ๋ณด๋‹ค ํฌ๋ฉด ์–ด์ฐจํ”ผ min ๋‹จ๊ณ„์—์„œ ์„ ํƒ๋  ๋ฆฌ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋ฐ”๋กœ ๊ฐ€์ง€์น˜๊ธฐ, returnํ•ด์ค€๋‹ค.

๊ทธ๋ฆฌ๊ณ  v๊ฐ€ B๋ณด๋‹ค ์ž‘์œผ๋ฉด ์ตœ๋Œ“๊ฐ’์ธ a ๊ฐ’์„ ๊ธฐ์กด a๊ฐ’๊ณผ ์ƒˆ๋กœ์šด ๊ฐ’ v์™€ ๋น„๊ตํ•ด์„œ ๋” ์ด๋“์ด ํฐ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๊ณ  return ํ•ด์ค€๋‹ค. 

 

min_value๋ฅผ ๋ณด์ž. 

์ผ๋‹จ v๋Š” ์ง€๊ธˆ๊นŒ์ง€ ๋ฐ›์•˜๋˜ max value์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ ์ƒˆ๋กœ ๋ฐ›์„ max_value์ค‘์— ๋” ์ž‘์€ ๊ฒƒ์„ ์„ ํƒํ•œ๋‹ค. ์ฆ‰ v๋Š” max value ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ๋งํ•œ๋‹ค. ์ด v์˜ ๊ฐ’์ด , ์•ž์„œ ์ฐพ์•˜๋˜ max์˜ ์ตœ๋Œ€ ์ด๋“ a ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์–ด์ฐจํ”ผ MAX๊ฐ€ ์„ ํƒ์„ ํ•˜์ง€ ์•Š์„ ๊ฒƒ ์ด๋ฏ€๋กœ return์‹œ์ผœ ๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ v๊ฐ€ a๋ณด๋‹ค ํฌ๋ฉด B์— MAX๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ด๋“์„ updateํ•ด์ฃผ๊ณ  return ํ•ด์ค€๋‹ค. 

 

์ •๋ฆฌํ•˜์ž๋ฉด a๊ฐ’์€ Max๊ฐ€ ์ตœ์†Œํ•œ์œผ๋กœ ๋ฐ›๊ณ  ์‹ถ์–ดํ•˜๋Š” ์ด๋“์ด๋‹ค. ์ด๋ฏธ ์•ž์—์„œ a๋ผ๋Š” ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ์Œ์ด ๋ณด์žฅ๋˜๋Š”๋ฐ, Min_Value๋ฅผ ํ†ตํ•ด Max๊ฐ€ ๊ทธ ๋…ธ๋“œ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด๋“์„ ๋ดค๋”๋‹ˆ a ๋ณด๋‹ค ์ž‘๋‹ค? ๋”์ด์ƒ ํƒ์ƒ‰์„ ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰ Min_Value์—์„œ ํ˜„์žฌ ํƒ์ƒ‰์˜ ํ•˜ํ•œ์„ ์„ ์ง€์ •ํ•ด์ค€ ๊ฒƒ์ด๋‹ค. 

 

B๋Š” Min์ด ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ๋Š” MAX์˜ ์ด๋“์˜ ์ตœ๋Œ€๊ฐ’์ด๋‹ค. ์ด๋ฏธ ์•ž์—์„œ MAX๊ฐ€ B๋ผ๋Š” ๋” ์ž‘์€ ์ด๋“์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ตณ์ด Max_Value๋ฅผ ํ•œ ๊ฐ’์ด B๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ๋ฅผ ๋” ๋ณผ ํ•„์š”๋Š” ์—†๋‹ค. ์ฆ‰ Min์ด ์ž์‹ ์˜ action์„ ์ •ํ•˜๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœํ•œ Max_Value์—์„œ ์ด๋“์„ ํƒ์ƒ‰ํ•  ๋•Œ, ์ด ๊ฐ’์„ ๋„˜์œผ๋ฉด ๋” ๋ณผ ํ•„์š”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒํ•œ์„ ์„ ์ง€์ •ํ•ด ์ค€ ๊ฒƒ ์ด๋‹ค. 

 

(a) ์šฐ์„  a=-INF, B=INF๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  A์—์„œ Max_value๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. 

    ๊ทธ๋Ÿฌ๋ฉด B์—์„œ Min_Value๋ฅผ ํ˜ธ์ถœํ•˜๊ฒ ์ง€? ์ด ๋•Œ B์—์„œ ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ–ˆ๋”๋‹ˆ v=3์ด ๋˜์—ˆ๊ณ , ์ด v์˜ ๊ฐ’์€ a๋ณด๋‹ค ํฌ๋ฏ€๋กœ ๋„˜์–ด๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  B๋ฅผ 3์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. 

(b) ๋‹ค์Œ์œผ๋กœ 12์ธ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. v๋Š” 3๊ณผ 12์ค‘ ์ž‘์€ ๊ฐ’์ด๋ฏ€๋กœ ์—ฌ์ „ํžˆ v = 3์ด ๋œ๋‹ค. 

(c) ๋‹ค์Œ์œผ๋กœ 8์ธ ๋…ธ๋“œ๋ฅผ ๋ณธ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ v=3์ด ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ณ  loop๋ฌธ์„ ๋‹ค ๋Œ์•˜์œผ๋ฏ€๋กœ return v = 3 ์„ ํ•ด์ค€๋‹ค. 

    ์ด๋ ‡๊ฒŒ ๋˜๋ฉด B๋…ธ๋“œ์—์„œ ๋ฐ”๋ผ๋ณธ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์€ 3์ด ๋œ๋‹ค. 

    A์˜ ๊ด€์ ์—์„œ ๋ณธ B ๋…ธ๋“œ์˜ ์ด๋“์€ 3์ด๋‹ค. 3์ด -INF๋ณด๋‹ค ํฌ๊ธฐ ๋•Œ๋ฌธ์— v=3์ด ๋˜๊ณ , ์ด ๋•Œ v๋Š” B์˜ ๊ฐ’์ธ INF๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์‚ฌํžˆ ๋„˜์–ด์˜จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  a ๊ฐ’๋„ 3์œผ๋กœ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. 

(d) ์ž ๊ทธ๋Ÿผ ๋‹ค์Œ ๋…ธ๋“œ C๋ฅผ ์‚ดํŽด๋ณด์ž. A์—์„œ๋Š” Min_value(C, 3, INF)๋ฅผ ํ˜ธ์ถœํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ C์˜ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ดค๋”๋‹ˆ return 2๋ฅผ ํ•˜์—ฌ C์—๊ฒŒ ๋Œ์•„์˜จ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด v=2๋กœ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋˜๋Š”๋ฐ, ์ด v์˜ ๊ฐ’์ด ๊ธฐ์กด a๊ฐ’์ธ 3๋ณด๋‹ค ์ž‘๊ธฐ ๋•Œ๋ฌธ์—, ์ด node๊ฐ€ ํฌํ•จ๋œ C๋…ธ๋“œ๋Š” ๋”์ด์ƒ ๋ณผ ํ•„์š”๊ฐ€ ์—†์–ด์„œ return 2๋ฅผ ํ•˜๊ฒŒ ๋œ๋‹ค. (์ ์–ด๋„ ์ €๊ธฐ์„œ ๋‚˜์˜ค๋Š” minimum value๋Š” 2๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ์ž‘์„๊ฑฐ๊ธฐ ๋•Œ๋ฌธ์— ์–ด์ฐจํ”ผ ์„ ํƒ ์•ˆ๋ ๊ฑฐ๋ผ 2 return ํ•ด์ค˜๋„ ๋จ) 

(e) ์ด์ œ D ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•ด๋ณด์ž. Min_value(C, 3, INF)๋ฅผ ํ˜ธ์ถœํ–ˆ๋‹ค. D์˜ ์ฒซ๋ฒˆ์งธ ๋…ธ๋“œ์—์„œ return 14๊ฐ€ ๋˜๋ฏ€๋กœ v= 14์ด๋‹ค. ์ด ๊ฐ’์€ a๋ณด๋‹ค ํฌ๋ฏ€๋กœ okํ•˜๊ณ , ๊ธฐ์กด B๊ฐ’์ธ INF๋ณด๋‹ค 14๊ฐ€ ๋” ์ž‘์œผ๋ฏ€๋กœ B๋ฅผ 14๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค.

(f) ๋‚˜๋จธ์ง€ ๋‘ ๋…ธ๋“œ๋ฅผ ๊ฒ€์‚ฌํ•ด๋ณด๋ฉด 5์ผ ๋•Œ๋Š” v = 5 ๊ฐ€ ๋˜๊ณ , ์ด ๊ฐ’์ด a๋ณด๋‹ค ํฌ๋ฏ€๋กœ ok, ๊ทธ๋ฆฌ๊ณ  B๋„ 14๋ณด๋‹ค 5๊ฐ€ ์ž‘์œผ๋ฏ€๋กœ 5๋กœ ์—…๋ฐ์ดํŠธ ํ•ด์ค€๋‹ค. ๊ทธ๋Ÿฐ๋ฐ 2์ผ ๋•Œ v = 2๊ฐ€ ๋˜๋ฉด , ์ด ๊ฐ’์ด a๋ณด๋‹ค ์ž‘์•„์ ธ์„œ ๋”์ด์ƒ ๋ณผ ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๊ทธ ์ƒํƒœ์—์„œ return 2๋ฅผ ํ•ด์ค˜๋ฒ„๋ฆฐ๋‹ค. 

 

๊ทธ๋Ÿผ ์ด์ œ A, B, C์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์ธ 3์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” B๋กœ ์ด๋™์„ ํ•œ๋‹ค. ์ด ๋•Œ value๋Š” v=3๊ฐ€ ๋œ๋‹ค. 

 

 

- ์ด alpha-beta pruning์€ state๋“ค์„ ์กฐ์‚ฌํ•˜๋Š” ์ˆœ์„œ์— ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค. bestํ•œ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(b^(m/2))๋กœ ์ค„์–ด๋“ ๋‹ค. (์›๋ž˜๋Š” O(b^m) ) Max level์—์„œ๋Š” Minimax value๊ฐ€ ํฐ ๋…ธ๋“œ๋ถ€ํ„ฐ , Min level ์—์„œ๋Š” Minimax value๊ฐ€ ์ž‘์€ ๊ฒƒ๋ถ€ํ„ฐ ์กฐ์‚ฌํ•˜๋ฉด ์ œ์ผ ๊ตฟ! 

 

- ๊ณผ๊ฑฐ search์—์„œ ๊ฐ€์žฅ bestํ–ˆ๋˜ move๋ฅผ ๋จผ์ € ์‹œ๋„ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ dynamic move-ordering schemes์„ ์ถ”๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฉด, ์ด๋ก ์ ์œผ๋กœ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ case์— ๊ทผ์ ‘ํ•  ์ˆ˜ ์žˆ๋‹ค. current move์—์„œ ์–ด๋–ค path๊ฐ€ ๊ฐ€์žฅ bestํ–ˆ๋Š”์ง€์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์—๋Š” iterative deepening search๊ฐ€ ์žˆ๋‹ค. ๋จผ์ € 1 ply deep์„ searchํ•˜๊ณ  ๊ฐ€์žฅ best path๋ฅผ ๊ธฐ๋กํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•œ ์นธ ๋” searchํ•  ๋•Œ๋Š” ์ด์ „์— ๊ธฐ๋กํ•ด๋‘” path๋ฅผ ์ด์šฉํ•ด์„œ ์–ด๋–ค ์ˆœ์„œ๋กœ ์›€์ง์—ฌ์•ผ ํ•˜๋Š”์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. 

 

 

 

 

 

 

4. Real-Time Decision

 

 - Minimax algorithm์€ ์ „์ฒด์˜ game search space๋ฅผ ์ƒ์„ฑํ•ด๋‚ด๊ณ , alpha-beta algorithm์€ ๊ทธ ์ค‘ ๋งŽ์€ ๋ถ€๋ถ„์„ ๊ฐ€์ง€์น˜๊ธฐ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค. ํ•˜์ง€๋งŒ alpha-beta ์—ญ์‹œ ์—ฌ์ „ํžˆ search space์˜ ์ผ๋ถ€๋ถ„์€ terminal states๊นŒ์ง€ ํƒ์ƒ‰์„ ํ•ด๋ด์•ผ ํ•œ๋‹ค. Terminal node๊ฐ€ ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€์˜ ๊นŠ์ด๊ฐ€ ๋ณดํ†ต์€ ๋งค์šฐ ๊นŠ๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ทธ๋ฆฌ ์‹ค์šฉ์ ์ด์ง€๋Š” ์•Š๋‹ค. 

 

๊ทธ๋ž˜์„œ alpha-beta ๋ฅผ ๋‘๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  โ‘  utility function์„ heuristic evaluation function์œผ๋กœ ๋Œ€์ฒดํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

  โ‘ก ๋˜๋Š” terminal test ๋Œ€์‹  Evaluation function์„ ์ด์šฉํ•œ cutoff test๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 1) Evaluation functions

 

 game-playing program์˜ ์ˆ˜ํ–‰ ๋Šฅ๋ ฅ์€ evaluation function์˜ ํ€„๋ฆฌํ‹ฐ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š”๋‹ค.

   โ‘  evaluation function์„ ์‚ฌ์šฉํ•  ๋•Œ, ์‹ค์ œ utility function์—์„œ์˜ terminal states์˜ ์ˆœ์„œ์™€ ๋‹ฌ๋ผ์ง€๋ฉด ์•ˆ๋œ๋‹ค.

   โ‘ก nonterminal state์—์„œ, evaluation function์€ ์‹ค์ œ๋กœ ์ด๊ธธ ํ™•๋ฅ ๊ณผ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ด€๋˜์–ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.

   โ‘ข ๊ณ„์‚ฐ์ด ์ง€๋‚˜์น˜๊ฒŒ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ์•ˆ๋œ๋‹ค.

 

* Features

  : ๋Œ€๋ถ€๋ถ„์˜ evaluation function์€ ๊ฐ state์˜ features๋ฅผ ํ†ตํ•ด state๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ข‹์€์ง€๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ์ด ๋•Œ feature๋Š” state์˜ '์ƒํƒœ'๋ผ๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.  Feature๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ states์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ฑฐ๋‚˜ ๊ฐ™์€ class๋“ค์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ™์€ feature๋ฅผ ๊ฐ–๋Š” states๋ผ๋ฆฌ ๋ฌถ์€ ๊ฒƒ์ด ์นดํ…Œ๊ณ ๋ฆฌ์ด๋‹ค. 

 

-> state๊ฐ€ ์–ด๋–ค ์ƒํƒœ(=feature)์— ์žˆ๊ณ  ์ด๋•Œ ์ด ์ƒํƒœ๊ฐ€ ์–ด๋–ค ์ƒํƒœ์ธ์ง€ ๋ถ„์„ํ•ด์„œ ์–ผ๋งˆ๋‚˜ ์œ ๋ฆฌํ•œ์ง€ ๊ฐ’ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฒŒ evaluation function

 

 

 * Weighted Linear Functions 

 : ๋Œ€๋ถ€๋ถ„์˜ evaluation funtion์€ ๊ฐ feature์—์„œ์˜ ๊ธฐ์—ฌ๋„๋ฅผ ๊ณ„์‚ฐํ•œ ๋‹ค์Œ์— ์ด๋“ค์„ ํ•ฉ์ณ์„œ ์ตœ์ข…์ ์ธ value๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

 Feature์™€ weights๋Š” game์˜ rule์˜ ์ผ๋ถ€๋Š” ์•„๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ์ˆ˜์„ธ๊ธฐ ๋™์•ˆ์˜ ์‚ฌ๋žŒ๋“ค์˜ ๊ฒฝํ—˜์—์„œ ๋‚˜์˜จ๊ฒƒ์ด๋‹ค. ์‚ฌ๋žŒ๊ณผ ๋‹ฌ๋ฆฌ ์ด๋Ÿฌํ•œ ๊ฒฝํ—˜์ด ์—†๋Š” ๊ฒŒ์ž„์—์„œ๋Š” machine learning์„ ์ด์šฉํ•ด evaluation function์˜ weight๋ฅผ ์ถ”์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

  2) Cutoff Strategies 

  : ๋Œ€๋ถ€๋ถ„์˜ straightforward apporach๋Š” depth limit์„ ์„ค์ •ํ•˜์—ฌ search์˜ ์–‘์„ ์กฐ์ ˆํ•œ๋‹ค. ์ด๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ depth limit ๊นŒ์ง€๋งŒ search ํ•ด๋ณด๊ณ  cutoffํ•œ๋‹ค.

  Cutoff Test๋Š” ์–ด๋– ํ•œ ์ •ํ•ด์ง„ depth limit์„ ๋„˜์–ด๊ฐ€๋ฉด true๋ฅผ returnํ•œ๋‹ค. depth limit๋Š” ํ• ๋‹น๋œ ์‹œ๊ฐ„ ์•ˆ์— ๋‹ต์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •ํ•œ๋‹ค. 

 

  ๋” ๊ฐ•๋ ฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์€ iterative deepening์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์‹œ๊ฐ„์ด ๋‹ค ๋˜๋ฉด, ํ”„๋กœ๊ทธ๋žจ์€ ๊ทธ ๋•Œ๊นŒ์ง€ ํƒ์ƒ‰ํ•œ ๊ฒƒ ์ค‘ ๊ฐ€์žฅ ๊นŠ์€ ๊ณณ์—์„œ ์™„๋ฃŒ๋œ search์—์„œ ๋‹ต(move)๋ฅผ ์„ ํƒํ•ด ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ iterative deepening์€ move ordering์—๋„ ๋„์›€์„ ์ค€๋‹ค. 

 

  ์ด๋Ÿฐ ๊ฐ„๋‹จํ•œ approach๋Š” evaluation function์˜ ๋Œ€๋žต์ ์ธ ์„ฑ์งˆ ๋•Œ๋ฌธ์— error์„ ์ผ์œผํ‚ฌ ์ˆ˜๋„ ์žˆ๋‹ค. (ํ„ฐ๋ฏธ๋„ ๋…ธ๋“œ๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ๋‹น์—ฐํžˆ error๊ฐ€ ๋‚  ์ˆ˜ ๋ฐ–์— ...)  

 

 

  *Quiescence Search (์ •์  ํƒ์ƒ‰)

: evaluation function์€ ๊ฐ position๋“ค์ด quiescent(์ •์ )์ผ ๋•Œ, ์ฆ‰ ๊ฐ€๊นŒ์šด ๋ฏธ๋ž˜์—์„œ evaluation ๊ฐ’์ด ํฐ ๋ณ€๋™์„ ๋ณด์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์—†์„ ๋•Œ์—๋งŒ ์ ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ์ง„ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค evaluation์ด ์š”๋™์น  ๊ฒฝ์šฐ, ํ•ด๋‹น move๊ฐ€ ์ •๋ง ์ข‹์€ move์ธ์ง€ ํŒ๋‹จํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋” ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

 

์ด๋ ‡๋“ฏ Nonquiescent position์ด๋ผ๋ฉด, quiescent position์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€, ์ฆ‰ evaluation ๊ฐ’์ด ์•ˆ์ •๋  ๋•Œ ๊นŒ์ง€ ํƒ์ƒ‰์„ ํ•˜๋ฉด ๋œ๋‹ค. ์ด ๋•Œ์˜ search๋ฅผ quiescence search๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์–ด๋–ค ํŠน์ • ์œ ํ˜•์˜ ์ด๋™๋งŒ ๊ณ ๋ คํ•จ์„ ํ†ตํ•ด(chess๋ผ๋ฉด ์–ด๋–ค ๋ง์„ ์žก๋Š” ๊ฒฝ์šฐ์˜ move๋ฅผ ์œ„์ฃผ๋กœ), ํ•ด๋‹น ๋…ธ๋“œ์˜ ๋ถˆํ™•์‹ค์„ฑ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

  *Horizon Effect (์ง€ํ‰์„  ํšจ๊ณผ)

 : ๋ช‡ ์ˆ˜ ๋” ๊ฐ€๋ณด๋ฉด ์ด state๊ฐ€ ๋‚˜์—๊ฒŒ ์น˜๋ช…์ ์œผ๋กœ ์ข‹์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ทธ๊ฒƒ์„ ๋ชป ๋ณด๋Š” ์ƒํƒœ๋ฅผ ๋งํ•œ๋‹ค. ์ข‹์€์ง€ ๋‚˜์œ์ง€ ์ฒดํฌํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜, ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ์„ ํƒํ–ˆ๋Š”๋ฐ ์•Œ๊ณ ๋ณด๋‹ˆ๊นŒ ์•ˆ ์ข‹์€ ๊ฒฝ์šฐ๋“ค์ด ๊ทธ๋Ÿฌํ•˜๋‹ค. 'delaying tactics'์œผ๋กœ ์ผ์‹œ์ ์œผ๋กœ ํ”ผํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์ œ๊ฑฐํ•˜๊ธฐ ์–ด๋ ค์šด effect์ด๋‹ค. 

๋ณด๋ฉด ๊ฒ€์ •์ƒ‰ ๋น„์ˆ์€ ๊ฒฐ๊ตญ ์ฃฝ๊ฒŒ ๋˜์–ด์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒ€์€ pawn์œผ๋กœ ์ด ์ฃฝ์Œ์„ ๋’ค๋กœ ๋ฏธ๋ฃฐ ์ˆ˜๋Š” ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ ์ฃฝ๊ฒŒ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์˜๋ฏธ๊ฐ€ ์—†๋‹ค. ๋งŒ์•ฝ ๊ทธ๋ƒฅ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๋Œ๋ฆฐ๋‹ค๋ฉด ๋ถ„๋ช… ์ด ์˜๋ฏธ์—†๋Š” ํฌ์ƒ์„ ํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. 

 

  *Singular Extension 

  : horizon effect๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ, ์–ด๋–ค move๊ฐ€ ๋‹ค๋ฅธ move๋ณด๋‹ค ํ™•์—ฐํ•˜๊ฒŒ ์ข‹์•„๋ณด์ธ๋‹ค๋ฉด, depth limit์— ๋”ฐ๋ผ cut-off ํ•˜์ง€ ๋ง๊ณ  ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•ด๋ณด๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์–ด์ฐจํ”ผ singular extension์ด ์ผ์–ด๋‚˜๋Š” ๋…ธ๋“œ๋Š” ๋ช‡๊ฐœ ์—†์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— tree๋ฅผ deeperํ•˜๊ฒŒ ๋งŒ๋“ ๋‹ค๊ณ  ํ•ด์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๋งŽ์ด ๋Š˜๋ฆฌ์ง€๋„ ์•Š์„ ๊ฒƒ์ด๋‹ค.

 

  *Forward Pruning 

  : ์ฃผ์–ด์ง„ node์—์„œ ๋ช‡๊ฐœ์˜ moves๋Š” ๊ธฐ์ค€ ์—†์ด ๊ฐ€์ง€์น˜๊ธฐ ํ•ด๋‚˜๊ฐ„๋‹ค. ๊ทธ๋ž˜์„œ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ subtree๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ช‡๋ช‡๊ฐœ๋งŒ searchํ•œ๋‹ค. 

 

   - Beam search : forward pruning์˜ ์‘์šฉ๋ฒ„์ „์œผ๋กœ, ๊ฐ ply ๋•Œ๋งˆ๋‹ค ๋ชจ๋“  possible moves๋ฅผ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ n๊ฐœ์˜ best moves๋งŒ ๊ณ ๋ คํ•˜์—ฌ ๊ทธ๋“ค๋งŒ ํƒ์ƒ‰ํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

 --> ํ•˜์ง€๋งŒ ์ด approach๋Š” ๊ฐ€์žฅ bestํ•œ move๊ฐ€ ๊ฐ€์ง€์น˜๊ธฐ ๋‹นํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์œ„ํ—˜ํ•˜๊ธฐ๋„ ํ•˜๋‹ค.

 

 

  * Table Lookup 

  : ๋Œ€๋ถ€๋ถ„์˜ ๊ฒŒ์ž„ playing program์€ ์ด 'table lookup'์„ ํ™œ์šฉํ•œ๋‹ค. ์ด๊ฒŒ ๋ญ๋ƒํ•˜๋ฉด ์ฒ˜์Œ ๋ช‡ ์ˆ˜์™€ ๋งˆ์ง€๋ง‰ ๋ช‡ ์ˆ˜๋Š” ์‚ฌ์ „์— ๋ฏธ๋ฆฌ searching ํ•ด์„œ ์ข‹์€ ์ˆ˜๋“ค์„ ์ €์žฅํ•ด๋‘๊ณ  ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. 

 

  ๋˜ํ•œ ์ปดํ“จํ„ฐ๋Š” policy๋ฅผ ๋งŒ๋“ค์–ด๋‚ด์„œ endgame์„ ํ’€์–ด๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. policy๋ž€ ๊ฐ๊ฐ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  state์—์„œ ๊ฐ€๋Šฅํ•œ best move๋ฅผ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•ด ๋†“๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋‹ค์‹œ ๋‹ค ๊ณ„์‚ฐํ•  ํ•„์š” ์—†์ด ๊ทธ ๋•Œ ๊ทธ ๋•Œ best move๋ฅผ ์ฐพ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค.