thomasahle/sunfish
Sunfish: a Python Chess Engine in 111 lines of code
解決する課題
Sunfishは、シンプルで読みやすく、かつプレイに十分な強さを持つように設計されたミニマリストなチェスエンジンです。開発者がチェスプログラミングにおける探索アルゴリズム、評価関数、およびディープラーニングを実験するための学習プラットフォームとして機能する、コンパクトなコードベースを提供します。
仕組み
このエンジンはPythonで書かれており、MTD-bi (C*) 探索アルゴリズムを使用しています。効率的に更新可能な評価関数のためのPiece Square Tablesや、データ構造のための標準的なPythonコレクションなど、古典的なチェスエンジンの技術を採用しています。また、特化したNNUE (Efficiently Updatable Neural Network) バージョンも用意されており、学習済みのニューラル残差を単一のPython整数に詰め込むことで、極めて小さなフットプリントを維持しながら対局の強さを向上させています。
対象者
チェスエンジンの読みやすいリファレンス実装、または独自の派生エンジンを作成するためのベースを求めている開発者、学生、およびチェスエンジン愛好家を対象としています。
ハイライト
- 超コンパクト: コアエンジンは約152行のコードで構成されています。
- UCI互換: Arena、Cute Chess、PyChessなどの標準的なチェスGUIで使用可能です。
- NNUEサポート: サイズをわずか数キロバイトに抑えつつ、ニューラルネットワークベースの評価バージョンが含まれています。
- 拡張性: 並列探索、ディープラーニング、および評価のチューニングを実験するためのプラットフォームとして特別に設計されています。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト