• Mindscape ๐Ÿ”ฅ
    • Playlist ๐ŸŽง
  • ๐Ÿค– Artifical Intelligence

    • 1. Basics; Linear Algebra
    • 2. Basics; Linear Algebra (2), Search (1)
    • 3. Search (2)
    • 4. Knowledge and Logic (1)
    • 5. Knowledge and Logic (2)
    • 6. Probability
    • 7. Information Theory
    • 8. Probabilitc Reasoning (2)
    • 9. Probabilitc Reasoning (3)
    • 10. Machine Learning (1)
    • 11. Machine Learning (2)
    • 12. Machine Learning (3)
    • 13. Linear Models
    • 14. Other Classic ML Models (1)
    • 15. Other Classic ML Models (2)
  • ๐Ÿ”’ Computer Security

    • 01. Overview
    • 02. ์ •๋ณด๋ณด์•ˆ์ •์ฑ… ๋ฐ ๋ฒ•๊ทœ
    • 03. Cryptographic Tools
    • 04. User Authentication
    • 05. Access Control
    • 06. Database Security
    • 07. Malicious Software
    • 08. Firmware Analysis
  • ๐Ÿ—„๏ธ Database System

    • 1. Introduction
    • 2. Relational Model
    • 3. SQL
    • 6. E-R Model
    • 7. Relational Database Design (1)
    • 7. Relational Database Design (2)
    • 13. Data Storage Structures
    • 14. Indexing
    • 15. Query Processing
  • ๐Ÿ“ Software Engineering

    • 2. Introduction to Software Engineering
    • 3. Process
    • 4. Process Models
    • 5. Agile
    • 6. Requirements
    • 7. Requirements Elicitation and Documentation
    • 8. Architecture
    • 9. Unified Modelling Language
    • 10. Object-Oriented Analysis
    • Object-Oriented Design
  • ๐Ÿง  Algorithm

    • Python ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ํŒ
    • C++ std::vector ์‚ฌ์šฉ๋ฒ• ์ •๋ฆฌ
    • Vim ์‚ฌ์šฉ ๋งค๋‰ด์–ผ
    • 1018๋ฒˆ: ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ

3. Search (2)

