中国象棋计算机博弈发展史研究报告
系统梳理中国象棋计算机博弈从 1980 年代到 2026 年的技术演进、代表引擎与社区生态。 搜索的完整流程 → 测试对局的安排
☰ 目录
搜索的完整流程
一次引擎搜索的完整流程:
- 接收"go"指令,解析搜索参数
- 初始化搜索状态(根局面、搜索深度等)
- 迭代加深搜索(从depth=1开始)
- 在每一层调用Alpha-Beta搜索
- PVS搜索主变分支
- 在非主变分支使用零窗口搜索
- 应用各种剪枝技术
- 使用NNUE评估叶子局面
- 更新置换表
- 达到迭代加深条件(时间用完或达到最大深度)
- 返回最佳着法给GUI
引擎内存使用分析
中国象棋引擎的内存使用分布:
- 置换表:64-1024MB(主要内存使用者)
- NNUE网络权重:2-10MB
- 开局库:1-100MB(取决于大小)
- 预计算表:1-5MB
- 其他数据结构:1-10MB
引擎性能指标
中国象棋引擎的核心性能指标:
- NPS(每秒搜索节点数):表示引擎的搜索速度
- 平均搜索深度:表示引擎在单位时间内的搜索深度
- 缓存命中率:表示置换表的利用效率
- 剪枝率:表示各种剪枝技术的效果
- ELO等级分:表示引擎的棋力水平
第三十二卷 中国象棋引擎测试的最佳实践
测试环境设置
中国象棋引擎测试的环境设置规范:
- 使用相同的硬件和操作系统
- 使用相同的编译器和编译选项
- 使用相同的开局库和时间控制
- 控制处理器核心的隔离(避免其他进程干扰)
- 记录环境信息用于结果复现
测试对局的安排
中国象棋引擎测试对局的安排规范:
- 开局选择:使用多样化开局(或标准开局测试集)
- 颜色轮换:红方和黑方交替使用测试引擎和参考引擎
- 时间控制:使用标准时间控制(如15秒+0.5秒)
- 对局数量:至少1000局以获得统计显著的结果
- 结果记录:记录每局的结果(胜/负/和)