概要
- 2KB以内 に収めた最小限のチェスエンジン「sameshi」の紹介
- Negamax法 と アルファベータ枝刈り による探索アルゴリズム
- 120セル“mailbox”方式 の盤面表現
- チェックメイト/ステイルメイト判定 サポート
- Stockfish との対戦によるEloレーティング評価
sameshi: 2KBチェスエンジンの概要
- sameshi は、 2KB 以内に収められた極小チェスエンジン
- Negamax法 と アルファベータ枝刈り による効率的な探索実装
- 120セルmailbox方式 で盤面を表現し、盤外判定を容易化
- 合法手判定 (チェック/メイト/ステイルメイト)機能を実装
- 評価関数 は駒の点数のみを使用し、シンプルな設計
- キャプチャ優先の指し手順序 による探索効率向上
- 未対応ルール :キャスリング、アンパッサン、プロモーション、手数引き分け、三fold repetition
- Eloレーティング は約1170(95%信頼区間: 1110-1225)と推定
- Stockfish (Elo 1320-1600)との240局自動対戦による評価
- 固定探索深さ5、最大60手(plies)までの制限付き対戦
技術的特徴
- Negamax法 :MinMax法の変形で、実装を簡潔化
- アルファベータ枝刈り :不要な探索を省略し、計算効率を大幅向上
- 120セルmailbox :8x8盤面を120セルの1次元配列で管理し、盤外参照時のエラー防止
- 合法手生成・検証 :チェック、メイト、ステイルメイトまで対応
- 素材評価のみ :局面評価は駒の合計点数のみで判断
パフォーマンス評価
- Stockfish との自動対戦で実力測定
- 240局 の対戦データを収集
- 勝利/引き分け/敗北 のスコアをプールし、標準的なロジスティック式でElo換算
- 色(白黒) の分布も均等化
- 95%信頼区間 でElo推定の信頼性を確保
開発者コメント
- demoscene (コンピュータアートサブカルチャー)へのリスペクトから、極小サイズに挑戦
- エッジケース を削ることで、チェックメイト/ステイルメイト判定を実装しつつ容量削減
- Makefile や readableバージョン も提供し、可読性と再現性を重視
まとめ
- sameshi は、 教育用途 や アルゴリズム学習、 サイズ制約下の開発 に最適
- フル機能チェスエンジン ではないが、 最小限の実装 で本質を体験可能
- ソースコード や デモ動画 も公開されており、誰でも試せる環境