Uninformed Search Algorithms (๋น„์ •๋ณด ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

  • ๋ฌธ์ œ ๊ด€๋ จ ์ง€์‹(problem-specific knowledge)์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํƒ์ƒ‰ ์ „๋žต
  • ๋ชฉํ‘œ ์ƒํƒœ(goal state)์— ์–ผ๋งˆ๋‚˜ ๊ฐ€๊นŒ์šด์ง€์— ๋Œ€ํ•œ ๋‹จ์„œ(clue)๊ฐ€ ์—†์Œ.
  • ์˜ˆ:
    • Depth-First Search (DFS, ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)
    • Breadth-First Search (BFS, ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)

Depth-First Search Algorithm (๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

  • ํ”„๋ก ํ‹ฐ์–ด(frontier)์—์„œ ํ•ญ์ƒ ๊ฐ€์žฅ ๊นŠ์€ ๋…ธ๋“œ(deepest node)๋ฅผ ํ™•์žฅ(expand)ํ•˜๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ด€๋ จ ์ž๋ฃŒ ๊ตฌ์กฐ: Stack (Last-in, First-out (LIFO))

Breadth-First Search Algorithm (๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

  • ํ”„๋ก ํ‹ฐ์–ด์—์„œ ํ•ญ์ƒ ๊ฐ€์žฅ ์–•์€ ๋…ธ๋“œ(shallowest node)๋ฅผ ํ™•์žฅํ•˜๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ๊ด€๋ จ ์ž๋ฃŒ ๊ตฌ์กฐ: Queue (First-in, First-out (FIFO))

Informed Search Strategies (์ •๋ณด ๊ธฐ๋ฐ˜ ํƒ์ƒ‰ ์ „๋žต)

  • Informed Search (์ •๋ณด ๊ธฐ๋ฐ˜ ํƒ์ƒ‰)
    • ๋น„์ •๋ณด ์ „๋žต(uninformed strategy)๋ณด๋‹ค ๋” ํšจ์œจ์ ์œผ๋กœ ํ•ด๋‹ต์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ ๊ด€๋ จ ์ง€์‹(problem-specific knoweldge)์„ ์‚ฌ์šฉํ•˜๋Š” ํƒ์ƒ‰ ์ „๋žต
    • ๋ชฉํ‘œ์˜ ์œ„์น˜์— ๋Œ€ํ•œ ๋„๋ฉ”์ธ ํŠนํ™” ํžŒํŠธ(domain-specific hints)๋ฅผ ์‚ฌ์šฉ.
  • ํžŒํŠธ๋Š” heuristic function (ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜), h(n)h(n)h(n)์˜ ํ˜•ํƒœ๋กœ ์ œ๊ณต.
    • ๊ฒฝ๋กœ ์ฐพ๊ธฐ ๋ฌธ์ œ(route-finding problems)์—์„œ, ํ˜„์žฌ ์ƒํƒœ์—์„œ ๋ชฉํ‘œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ์ง€๋„์ƒ์˜ ์ง์„  ๊ฑฐ๋ฆฌ(straight-line distance)๋กœ ์ถ”์ • ๊ฐ€๋Šฅ
    • h(n)h(n)h(n): ๋…ธ๋“œ nnn์— ์žˆ๋Š” ์ƒํƒœ์—์„œ ๋ชฉํ‘œ ์ƒํƒœ(goal state)๊นŒ์ง€์˜ ๊ฐ€์žฅ ์ €๋ ดํ•œ ๊ฒฝ๋กœ(cheapest path)์— ๋Œ€ํ•œ ์˜ˆ์ƒ ๋น„์šฉ(estimated cost)

Greedy Best-First Search (ํƒ์š•์Šค๋Ÿฌ์šด ์ตœ์ƒ ์šฐ์„  ํƒ์ƒ‰)

  • ํœด๋ฆฌ์Šคํ‹ฑ ํ•จ์ˆ˜ h(n)h(n)h(n)์— ์˜ํ•ด ์ถ”์ •๋œ ๋Œ€๋กœ ๋ชฉํ‘œ์— ๊ฐ€๊น๋‹ค๊ณ  ์˜ˆ์ƒ๋˜๋Š” ๋…ธ๋“œ(์ฆ‰, h(n)h(n)h(n) ๊ฐ’์ด ๊ฐ€์žฅ ๋‚ฎ์€ ๋…ธ๋“œ)๋ฅผ ํ™•์žฅํ•˜๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ์˜ˆ: ๊ฒฝ๋กœ ์ฐพ๊ธฐ ๋ฌธ์ œ: h(n)h(n)h(n) = straight line distance (์ง์„  ๊ฑฐ๋ฆฌ) to the goal (๋ชฉํ‘œ)

A* Search (์—์ด ์Šคํƒ€ ํƒ์ƒ‰)

  • g(n)+h(n)g(n) + h(n)g(n)+h(n)์˜ ๊ฐ’์ด ๊ฐ€์žฅ ๋‚ฎ์€ ๋…ธ๋“œ๋ฅผ ํ™•์žฅํ•˜๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • g(n)g(n)g(n): ์ดˆ๊ธฐ ์ƒํƒœ(initial state)์—์„œ ๋…ธ๋“œ nnn๊นŒ์ง€์˜ ๊ฒฝ๋กœ ๋น„์šฉ(path cost)
    • h(n)h(n)h(n): nnn์—์„œ ๋ชฉํ‘œ ์ƒํƒœ(goal state)๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ(shortest path)์— ๋Œ€ํ•œ ์˜ˆ์ƒ ๋น„์šฉ(estimated cost)

A* Search์˜ ์ตœ์ ์„ฑ (Optimality of A* Search)

  • Aโˆ—A^*Aโˆ— (tree) search (ํŠธ๋ฆฌ ํƒ์ƒ‰)์€ h(n)h(n)h(n)์ด admissible (ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ) ํ•  ๊ฒฝ์šฐ ๋น„์šฉ ์ตœ์ (cost-optimal) ๊ฐ€๋Šฅ
  • Admissible heuristic (ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ํœด๋ฆฌ์Šคํ‹ฑ): ๋ชฉํ‘œ์— ๋„๋‹ฌํ•˜๋Š” ๋น„์šฉ์„ ์ ˆ๋Œ€ ๊ณผ๋Œ€ํ‰๊ฐ€ํ•˜์ง€ ์•Š๋Š” ํœด๋ฆฌ์Šคํ‹ฑ
    • ๋”ฐ๋ผ์„œ, ํ—ˆ์šฉ ๊ฐ€๋Šฅํ•œ ํœด๋ฆฌ์Šคํ‹ฑ์€ optimistic (๋‚™๊ด€์ )
    • ๊ณต์‹์ ์œผ๋กœ, hโˆ—(n)h^*(n)hโˆ—(n)์„ nnn์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ชฉํ‘œ๊นŒ์ง€์˜ ์ตœ์  ๊ฒฝ๋กœ์˜ ๋น„์šฉ์ด๋ผ๊ณ  ํ•  ๋•Œ,

    h(n)โ‰คhโˆ—(n)h(n) \le h^*(n) h(n)โ‰คhโˆ—(n)

    ๊ฐ€ ์„ฑ๋ฆฝํ•จ.

Adversarial Search Problems (์ ๋Œ€์  ํƒ์ƒ‰ ๋ฌธ์ œ)

  • Competitive environments (๊ฒฝ์Ÿ์  ํ™˜๊ฒฝ)
    • ๋‘˜ ์ด์ƒ์˜ ์—์ด์ „ํŠธ(agents)๊ฐ€ ์ƒ์ถฉ๋˜๋Š” ๋ชฉํ‘œ(conflicting goals)๋ฅผ ๊ฐ€์ง€๋ฉฐ, ์ด๋Š” adversarial search problems (์ ๋Œ€์  ํƒ์ƒ‰ ๋ฌธ์ œ)์„ ์•ผ๊ธฐ
  • Game (๊ฒŒ์ž„)์— ์ดˆ์ ์„ ๋งž์ถค.
    • ํ‹ฑํƒํ† , ์ฒด์Šค, ๋ฐ”๋‘‘, ํฌ์ปค ๋“ฑ
    • AI ์—ฐ๊ตฌ์ž๋“ค์—๊ฒŒ๋Š” ์ด๋Ÿฌํ•œ ๊ฒŒ์ž„์˜ ๋‹จ์ˆœํ™”๋œ ํŠน์„ฑ์ด ์žฅ์ 
    • adversarial game-tree search (์ ๋Œ€์  ๊ฒŒ์ž„ ํŠธ๋ฆฌ ํƒ์ƒ‰) ๊ธฐ๋ฒ•์œผ๋กœ ์ ๋Œ€์  ์—์ด์ „ํŠธ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋ชจ๋ธ๋ง

Two-Player Zero-Sum Games (2์ธ ์ œ๋กœ์„ฌ ๊ฒŒ์ž„)

  • AI ๋‚ด์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์œผ๋กœ ์—ฐ๊ตฌ๋˜๋Š” ๊ฒŒ์ž„(์˜ˆ: ์ฒด์Šค, ๋ฐ”๋‘‘)์€
    • deterministic (๊ฒฐ์ •๋ก ์ )
    • two-player (2์ธ)
    • turn-taking (์ฐจ๋ก€ ๊ตํ™˜์‹)
    • perfect information (์™„๋ฒฝ ์ •๋ณด)
    • zero-sum games (์ œ๋กœ์„ฌ ๊ฒŒ์ž„)
    • 'Perfect information'์€ 'fully observable (์™„์ „ ๊ด€์ฐฐ ๊ฐ€๋Šฅ)'๊ณผ ๋™์˜์–ด
    • 'Zero-sum'์€ ํ•œ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ข‹์€ ๊ฒƒ์ด ๋‹ค๋ฅธ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ๋Š” ๊ทธ๋งŒํผ ๋‚˜์˜๋‹ค๋Š” ์˜๋ฏธ: win-win\text{win-win}win-win (์ƒ์ƒ)))) ๊ฒฐ๊ณผ๊ฐ€ ์—†์Œ.
    • ์šฉ์–ด: move\text{move}move (์ˆ˜)๋Š” action\text{action}action (ํ–‰๋™)์˜ ๋™์˜์–ด, position\text{position}position (์œ„์น˜)์€ state\text{state}state (์ƒํƒœ)์˜ ๋™์˜์–ด
  • Specification (์ •์˜)
    • ๋‘ ํ”Œ๋ ˆ์ด์–ด๋ฅผ MAX\text{MAX}MAX์™€ MIN\text{MIN}MIN์œผ๋กœ ์ง€์นญ
    • MAX\text{MAX}MAX๊ฐ€ ๋จผ์ € ์ด๋™ํ•˜๊ณ , ๊ฒŒ์ž„์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ํ”Œ๋ ˆ์ด์–ด๋“ค์ด ๋ฒˆ๊ฐˆ์•„ ๊ฐ€๋ฉฐ ์ˆ˜๋ฅผ ๋‘ .
    • ๊ฒŒ์ž„์ด ๋๋‚˜๋ฉด ์Šน๋ฆฌํ•œ ํ”Œ๋ ˆ์ด์–ด์—๊ฒŒ ์ ์ˆ˜๊ฐ€ ๋ถ€์—ฌ๋˜๊ณ  ํŒจ์ž์—๊ฒŒ๋Š” ๋ฒŒ์น™ ๋ถ€์—ฌ
  • Formal Definition (๊ณต์‹์  ์ •์˜): ๋‹ค์Œ ์š”์†Œ๋“ค๋กœ ๊ฒŒ์ž„์„ ์ •์˜ ๊ฐ€๋Šฅ
    • S0S_{0}S0โ€‹: initialย state\text{initial state}initialย state (์ดˆ๊ธฐ ์ƒํƒœ)
    • TO-MOVE(s)\text{TO-MOVE}(s)TO-MOVE(s) ๋˜๋Š” PLAYER(s)\text{PLAYER}(s)PLAYER(s): ์ƒํƒœ sss์—์„œ ์ฐจ๋ก€์ธ ํ”Œ๋ ˆ์ด์–ด
    • ACTIONS(s)\text{ACTIONS}(s)ACTIONS(s): ์ƒํƒœ sss์—์„œ ๊ฐ€๋Šฅํ•œ ํ•ฉ๋ฒ•์ ์ธ ์ˆ˜(legal moves)์˜ ์ง‘ํ•ฉ
    • RESULT(s,a)\text{RESULT}(s, a)RESULT(s,a): transitionย model\text{transition model}transitionย model (์ „์ด ๋ชจ๋ธ), ์ƒํƒœ sss์—์„œ ํ–‰๋™ aaa๋ฅผ ์ทจํ•œ ๊ฒฐ๊ณผ ์ƒํƒœ๋ฅผ ์ •์˜
    • IS-TERMINAL(s)\text{IS-TERMINAL}(s)IS-TERMINAL(s) ๋˜๋Š” TERMINAL(s)\text{TERMINAL}(s)TERMINAL(s): terminalย test\text{terminal test}terminalย test (์ข…๋ฃŒ ํ…Œ์ŠคํŠธ), ๊ฒŒ์ž„์ด ๋๋‚ฌ์„ ๋•Œ true\text{true}true(์ฐธ), ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false\text{false}false(๊ฑฐ์ง“). ๊ฒŒ์ž„์ด ์ข…๋ฃŒ๋œ ์ƒํƒœ๋ฅผ terminalย states\text{terminal states}terminalย states (์ข…๋ฃŒ ์ƒํƒœ)๋ผ๊ณ  ํ•จ.
    • UTILITY(s,p)\text{UTILITY}(s, p)UTILITY(s,p) ๋˜๋Š” UTILITY(s)\text{UTILITY}(s)UTILITY(s): utilityย function\text{utility function}utilityย function (ํšจ์šฉ ํ•จ์ˆ˜), ๊ฒŒ์ž„์ด ์ข…๋ฃŒ ์ƒํƒœ sss์—์„œ ๋๋‚  ๋•Œ ํ”Œ๋ ˆ์ด์–ด ppp์— ๋Œ€ํ•œ ์ตœ์ข… ์ˆซ์ž ๊ฐ’(final numeric value)์„ ์ •์˜

Search Tree and Game Tree (ํƒ์ƒ‰ ํŠธ๋ฆฌ์™€ ๊ฒŒ์ž„ ํŠธ๋ฆฌ)

  • ์ดˆ๊ธฐ ์ƒํƒœ, ACTIONS\text{ACTIONS}ACTIONS ํ•จ์ˆ˜, RESULT\text{RESULT}RESULT ํ•จ์ˆ˜๋Š” state space graph (์ƒํƒœ ๊ณต๊ฐ„ ๊ทธ๋ž˜ํ”„)๋ฅผ ์ •์˜
    • ์ •์ (vertices)์ด ์ƒํƒœ์ด๊ณ , ๋ชจ์„œ๋ฆฌ(edges)๊ฐ€ ์ˆ˜์ด๋ฉฐ, ํ•˜๋‚˜์˜ ์ƒํƒœ์— ์—ฌ๋Ÿฌ ๊ฒฝ๋กœ๋กœ ๋„๋‹ฌ ๊ฐ€๋Šฅ
    • ๊ทธ๋ž˜ํ”„ ์œ„์— searchย tree\text{search tree}searchย tree (ํƒ์ƒ‰ ํŠธ๋ฆฌ)๋ฅผ ๊ฒน์ณ์„œ ์–ด๋–ค ์ˆ˜๋ฅผ ๋‘˜์ง€ ๊ฒฐ์ • ๊ฐ€๋Šฅ
  • Complete game tree (์™„์ „ ๊ฒŒ์ž„ ํŠธ๋ฆฌ): ๋ชจ๋“  ์ˆ˜์˜ ์ˆœ์„œ(sequence of moves)๋ฅผ ๋”ฐ๋ผ ์ข…๋ฃŒ ์ƒํƒœ๊นŒ์ง€ ์ด์–ด์ง€๋Š” ํƒ์ƒ‰ ํŠธ๋ฆฌ
    • ํ‹ฑํƒํ† ์˜ ๊ฒŒ์ž„ ํŠธ๋ฆฌ๋Š” ๋น„๊ต์  ์ž‘์Œ (fewer than 9!9!9! = 362,880362,880362,880 $)
    • ์ฒด์Šค์˜ ๊ฒฝ์šฐ 104010^{40}1040 nodes(๋…ธ๋“œ)๋ฅผ ์ดˆ๊ณผํ•˜์—ฌ, game tree๋Š” ๋ฌผ๋ฆฌ์  ์„ธ๊ณ„์—์„œ ์‹คํ˜„ ๋ถˆ๊ฐ€๋Šฅํ•œ ์ด๋ก ์  ๊ตฌ์„ฑ๋ฌผ๋กœ ๊ฐ„์ฃผ

