中国象棋计算机博弈发展史研究报告
系统梳理中国象棋计算机博弈从 1980 年代到 2026 年的技术演进、代表引擎与社区生态。 第一章 引擎开发者群像 → 第六章 结语:技术、社区与文化的融合
第一章 引擎开发者群像
1.1 陈朝营:从个人开发者到商业引擎领袖
陈朝营是中国象棋引擎史上最重要的人物之一。他开发的象棋旋风(Cyclone/Tornado)和倚天象棋(Intella)代表了2005-2010年间中国象棋引擎的最高水平。
陈朝营并非计算机科学科班出身,他凭借对编程和中国象棋的热爱,从零开始学习引擎开发技术。他的技术积累过程包括:
- 研究ElephantEye的开源代码,理解中国象棋引擎的基本架构
- 学习国际象棋引擎(特别是Crafty和Fruit)的先进技术
- 在棋中论坛上与社区成员交流,获取反馈和技术建议
- 通过比赛检验引擎性能,不断优化和改进
陈朝营的开发者日记(发表于棋中论坛)记录了他开发引擎的心路历程和技术思考。这些日记是中国象棋引擎开发的珍贵历史资料。
陈朝营的技术哲学:
- 搜索为王:他认为引擎棋力的核心在于搜索效率,评估函数次之
- 工程优先:他强调代码效率和性能优化,注重编译和运行时的性能
- 用户导向:他重视引擎的易用性和用户体验,使旋风成为大多数用户的理想选择
1.2 黄晨:开源之父的技术贡献
黄晨对UCCI协议的贡献已在前面章节详细讨论。这里补充其技术人格的一些侧面:
黄晨的技术哲学:
- 开放共享:他坚持将ElephantEye以LGPL许可证开放,即使这意味着他的引擎棋力永远无法追上商业引擎
- 教育优先:他撰写的技术文档以教学为目标,帮助初学者理解和掌握引擎开发技术
- 标准化推动:他设计的UCCI协议和XQF格式,促进了中国象棋引擎生态的标准化
黄晨的xqbase.com网站不仅发布ElephantEye,还整理了大量的中国象棋编程资源。网站内容包括:
- 局面表示的实现详解
- 着法生成的算法优化
- 搜索树的实现框架
- 评估函数的设计思路
- UCCI协议的完整规范
- 中国象棋编程常见问题解答
xqbase.com的维护工作持续了十余年,期间黄晨不断更新和补充内容。即使在ElephantEye的棋力已经被商业引擎超越后,他仍然坚持维护网站和代码。
黄晨还开发了一系列工具:
- ElephantBoard(象棋巫师):一个功能丰富的中国象棋GUI
- XQFTOOLS:XQF格式和PGN格式之间的转换工具
- UCCI调试器:帮助开发者测试UCCI协议实现的工具
这些工具构成了中国象棋引擎开发的基础设施,降低了他人的开发门槛。
1.3 蒋志敏与张闽:名手组合的技术故事
蒋志敏和张闽的象棋名手在中国象棋商业引擎领域创造了辉煌的历史。这对组合的特点在于:
蒋志敏主要负责引擎的搜索算法和核心引擎逻辑。他在搜索优化方面有深厚造诣,名手的PVS搜索效率在同时代引擎中处于领先地位。
张闽主要负责评估函数和局面理解。他对中国象棋的棋理有深入理解,名手的评估函数被认为是手工评估时代的巅峰之作。
两人的分工合作模式是名手成功的关键:一个人专注于"怎么搜"(搜索算法),一个人专注于"怎么评"(评估函数)。这种专业化的分工模式在个人开发者为主的中国象棋引擎社区中非常罕见。
名手的命名也有一个有趣的故事:"名手"二字既取"著名棋手"之意,也隐含"名师出高徒"的企业愿景(引擎帮助棋手提高水平)。
名手对中国象棋教师群体的重视也是其成功因素之一。名手团队与多所象棋学校和培训机构合作,使名手成为象棋教学的标准工具。
1.4 李国来与GGzero:强化学习的先行者
李国来开发的佳佳象棋最早采用了传统的Alpha-Beta架构。但他敏锐地意识到AlphaZero对棋类AI的革新意义。
GGzero项目是李国来对强化学习路线的探索。这个项目面临的主要挑战:
- 计算资源不足:深度强化学习需要大量的GPU计算资源,个人开发者的资源非常有限
- 技术路线不成熟:在当时,中国象棋强化学习的学术研究还处于非常早期的阶段
- 与Alpha-Beta的差距:GGzero的棋力始终未能达到传统Alpha-Beta引擎的水平
尽管如此,GGzero的探索为中国象棋引擎的后续发展积累了重要的经验。它证明了:
- MCTS+神经网络可以应用于中国象棋
- 自我对弈训练可以生成有用的局面评估数据
- 中国象棋强化学习的技术路线上需要更多社区协作
1.5 Daniel Tan:跨学科的新一代开发者
Daniel Tan是新一代中国象棋引擎开发者的代表。他的背景体现了中国象棋引擎开发者的多元化趋势:
- 学术背景:Daniel Tan有计算机科学的学术研究经验
- 跨学科视野:他的研究涵盖NNUE的设计、训练数据集优化、搜索算法改进等
- 国际合作:他与Neftali Watkinson Medina合作发表了关于NNUE训练数据集的学术论文
Daniel Tan的Orange引擎是中国象棋独立NNUE引擎的代表。与基于Stockfish代码库的皮卡鱼不同,Orange是从零开始实现的独立引擎。这种"从零开始"的开发路线虽然困难,但有助于深入理解NNUE的技术细节。
第二章 棋中论坛的技术帖精选
2.1 技术帖:空着裁剪在中国象棋中的适配
棋中论坛上关于空着裁剪(Null Move Pruning)的讨论是中国象棋引擎技术交流的重要案例。以下是对论坛讨论的整理:
主题:Null Move在中国象棋中的R值选择
R值(空着裁剪的深度缩减值)的选择对空着裁剪的效果有显著影响:
- R=2:裁剪激进,搜索速度快,但可能漏算关键着法
- R=3:裁剪程度适中,推荐的默认值
- R=4或以上:裁剪过于激进,不建议在大多数局面使用
在中国象棋中,空着裁剪的适配需要考虑:
- 将帅照面:在将帅照面的局面下需要禁用空着裁剪
- 残局阶段:在残局中空着裁剪的激进程度需要降低(因为一步棋的价值更大)
- 将军局面:在被将军时不能使用空着裁剪
2.2 技术帖:评估函数的调优策略
棋中论坛上关于评估函数调优的讨论:
评估函数的调优方法是社区长期讨论的话题。主要方法包括:
- 试错法:手动调整参数,然后通过自战测试验证效果
- 数据驱动法:使用大规模棋谱数据,通过线性回归或更复杂的统计方法优化参数
- 对比法:在特定局面下比较不同参数设置的评估结果
在中国象棋评估函数中,以下参数需要重点调优:
- 子力价值:车马炮士象兵的基础分值
- 位置价值:每个棋子在棋盘上每个位置的分值
- 棋型价值:特定棋型(如空头炮、窝心马、担子炮等)的调整分
第三章 中国象棋引擎的棋力进化路线图
3.1 1985-1995:初级阶段
棋力特征:业余初级(约1200-1600 ELO)
代表引擎:将族(1989)、象棋大师3(1992)
技术限制:
- 搜索深度4-7层(将族)到6-8层(象棋大师3)
- 评估函数基于简单的子力价值和基础位置权重
- 没有或只有极简单的置换表
- 没有空着裁剪或LMR等高级剪枝
- 单线程运行
与人类对手的关系:可以击败业余初级和中级爱好者,但容易输给业余高级和市级棋手。
3.2 1995-2005:中级阶段
棋力特征:业余高级到市级(约1700-2100 ELO)
代表引擎:棋隐(1997)、梦入神机(2004)、象棋奇兵(2005)
技术改进:
- 搜索深度提升到8-10层
- 评估函数新增位置价值和棋子活动性评估
- 引入置换表
- 开始尝试基础剪枝技术(如简单的空着裁剪)
- 仍然以单线程为主
与人类对手的关系:可以稳定击败省级以下棋手,但面对国家大师时仍有明显差距。
3.3 2005-2015:高级阶段
棋力特征:国家大师到超越特级大师(约2200-2800 ELO)
代表引擎:象棋旋风(2005-2008)、棋天大圣(2006)、倚天象棋(2008)、象棋名手(2009-2014)
技术改进:
- 搜索算法全面升级到PVS
- 多线程并行搜索(2-4核)
- 分布式计算支持(名手)
- 评估函数高度精细化(数百个特征)
- 全面的剪枝技术(空着裁剪、LMR、SEE、Futility等)
- 大规模开局库和残局库支持
与人类对手的关系:2006年后,顶级引擎已达特级大师水平。2010年后,引擎全面超越人类棋手。
3.4 2022-2026:NNUE时代
棋力特征:远超人类极限(>3300 ELO)
代表引擎:皮卡鱼(2022-至今)、Orange(2024)、Cyclone-nn(NNUE版)
技术革新:
- NNUE神经网络评估替代手工评估
- Lazy SMP并行搜索(高核心数可扩展)
- ATT++等新型评估架构
- 基于Fishtest的统计验证
- 开源社区驱动开发
与人类对手的关系:引擎棋力远超人类棋手,对局不存在悬念。引擎的主要竞争对象是其他引擎。
第四章 中国象棋引擎商业史
4.1 商业引擎的定价与授权
中国象棋商业引擎的定价模式经历了以下演变:
早期(2000-2005):以光盘媒体销售为主,价格在几十到一百元人民币之间。
中期(2005-2010):转向序列号或硬件加密锁授权,价格在几百元到上千元之间。
后期(2010-2022):采用在线激活模式,分核心数定价(如2核版、4核版、6核版),价格从数百元到数千元不等。
名手的定价策略(示范):
- 2核版:约200-300元
- 4核版:约500-800元
- 6核版:约1000-1500元
- 分布式版:约2000-3000元(需要多台计算机)
商业引擎的授权限制:
- 通常绑定硬件(通过CPU序列号或MAC地址)
- 不支持转让(授权只能在特定机器上使用)
- 不支持退款(购买前提供试用版用于评估)
4.2 商业引擎的市场竞争
中国象棋商业引擎市场竞争的主要参与者:
第一梯队(2005-2015):旋风、名手、倚天
- 棋力最高、价格也最高
- 面向专业棋手和重度爱好者
第二梯队(2010-2020):小虫、佳佳等
- 棋力略低但价格更亲民
- 面向更广泛的业余爱好者群体
第三梯队(2005-2015):各类小型引擎和工具
- 针对特定需求(如开局库制作、棋谱分析等)
- 主要面向入门用户
市场格局的变化:
- 2005-2008年:旋风与倚天两强争霸
- 2009-2014年:名手崛起并长期统治
- 2015-2020年:商业引擎市场整体萎缩
- 2022年皮卡鱼开源后:商业引擎市场受到根本性冲击
4.3 皮卡鱼对商业引擎的冲击
皮卡鱼作为免费开源引擎的出现,对中国象棋商业引擎市场产生了巨大影响:
- 棋力碾压:皮卡鱼的棋力超过了所有商业引擎
- 价格优势:免费开源 vs 数百到数千元
- 更新速度:社区驱动 vs 个人/团队开发
- 透明度:开源代码可审查 vs 闭源黑盒
商业引擎的应对策略:
- 旋风推出了NNUE版(Cyclone-nn),试图与皮卡鱼保持竞争力
- 部分商业引擎降低价格或转为免费
- 一些小型引擎停止更新
- 引擎开发的重点从商业化转向服务化(如云库订阅)
第五章 中国象棋引擎的国际影响力
5.1 国际社区对中国象棋引擎的关注
随着皮卡鱼的开源和国际象棋社区的参与,中国象棋引擎开始获得更广泛的国际关注:
Stockfish社区对中国象棋的兴趣:部分Stockfish社区的贡献者也开始关注皮卡鱼项目。他们带来了国际象棋引擎开发的经验和工具。
Fairy-Stockfish的中国象棋支持:Fairy-Stockfish作为国际象棋变体引擎,其中国象棋支持为中国象棋规则提供了一个国际象棋社区的参考实现。
学术论文的国际发表:Daniel Tan关于NNUE数据集的论文在国际学术会议(IEEE Conference on Games 2024)上发表,标志着中国象棋引擎研究进入了国际学术视野。
5.2 中国象棋引擎与人工智能研究的关系
中国象棋引擎在人工智能研究中的位置:
教学案例:中国象棋引擎作为AI教学的经典案例,在学生中具有较高的吸引力和参与度。
算法验证平台:中国象棋引擎为验证搜索算法、评估函数设计、并行计算策略等提供了良好的实验平台。
比较研究的对象:中国象棋与国际象棋的差异(规则、棋盘、棋子等)为研究棋类博弈的通用性提供了有趣的研究素材。
第六章 结语:技术、社区与文化的融合
中国象棋计算机博弈的发展史不仅仅是技术的演进史,更是社区协作和知识共享的文化史。
从1989年将族在伦敦夺冠时的孤军奋战,到2026年皮卡鱼在全球开发者协作下的持续进步,中国象棋引擎的发展反映了一个全球化社区的形成过程。
这段历史告诉我们:
- 开放比封闭更有力量——皮卡鱼对商业引擎的超越证明了开源模式的优越性
- 社区比个人更有韧性——一个天才开发者可以创造奇迹,但一个社区可以持续创造奇迹
- 标准比分散更有价值——UCCI协议、FEN格式、Fishtest框架等标准化工作,是引擎生态繁荣的基础
- 数据比代码更重要——在NNUE时代,训练数据的质量决定了引擎的天花板
展望未来,中国象棋计算机博弈将继续发展。虽然顶级引擎的棋力已经远超人类极限,但中国象棋的魅力和智慧远未被穷尽。每一次规则的完善、每一个新引擎的诞生、每一局精彩的对弈,都在为中国象棋注入新的活力。
愿这份报告能够成为中国象棋计算机博弈历史记录的一份有益贡献,也愿未来的研究者能够在此基础上继续记录和传播这段独特的知识共同体的故事。
(全文完)