ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [인공지능] Game AI 이론
    인공지능 2020. 12. 5. 16:28
    728x90

    Game

    Multiagent Competitve environment : Contingencies(if-else)

    Deterministic : 바둑, 체스처럼 Action 에 의한 state가 결정적임. Nondeterministic : 주사위게임처럼 주사위를 던진다는 행위만으로는 다음 state 가 결정적이지 않음

    Turn-taking : 턴제 게임

    Two-ply : 한 플레이어가 한 턴에 한 번씩만 action

    Zero-sum : 누군가 이기면(+1) 누군가는 짐(-1) → 합계가 0임,          내가 비기면(0) 상대도 비김(0)

    perfect-information : 게임에 필요한 모든 정보를 제공

     

    게임의 가장 큰 문제는 search space 가 지나치게 크기 때문에 모든 경우의 수를 고려하여 최적을 알아내는것은 불가능하다는 것

    Game tree

    MAX : 나 자신

    MIN : 상대 agent

    S0 : Initial state

    PLAYER(s) : 누구 차례인지 알려주는 함수 → MIN or MAX

    ACTIONS(s) : PLAYER(s) 의 action 집합

    RESULT(s, a) : transition model

    TERMINAL-TEST(s) : 게임이 끝난 상태라면 true, 아니면 false

    UTILITY(s, p) : 게임이 끝났을 때 몇점을 줄지에 대한 함수 ( terminal state 에 대해서만 정의 )

     

    MAX 는 contingent strategy 로 움직임

    initial state 에서 MAX의 Action 을 정해줘야하고, 이후 MIN 이 어떤 행동을 하든 그에 맞는 MAX 의 Action이 결정되어 있어야함

     

    Minimax Search

    MINIMAX : 노드 N에서 양 플레이어가 모두 optimal 하게 움직였을때의 utility

     

    MINIMAX 가 중요한 이유는 서로 경쟁적인(Competiteve) 게임에서는 MIN 또한 자기 자신에게 최적으로 움직일 것이므로, MAX의 score 를 최소한으로 만들려고 하기 때문에 MAX는 최악의 상황을 가정하고, 거기서 최대한의 점수를 내는 방향으로 움직임

     

    MINIMAX(s) =

    if TERMINAL-TEST(s) → UTILITY(s)

    if PLAYER(s) = MAX → maxa∈ACTIONS(s) MINIMAX(RESULT(s, a))       → MINIMAX 가 최대인 거 선택

    if PLAYER(s) = MIN → mina∈ACTIONS(s) MINIMAX(RESULT(s, a))         → MINIMAX 가 최소인거 선택

     

    문제점

    • Search space 가 너무 큼

    • 시간 복잡도만 해도 O(bm)

      • b = branching factor

      • m = 게임 내 수의 개수

    Alpha-beta pruning

    (c) : initial state A 에서 state B 로 이동했을 때 MIN 은 MAX 의 점수를 최소로 가져가는 Action 을 취할 것이므로 점수가 가장 낮은 것(3점)을 MINMAX 값으로 선정한 뒤 MAX에게 통보.  나에게로 오면 최악의 경우 3점을 줄 수 있어!

    (d) : pruning 되는 대표적인 케이스로, 첫 번째 자식이 2임. 이것은 기존에 얻었던 3점보다 낮은 점수로 MAX 입장에서는 해당 state 로 갈 이유가 없음

    (f) : d 와 마찬가지로 MINIMAX 가 2이므로 갈 이유가 없음

     

    Alpha : MAX’s best choice = 최대 점수

    Beta : MIN’s best choice = 최소 점수

     

    탐색 순서에 따라 pruning 의 정도가 다르므로 이를 개선하기 위함

    최적의 순서로 간다면 sqrt(b)m 까지 가능

    하지만 이것은 불가능하니 랜덤으로 한다면 b3/4m 까지는 가능함

    Heuristic minimax

    시간과의 타협으로 인해 완벽하지 않은 alpha-beta search

    H-MINIMAX(s, d) = 

    if CUTOFF-TEST(s, d) → EVAL(s)

    if PLAYER(s) = MAX → maxa∈ACTIONS(s) H-MINIMAX(RESULT(s, a), d + 1)

    if PLAYER(s) = MAX → mina∈ACTIONS(s) H-MINIMAX(RESULT(s, a), d + 1)

     

    CUTOFF-TEST = terminal node 가 너무 깊은 곳에 있어서 적당한 depth 에서 cutoff 하는 것

    EVAL(s) = UTILITY 함수 대신 온 것

    H-MINIMAX 에 d + 1 은 현재 상태의 depth 값을 추적하기 위함

    Evaluation function

    기대되는 utility 의 추정 값

    좋은 evalutation function

    • eval() 로 terminal state 를 평가했을 때 utility 함수와 동일한 값을 가져야함

      • 즉 UTILITY(A) > UTILITY(B) 이면 EVAL(A) > EVAL(B) 여야함

    • Computation 시간이 적게 걸려야함

    • Nonterminal state 와는 이길 확률로 연관되어야 함

    • 위 세 조건을 모두 보장할 필요는 없으며 한 두개 정도는 괜찮음

    Evaluation function In Chess 

    말의 수로 평가함. 좋은 말 일수록 가중치를 두는 방식(Weighted linear function) 을 사용하기도 함

    EVAL(s) = w1 * f1(s) + w2 * f2(s) + … + wn * fn(s)

     

    Endgame database : 게임 후반부에 다다르면 경우의 수가 적으므로 이 때의 최선의 패턴을 미리 학습해두는 것

    Monte carlo tree search : 알파고가 사용한 방법으로 트리 전체가 아닌 확률이 높은 일부분만 탐색하는 방법

     

    '인공지능' 카테고리의 다른 글

    [인공지능] Local consistency  (0) 2020.12.05
    [인공지능] CSP 문제  (0) 2020.12.05
    [인공지능] Partial observable search  (0) 2020.12.03
    [인공지능] No observation searching  (0) 2020.12.03
    [인공지능] And-Or Tree  (0) 2020.12.03

    댓글

Designed by Tistory.