thomasahle/sunfish
Sunfish: a Python Chess Engine in 111 lines of code
해결하는 문제
Sunfish는 Python으로 작성된 작고 오픈소스인 체스 엔진입니다. 일상적인 게임에 충분히 강력하면서도, 검색 알고리즘, 평가 함수, 체스 프로그래밍에서의 딥러닝을 실험할 수 있는 매우 접근성 높은 플랫폼을 제공합니다.
작동 방식
엔진은 MTD-bi 검색 알고리즘(또는 C*)을 사용하며, 전통적인 체스 엔진 최적화 기법을 포함합니다. 효율적으로 업데이트 가능한 피스 스퀘어 테이블(PST)을 사용하여 평가 함수를 구현하고, 표준 Python 컬렉션을 활용해 코드의 명확성을 유지합니다. 별도로 NNUE 버전도 제공되며, 전통적인 피스 스퀘어 점수에 학습된 신경망 잔차를 결합하여 전체 네트워크를 단일 Python 정수에 압축하여 고성능 평가를 구현합니다.
대상 사용자
체스 엔진의 작동 원리를 배우거나, 자체 파생 버전을 개발하고자 하는 체스 애호가 및 개발자에게 적합합니다. 또한 표준 UCI GUI 및 토너먼트 도구와 호환됩니다.
주요 특징
- 초소형: 압축 시 핵심 엔진은 단 126줄의 코드로 구성됩니다.
- UCI 호환: Arena, Cute Chess, PyChess 등의 표준 체스 GUI와 호환됩니다.
- PyPy 지원: PyPy JIT 인터프리터에 최적화되어 CPython보다 최대 2.7배 빠른 탐색이 가능합니다.
- NNUE 통합: 작고 검증된 신경망 평가 버전(nnue_4k)을 포함하며, 전통 버전보다 Elo 등급이 향상됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트