xqbase/eleeye

ElephantEye - a XiangQi (Chinese Chess) Engine for XQWizard with Strong AI

해결하는 문제

ElephantEye는 고수준에서 상기(중국 장기)를 플레이할 수 있도록 설계된 무료 오픈소스 게임 엔진입니다. 보드 상태를 분석하고 최적의 수를 결정하며, 인간 플레이어나 다른 엔진과 대결할 수 있는 계산 논리를 제공합니다.

작동 방식

ElephantEye는 '브루트포스' 접근법과 엄격한 게임 이론 알고리즘을 결합합니다. 주요 기술적 구성 요소는 다음과 같습니다:

  • 탐색 알고리즘: 반복적 심화를 포함한 재귀적 알파-베타 탐색, 킬러 수, 히스토리 히ュ리스틱을 사용하여 미래의 수를 효율적으로 탐색합니다.
  • 수 생성: 슬라이딩 피스(기와 포)의 수를 빠르게 생성하고, 피스의 핀 상태를 판단하기 위해 BitRanks와 BitFiles(비트보드)를 사용합니다.
  • 최적화: 중복 계산을 피하기 위해 두 계층의 전이 테이블(깊이 우선 및 항상 덮어쓰기)을 구현하고, Null Move Pruning(R=2)을 사용하여 탐색 속도를 높입니다.
  • 평가: 탐색 로직과 보드 평가 함수를 API를 통해 분리하여, 개발자가 평가 함수를 교체하거나 개선할 수 있도록 합니다.
  • 프로토콜 지원: UCCI 3.0 프로토콜을 지원하여 XQWizard과 같은 GUI 프론트엔드와 통합할 수 있습니다.

대상 사용자

  • 상기 애호가: 강력한 AI 상대를 찾거나, 자신의 대국을 분석할 도구가 필요한 사람.
  • 게임 AI 개발자: 전통적인 게임 트리 탐색 알고리즘과 체스 게임 AI 아키텍처에 관심 있는 프로그래머.

주요 특징

  • UCCI 3.0 호환: 표준 중국 장기 엔진 인터페이스와 원활하게 연동 가능.
  • 풍부한 오프닝 북: 최상위 프로 대국에서 유도된 10,000개의 대칭 수를 포함한 라이브러리.
  • 모듈러 디자인: 탐색 엔진과 평가 함수를 분리하여 다른 사용자가 쉽게 확장하거나 수정할 수 있도록 설계되었습니다.
  • 포괄적인 툴셋: 오프닝 북 생성, 탐색 트리 분석, 게임 표기 형식 변환 등에 사용할 수 있는 유틸리티가 포함되어 있습니다.

관련