Minimax Value (๋ฏธ๋‹ˆ๋งฅ์Šค ๊ฐ’)

  • ๊ฒŒ์ž„ ํŠธ๋ฆฌ(game tree)๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ํŠธ๋ฆฌ์˜ ๊ฐ ์ƒํƒœ์— ๋Œ€ํ•œ minimax value (๋ฏธ๋‹ˆ๋งฅ์Šค ๊ฐ’), MINIMAX(s)\text{MINIMAX}(s)MINIMAX(s)๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์ตœ์  ์ „๋žต(optimal strategy)์„ ๊ฒฐ์ • ๊ฐ€๋Šฅ
  • Minimax value๋Š” ๋‘ ํ”Œ๋ ˆ์ด์–ด ๋ชจ๋‘ ๊ฑฐ๊ธฐ์„œ๋ถ€ํ„ฐ ๊ฒŒ์ž„ ๋๊นŒ์ง€ ์ตœ์ ์œผ๋กœ ํ”Œ๋ ˆ์ดํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ๋•Œ, ํ•ด๋‹น ์ƒํƒœ์— ์žˆ์„ ๋•Œ์˜ ํšจ์šฉ(utility)
  • ์ข…๋ฃŒ ์ƒํƒœ์˜ ๋ฏธ๋‹ˆ๋งฅ์Šค ๊ฐ’์€ ๋‹จ์ˆœํžˆ ๊ทธ utility\text{utility}utility(ํšจ์šฉ)
  • ๋น„์ข…๋ฃŒ ์ƒํƒœ(non-terminal state)์—์„œ, MAX\text{MAX}MAX๋Š” MAX\text{MAX}MAX์˜ ์ฐจ๋ก€์ผ ๋•Œ ์ตœ๋Œ€ ๊ฐ’(maximum value)์„ ๊ฐ€์ง„ ์ƒํƒœ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๊ณ , MIN\text{MIN}MIN์€ ์ตœ์†Œ ๊ฐ’(minimum value)์„ ๊ฐ€์ง„ ์ƒํƒœ๋ฅผ ์„ ํ˜ธ
  • ๋”ฐ๋ผ์„œ, MINIMAX(s)\text{MINIMAX}(s)MINIMAX(s):

