2. 게임 트리 탐색 알고리즘
□ 게임 트리 탐색은 인공지능 게임 프로그램을 구현하기 위해 사용
○ 체스나 장기, tic-tac-toe 와 같이 두 플레이어가 번갈아가며 수를 두는 게 임은 일반적으로 트리 형태로 표현
○ 바둑에서의 게임 트리는 [그림 1]과 같이 표현되고, 두 플레이어가 번갈아 가면서 수를 두면 트리가 확장
-특정 게임 상태에서 다음 수를 예측하기 위해서는 수읽기를 통해 가장 승리할 확률이 높은 곳을 결정
-이 과정이 트리의 탐색이고, 이론적으로는 현재 상태에서 가능한 모든결과를 미리 알 경우 가장 승률이 높은 수를 선택
*세계 체스챔피온을 꺾은 IBM의 딥블루는 가능한 모든 결과를 탐색한 예
○ 트리탐색기법(트리순회 : Tree traversal)은 트리 구조에서 각각의 노드를 한번씩, 체계적인 방법으로 방문하는 과정
-트리탐색 기법에는 탐색 순서에 따라 전・중・후위 및 레벨 순서 순회기 법이 있음
-이중 전위순회(preorder)는 깊이우선의 탐색(depth-first search: DFS) 이 라고도 하며, 이후 설명할 MinMax 알고리즘의 탐색방법
-트리의 깊이우선 탐색 과정 [그림 4]
□ 최소-최대(Minimax, MM) 알고리즘 : 게임에서 한 플레이어에게 유리한 수 는 상대 플레이어에게는 불리한 수
○ 상대의 승산을 최소화하고 자신의 승산을 최대화 하는 것이 게임에서 승리하 는 방법이기 때문에, 이 경로를 찾는 것이 인공지능 게임 프로그램의 핵심
○ [그림 5]는 깊이가 4수로 제한된 게임의 MinMax 알고리즘의 탐색 결과 예시
-[그림 5]의 MinMax 알고리즘의 트리 탐색 과정은 [그림 4]와 동일한 깊 이 우선 탐색을 수행
-각 서브트리의 탐색이 끝나면 기존 탐색된 노드들을 역으로 거슬러 올 라가면서 상위노드로 평가 값을 반영
*이때, 최대값과 최소값을 교대로 비교하여 최종 서브트리를 선택
□ 게임 트리 탐색의 효율성이 인공지능 프로그램의 성능을 좌우
○ 최소-최대 알고리즘의 경우 트리의 모든 노드를 탐색해야하기 때문에, 게임 의 복잡도가 클 경우 트리를 전부 확장하여 탐색하는 것이 현실적으로 불 가능
○ 알파-베타 가지치기 알고리즘은 최소-최대 알고리즘에서 더 이상 계산할 필요가 없는 경로를 제거하는 기법으로 계산량을 대폭 절감
○ 바둑은 앞서 기술한바와 같이 게임의 복잡도가 매우 크기 때문에, 인공지능 바둑 프로그램은 막대한 계산량을 최소화하고 게임 예측성능을 높이는 것 이 목표
-바둑을 트리로 표현하면 250^150의 노드를 갖게 되므로, 알파-베타 가지치 기는 바둑 인공지능 구현에 매우 비효율적
-모든 노드를 탐색하는 것이 사실상 불가능하므로, 트리 탐색의 폭과 깊 이를 적절하게 제한하는 방법이 필요함
*이 방법이 AlphaGo에서 사용된 것으로 자세한 내용은 다음 장에서 다룸
출처 : 소프트웨어정책연구소
'인공지능' 카테고리의 다른 글
AlphaGo의 인공지능 알고리즘 분석 5 (0) | 2016.07.28 |
---|---|
AlphaGo의 인공지능 알고리즘 분석 4 (2) | 2016.06.24 |
AlphaGo의 인공지능 알고리즘 분석 2 (0) | 2016.06.20 |
AlphaGo의 인공지능 알고리즘 분석 1 (0) | 2016.06.20 |
인공지능을 이해하기 위해 필요한 10가지 이야기 (0) | 2016.06.19 |