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: 包含一個基於神經網路的評估版本,大小僅為數 KB。
- 可擴展性: 專門設計為用於實驗並行搜尋、深度學習與評估調優的平台。
相關
- 專案
- 專案
- 專案
- 專案
- 專案