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。
  • 可擴展性: 專門設計為用於實驗並行搜尋、深度學習與評估調優的平台。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案