中国象棋计算机博弈发展史研究报告

系统梳理中国象棋计算机博弈从 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. 结果记录:记录每局的结果(胜/负/和)