MINIMAX(s)={UTILITY(s)ifย TERMINAL(s)maxโกaโˆˆACTIONS(s)MINIMAX(RESULT(s,a))ifย PLAYER(s)=MAXminโกaโˆˆACTIONS(s)MINIMAX(RESULT(s,a))ifย PLAYER(s)=MIN\text{MINIMAX}(s) = \begin{cases} \text{UTILITY}(s) & \text{if } \text{TERMINAL}(s) \\ \max_{a \in \text{ACTIONS}(s)} \text{MINIMAX}(\text{RESULT}(s, a)) & \text{if } \text{PLAYER}(s) = \text{MAX} \\ \min_{a \in \text{ACTIONS}(s)} \text{MINIMAX}(\text{RESULT}(s, a)) & \text{if } \text{PLAYER}(s) = \text{MIN} \end{cases} MINIMAX(s)=โŽฉโŽจโŽงโ€‹UTILITY(s)maxaโˆˆACTIONS(s)โ€‹MINIMAX(RESULT(s,a))minaโˆˆACTIONS(s)โ€‹MINIMAX(RESULT(s,a))โ€‹ifย TERMINAL(s)ifย PLAYER(s)=MAXifย PLAYER(s)=MINโ€‹

Minimax Search Algorithm (๋ฏธ๋‹ˆ๋งฅ์Šค ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

  • ๋ชจ๋“  ํ–‰๋™(actions)์„ ์‹œ๋„ํ•˜๊ณ  ๊ฒฐ๊ณผ ์ƒํƒœ(resulting state)๊ฐ€ ๊ฐ€์žฅ ๋†’์€ MINIMAX\text{MINIMAX}MINIMAX ๊ฐ’(value)์„ ๊ฐ–๋Š” ํ–‰๋™์„ ์„ ํƒํ•จ์œผ๋กœ์จ MAX\text{MAX}MAX์˜ best move (์ตœ์„ ์˜ ์ˆ˜)๋ฅผ ์ฐพ์Œ.

Alpha-Beta Pruning (์•ŒํŒŒ-๋ฒ ํƒ€ ๊ฐ€์ง€์น˜๊ธฐ)

  • ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฒŒ์ž„ ์ƒํƒœ์˜ ์ˆ˜๋Š” ํŠธ๋ฆฌ์˜ ๊นŠ์ด์— ๋”ฐ๋ผ ์ง€์ˆ˜์ (exponential)์œผ๋กœ ์ฆ๊ฐ€
  • ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ํŠธ๋ฆฌ์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๊ฐ€์ง€์น˜๊ธฐ(pruning)ํ•˜์—ฌ ๋ชจ๋“  ์ƒํƒœ๋ฅผ ๊ฒ€ํ† ํ•˜์ง€ ์•Š๊ณ ๋„ ์˜ฌ๋ฐ”๋ฅธ minimax decision(๋ฏธ๋‹ˆ๋งฅ์Šค ๊ฒฐ์ •)์„ ๊ณ„์‚ฐํ•˜์—ฌ ํƒ์ƒ‰์„ ์ค„์—ฌ์•ผ ํ•จ.
  • ์ด ๊ธฐ์ˆ ์„ alphaโ€“beta pruning (์•ŒํŒŒ-๋ฒ ํƒ€ ๊ฐ€์ง€์น˜๊ธฐ)์ด๋ผ๊ณ  ํ•จ.
  • General principle (์ผ๋ฐ˜ ์›๋ฆฌ)
    • ํŠธ๋ฆฌ์˜ ์–ด๋”˜๊ฐ€์— ์žˆ๋Š” ๋…ธ๋“œ nnn์„ ๊ณ ๋ ค, Player(ํ”Œ๋ ˆ์ด์–ด)๊ฐ€ nnn์œผ๋กœ ์ด๋™ํ•˜๋Š” ์„ ํƒ๊ถŒ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
    • ๋งŒ์•ฝ Player๊ฐ€ ๊ฐ™์€ ๋ ˆ๋ฒจ(mโ€ฒm'mโ€ฒ)์ด๋‚˜ ํŠธ๋ฆฌ์˜ ์ƒ์œ„ ๋ ˆ๋ฒจ(mmm)์—์„œ ๋” ๋‚˜์€ ์„ ํƒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด, Player๋Š” nnn์œผ๋กœ ์ ˆ๋Œ€ ์ด๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ
    • nnn์— ๋Œ€ํ•ด ์ด ๊ฒฐ๋ก ์— ๋„๋‹ฌํ•  ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์•Œ๊ฒŒ ๋˜๋ฉด (descendants(ํ›„์†) ์ผ๋ถ€๋ฅผ ๊ฒ€ํ† ํ•˜์—ฌ), nnn์„ ๊ฐ€์ง€์น˜๊ธฐ(prune) ๊ฐ€๋Šฅ
  • Alpha-beta pruning์€ ๋‘ ๊ฐœ์˜ ์ถ”๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ฮฑ\alphaฮฑ์™€ ฮฒ\betaฮฒ์—์„œ ์ด๋ฆ„์„ ๋”ฐ์˜ด.
    • ฮฑ\alphaฮฑ: ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋‚˜ํƒ€๋‚˜๋Š” MAX\text{MAX}MAX์˜ ์ตœ๋Œ“๊ฐ’(best value)
    • ฮฒ\betaฮฒ: ํ˜„์žฌ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋‚˜ํƒ€๋‚˜๋Š” MIN\text{MIN}MIN์˜ ์ตœ์†Ÿ๊ฐ’(best value)
  • Algorithm (์•Œ๊ณ ๋ฆฌ์ฆ˜)
    • Alpha-beta search๋Š” ์ง„ํ–‰ํ•˜๋ฉด์„œ ฮฑ\alphaฮฑ์™€ ฮฒ\betaฮฒ์˜ ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•˜๊ณ , ํ˜„์žฌ ๋…ธ๋“œ์˜ ๊ฐ’์ด MAX\text{MAX}MAX ๋˜๋Š” MIN\text{MIN}MIN์— ๋Œ€ํ•ด ๊ฐ๊ฐ ํ˜„์žฌ ฮฑ\alphaฮฑ ๋˜๋Š” ฮฒ\betaฮฒ ๊ฐ’๋ณด๋‹ค ๋‚˜์˜๋‹ค๋Š” ๊ฒƒ์ด ์•Œ๋ ค์ง€์ž๋งˆ์ž ๋‚˜๋จธ์ง€ ๋ธŒ๋žœ์น˜(branches)๋ฅผ ๊ฐ€์ง€์น˜๊ธฐ(prune) ๊ฐ€๋Šฅ
์ตœ๊ทผ ์ˆ˜์ •: 25. 11. 6. ์˜คํ›„ 12:07
Contributors: kmbzn
Prev
2. Basics; Linear Algebra (2), Search (1)
Next
4. Knowledge and Logic (1)

BUILT WITH

CloudflareNode.jsGitHubGitVue.jsJavaScriptVSCodenpm

All trademarks and logos are property of their respective owners.
ยฉ 2025 kmbzn ยท MIT License