中國象棋計算機博弈發展史研究報告

系統梳理中國象棋計算機博弈從 1980 年代到 2026 年的技術演進、代表引擎與社群生態。 搜索的完整流程 → 測試對局的安排

☰ 目錄

搜索的完整流程

一次引擎搜索的完整流程:

  1. 接收"go"指令,解析搜索參數
  2. 初始化搜索狀態(根局面、搜索深度等)
  3. 迭代加深搜索(從depth=1開始)
  4. 在每一層調用Alpha-Beta搜索
  5. PVS搜索主變分支
  6. 在非主變分支使用零窗口搜索
  7. 應用各種剪枝技術
  8. 使用NNUE評估葉子局面
  9. 更新置換表
  10. 達到迭代加深條件(時間用完或達到最大深度)
  11. 返回最佳着法給GUI

引擎內存使用分析

中國象棋引擎的內存使用分佈:

  1. 置換表:64-1024MB(主要內存使用者)
  2. NNUE網絡權重:2-10MB
  3. 開局庫:1-100MB(取決於大小)
  4. 預計算表:1-5MB
  5. 其他數據結構:1-10MB

引擎性能指標

中國象棋引擎的核心性能指標:

  1. NPS(每秒搜索節點數):表示引擎的搜索速度
  2. 平均搜索深度:表示引擎在單位時間內的搜索深度
  3. 緩存命中率:表示置換表的利用效率
  4. 剪枝率:表示各種剪枝技術的效果
  5. ELO等級分:表示引擎的棋力水平

第三十二卷 中國象棋引擎測試的最佳實踐

測試環境設置

中國象棋引擎測試的環境設置規範:

  1. 使用相同的硬件和操作系統
  2. 使用相同的編譯器和編譯選項
  3. 使用相同的開局庫和時間控制
  4. 控制處理器核心的隔離(避免其他進程干擾)
  5. 記錄環境信息用於結果復現

測試對局的安排

中國象棋引擎測試對局的安排規範:

  1. 開局選擇:使用多樣化開局(或標準開局測試集)
  2. 顏色輪換:紅方和黑方交替使用測試引擎和參考引擎
  3. 時間控制:使用標準時間控制(如15秒+0.5秒)
  4. 對局數量:至少1000局以獲得統計顯著的結果
  5. 結果記錄:記錄每局的結果(勝/負/和)