Design of Omok AI using Genetic Algorithm and Game Trees and Their Parallel Processing on the GPU

유전 알고리즘과 게임 트리를 병합한 오목 인공지능 설계 및 GPU 기반 병렬 처리 기법

  • 안일준 (한국과학기술원 전기및전자공학과) ;
  • 박인규 (인하대학교 정보통신공학부)
  • Received : 2009.07.29
  • Accepted : 2010.02.04
  • Published : 2010.04.15

Abstract

This paper proposes an efficient method for design and implementation of the artificial intelligence (AI) of 'omok' game on the GPU. The proposed AI is designed on a cooperative structure using min-max game tree and genetic algorithm. Since the evaluation function needs intensive computation but is independently performed on a lot of candidates in the solution space, it is computed on the GPU in a massive parallel way. The implementation on NVIDIA CUDA and the experimental results show that it outperforms significantly over the CPU, in which parallel game tree and genetic algorithm on the GPU runs more than 400 times and 300 times faster than on the CPU. In the proposed cooperative AI, selective search using genetic algorithm is performed subsequently after the full search using game tree to search the solution space more efficiently as well as to avoid the thread overflow. Experimental results show that the proposed algorithm enhances the AI significantly and makes it run within the time limit given by the game's rule.

본 논문에서는 GPU(graphics processing unit)를 이용하여 오목의 인공지능 알고리즘 연산을 고속으로 수행하기 위한 효율적인 알고리즘 설계와 구현 방법을 제안한다. 본 논문에서 제안하는 게임 인공지능은 최소-최대 게임 트리(min-max game tree)와 유전 알고리즘(genetic algorithm)의 협업적 구조로 설계된다. 게임 트리와 유전 알고리즘의 평가함수(evaluation function) 부분은 많은 계산 량을 소모하지만 해 공간(solution space)의 수많은 후보 벡터에 대해 독립적으로 수행되기 때문에 본 논문에서는 이를 GPU 상에서의 대량 병렬처리를 통해 수행한다. NVIDIA CUDA(compute unified device architecture)환경에서의 실제 구현을 통해 CPU에서의 처리에 비해 게임 트리는 400배 이상의 수행 속도의 향상을, 유전 알고리즘은 300배 이상의 수행 속도의 향상을 각각 보였다. 본 논문에서는 스레드(thread)의 넘침(overflow)을 피하고 보다 효과적인 해 공간 탐색을 위해, 게임 트리를 이용하여 근방의 몇 단계까지 전역 탐색(full search)을 수행한 후 이후 단계는 유전 알고리즘을 이용하여 선별 탐색을 수행하는 협업적 인공지능을 제안한다. 다양한 실험 결과를 통해 제안하는 알고리즘은 게임의 인공지능을 향상시키고 게임의 규칙으로부터 주어진 시간 내에 문제를 해결할 수 있음을 보인다.

Keywords

References

  1. General Purpose GPU (GPGPU) Homepage, http:// www.gpgpu.org.
  2. J. D. Owens, M. Houston, D. Luebke, S. Green, J. E. Stone, and J. C. Phillips, "GPU computing," Proceedings of the IEEE, vol.96, no.5, pp.879-899, May 2008. https://doi.org/10.1109/JPROC.2008.917757
  3. NVIDIA Corporation, Compute Unified Device Architecture (CUDA), http://developer.nvidia.com/object/ cuda.html
  4. NVIDIA Corporation, $CUDA^{TM}$ Programming Guide, June 2008.
  5. R. Rost, OpenGL Shading Language Second Edition, Addison-Wesley, 2006.
  6. I. K. Park, N. Singhal, M. H. Lee, and S. Cho, "Efficient design and implementation of visual computing algorithms on the GPU," Proc. IEEE International Conference on Image Processing (ICIP 2009), pp.2321-2324, November 2009.
  7. J. Lee and H. Ryu, "Current status and future prospect of personal supercomputer using GPU parallel computing," The Magazine of the IEEK, vol.36, no.5, pp.18-27, May 2009.
  8. http://en.wikipedia.org/wiki/Deep_Blue_(chess_ computer)
  9. R. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, MIT Press, 1998.
  10. N. J. van Eck and M. van Wezel, "Application of reinforcement learning to the game of Othello," Computers and Operations Research, vol.35, no.6, pp.1999-2017, June 2008. https://doi.org/10.1016/j.cor.2006.10.004
  11. I. Ghory, "Reinforcement learning in board games," CSTR-04-004, Dept. of Computer Science, University of Bristol, May 2004.
  12. M. Deloura, Game Programming Gems, Charles River Media, 2001.
  13. B.-R. Moon, Easy-to-learn genetic algorithm : Evolutionary approach, Hanbit Media, 2008.