中國象棋計算機博弈發展史研究報告
系統梳理中國象棋計算機博弈從 1980 年代到 2026 年的技術演進、代表引擎與社群生態。 第六章 象棋旋風與倚天象棋:兩強爭霸(2005–2008) → 第十一章 南奧象棋:從象棋世家到跨時代的傳承
第六章 象棋旋風與倚天象棋:兩強爭霸(2005–2008)
6.1 象棋旋風的誕生(2005)
象棋旋風(Xiangqi Cyclone / Tornado)由中國程序員陳朝營開發。象棋旋風是中國象棋引擎歷史上最具影響力的商業引擎之一。
象棋旋風(Xiangqi Cyclone)官方網站——陳朝營開發的最具影響力的商業引擎之一,後推出NNUE版Cyclone-nn
開發背景:
陳朝營在2005年前後開始開發象棋旋風。他並非學術界人士,而是一名擁有強大的編程能力和象棋理論知識的個人開發者。象棋旋風的最初版本使用了開源引擎ElephantEye的部分代碼,但很快陳朝營就完全重寫了核心代碼。
象棋旋風的早期版本在2005-2006年期間在棋中論壇等社區開始流傳。由於其表現出色(在當時的硬件上能夠達到較深的搜索深度),迅速吸引了象棋軟件愛好者的關注。
版本歷史:
象棋旋風經歷了多個重要的版本迭代:
- 初版(2005):基於ElephantEye代碼,使用基本的Alpha-Beta搜索
- 旋風V2(2006):完全重寫代碼,引入先進的PVS搜索,棋力大幅提升
- 旋風V3(2007):引入多線程和並行搜索,開始在比賽中斬獲佳績
- 旋風V4(2008):進一步優化評估函數和剪枝算法,達到當時行業的頂尖水平
6.2 象棋旋風的技術架構
象棋旋風的成功主要歸功於其出色的搜索算法實現。其主要技術特點包括:
1. PVS搜索:
旋風實現了完整的PVS搜索。PVS的核心思想是在零窗口(null-window)下搜索非主變分支,從而以更小的搜索量獲得相同的搜索保證。PVS與Alpha-Beta相比,在棋力相當的情況下可以節省約10-20%的搜索時間。
2. 高效的置換表(Transposition Table)實現:
象棋旋風實現了基於哈希的置換表,具有以下優化:
- 使用Zobrist哈希算法生成局面哈希值
- 哈希表採用分層存儲策略(Exact/Alpha/Beta三類節點)
- 使用深度優先的替換策略(當新條目的搜索深度大於已有條目時替換)
- 哈希表容量可配置(典型值爲64MB到256MB)
3. 空着裁剪(Null Move Pruning):
位置兵力和戰術威脅主要來自"走一步有價值的棋"。空着裁剪的基本假設是:如果你在假定"讓對方連續走兩步"的情況下仍然無法獲得優勢,那麼該搜索分支不值得深入探索。
旋風對空着裁剪的應用非常激進,在某些局面下可以跳過高達50%的搜索分支。這種激進的裁剪帶來了搜索深度的顯著提升,但也在某些特殊局面下導致了評估失誤。
4. 歷史啓發與殺手着法:
旋風實現了歷史啓發(History Heuristic)和殺手着法(Killer Move)兩種着法排序技術。歷史啓發通過記錄每個著法在不同局面的歷史成功率來指導搜索排序,殺手着法則記錄在同一搜索深度中造成剪枝的最有效着法。這兩種技術的配合使用顯著提高了搜索樹的剪枝效率。
5. 迭代加深:
旋風放棄了固定深度搜索,完全採用迭代加深策略。迭代加深的好處包括:
- 時間可控:可以在任何時刻返回當前最優着法
- 置換表預熱:淺層搜索的結果(如PV、評估值)可以被深層搜索利用
- 搜索穩定性:迭代加深比固定深度搜索更穩定,不會出現"淺層認爲好,深層認爲差"的劇烈波動
6. 評估函數:
旋風的評估函數以手工調優的特徵爲核心,包括:
- 子力優勢(Material Advantage):基於位置價值的加權和
- 棋子活動性(Mobility):每個棋子可走位置數量的加權和
- 將帥安全性(King Safety):將帥周圍的控制範圍和保護程度
- 兵種結構(Pawn Structure):兵(卒)的陣型、過河兵價值
- 控制區域(Area Control):中路的控制程度、河界控制、九宮控制
6.3 倚天象棋(Intella)的崛起
倚天象棋(Intella)由陳朝營和韋餘濤聯合開發。倚天象棋是象棋旋風的重要競爭者,在中國象棋引擎發展史上與旋風形成了"兩強爭霸"的局面。
倚天象棋的技術特點:
倚天象棋採用了與旋風類似但有所不同的技術路線:
-
搜索算法:倚天象棋同樣使用PVS搜索,但剪枝策略略保守,傾向於更完整的搜索和更穩定的評估。
-
評估函數:倚天象棋的評估函數在設計上強調"局面理解"的能力,在子力交換、局面平衡、戰術組合等方面的評估比旋風更加精細。
-
開局庫:倚天象棋的開局庫由團隊手工整理和維護,質量在同時代引擎中屬於頂尖水平。倚天團隊與多位職業棋手合作,確保開局庫覆蓋所有主流開局變例。
-
多線程支持:倚天象棋支持雙核和四核多線程搜索,在SMP(對稱多處理)系統上具有良好的擴展性。
2006年國家體育總局的測試事件:
2006年,國家體育總局棋牌運動管理中心對中國象棋軟件進行了一次內部的棋力測試。測試使用了水平較高的專業棋手與引擎對弈。倚天象棋在這次測試中表現突出,獲得了"達到國家大師水平"的評價。這次測試事件被中國象棋軟件社區廣泛報道,顯著提升了倚天象棋的品牌知名度和市場認可度。
6.4 旋風與倚天之間的競爭與技術交流
象棋旋風與倚天象棋的競爭關係非常特殊。由於兩者的主要開發者(陳朝營和韋餘濤)之間有着密切的個人關係,旋風與倚天之間的關係既有競爭也有合作。
技術交流:
陳朝營和韋餘濤之間有過技術討論和相互參考。在一些技術細節上,兩者相互影響(如對某些特殊局面的處理方式)。但這種技術交流是不公開的,社區只能從引擎的實戰表現推斷兩者之間的關係。
市場競爭:
在市場層面,旋風與倚天之間存在着激烈的競爭。兩者分別在不同年份的ICGA和CCMC賽事中交替獲得冠軍,形成了"兩強爭霸"的局面。這種競爭不僅體現在賽場成績上,也體現在商業銷售、用戶口碑和社區影響力上。
競爭的影響:
旋風與倚天之間的良性競爭對中國象棋引擎的發展起到了重要的推動作用:
- 雙方都在持續優化算法和評估函數,以獲得競爭優勢
- 競爭催生了更深入的技術研究和更多的創新
- 用戶和社區對比較測試、棋譜分析的興趣增加,促進了對引擎技術的討論
6.5 旋風在ICGA和CCMC中的表現
象棋旋風在2008年ICGA北京賽事中獲得銀牌。此後,陳朝營繼續開發象棋旋風(Cyclone),該引擎進入了NNUE時代後改稱Cyclone-nn。
在當時,旋風與倚天之間的實力對比成爲社區討論的熱點。但最值得注意的是,旋風與倚天的競爭推動了整個中國象棋引擎生態的發展。因爲競爭的存在,兩個引擎都在持續進步,各自代表了當時中國象棋引擎的最高水平。
ICGA 2008年的比賽在北京舉行,這是ICGA首次在中國大陸舉辦賽事。象棋旋風作爲中國大陸本土引擎在比賽中獲得銀牌,雖然輸給了倚天象棋,但在比賽中展現出了出色的中局戰術能力和較高的搜索深度。旋風在某幾個關鍵對局中,通過精確的戰術組合擊敗了強勁對手。
6.6 2005-2008 黃金一代引擎綜合對比
2005年至2008年是中國象棋引擎發展的黃金時期,多個劃時代的引擎集中湧現。以下是從多個維度對這代引擎的綜合對比分析:
| 對比維度 | 象棋奇兵 (XQMASTER) | 夢入神機 (MRSJ) | 棋天大聖 (NEUChess) | 象棋旋風 (Cyclone) | 倚天象棋 (Intella) |
|---|---|---|---|---|---|
| 首發年份 | 2005 | 2004 | 2004-2005 | 2005 | 2007 |
| 開發者 | 趙明陽 | 塗志強(中山大學) | 王驕(東北大學) | 陳朝營 | 陳朝營+韋餘濤 |
| 開發背景 | 個人/商業 | 學術研究(研究生) | 學術研究(教授) | 個人/商業 | 商業團隊 |
| 搜索算法 | PVS(主變搜索) | 高級Alpha-Beta | PVS+多層次剪枝 | PVS+空着裁剪+LMR | PVS+高級剪枝 |
| 評估函數 | 手工特徵+位置表 | 手工調優 | 手工特徵(6類因子) | 深度手工調優 | 精密手工調優 |
| 並行支持 | 否(單核) | 否(單核) | 試驗性並行(YBW) | 是(雙核) | 是(多核) |
| 協議支持 | 自研協議 | 自研 | 自研 | UCCI | UCCI |
| 開放程度 | 閉源商業 | 閉源 | 閉源(論文公開) | 閉源商業 | 閉源商業 |
| ICGA最高成績 | 金牌(2005) | 銅牌(2004) | 金牌(2006,2007) | 銀牌(2008) | 金牌(2008) |
| CCMC成績 | — | — | 金牌(2006,2007) | 金牌(2007) | — |
| 歷史地位 | 首箇中國ICGA金牌 | 早期開源先驅 | 首個大陸ICGA金牌 | 最長壽商業引擎 | 短命但最強 |
| 主要優點 | 評估精準,戰術敏銳 | 架構簡潔,思路清晰 | 學術規範,文檔完善 | 算法先進,持續進化 | 棋力巔峯,短時無敵 |
| 主要缺點 | 無並行,協議封閉 | 棋力有限,維護停滯 | 並行效率低,商業化弱 | 界面簡陋,商業限制 | 開發週期短,已停產 |
| 對後世影響 | 打破臺灣壟斷 | 啓發學術路線 | 論文傳承,教育價值 | UCCI推廣,連接時代 | 極致優化的範例 |
| 巔峯棋力(估計ELO) | ~2350 | ~2100 | ~2450 | ~2600 | ~2650 |
| 相當於人類水平 | 國家大師 | 地方大師 | 國家大師 | 強大師-特級大師 | 特級大師 |
注:2005-2008年是中國象棋引擎從「能下棋」到「超越人類」的關鍵轉變期。其中,象棋奇兵開創了中國引擎奪取ICGA金牌的先河,棋天大聖將學術研究方法引入引擎開發,象棋旋風與倚天的競爭將引擎棋力推向了人類特級大師的水平。倚天象棋在2008年ICGA的金牌標誌着這一黃金時代的頂峯——此後,中國象棋引擎正式進入了全面超越人類棋手的商業化時代。
第七章 棋中論壇:引擎社區的心臟
7.1 棋中論壇的創建與早期發展
棋中論壇(qqzze.com)是中國象棋引擎社區最重要的交流平臺之一。它的成立時間大約在2000年代初期,當時的互聯網論壇正處於黃金時代。
棋中論壇的創建者已不可考,但論壇能夠發展壯大,凝聚了衆多中國象棋引擎開發者和愛好者的貢獻。論壇的域名qqzze.com來源於"棋中"(棋在中間、棋在其中)的拼音組合。
論壇版塊的設置:
棋中論壇設置了一系列針對中國象棋引擎社區需求的版塊:
- 引擎發佈區:開發和發佈象棋引擎版本的專區,開發者可以在這裏發佈自己的引擎版本和更新日誌。
- 技術交流區:討論引擎開發技術(搜索算法、評估函數、UCCI協議等)的版塊,是技術含量的核心區域。
- 開局庫研究區:專注於開局庫製作和研究的區域,社區成員在這裏分享和討論開局庫。
- 棋譜賞析區:發佈和討論高水平棋譜的區域,包括人機對局和大師對局。
- 兵河五四討論區:針對兵河五四引擎管理工具的專門討論區。
- 在線對弈討論區:討論弈天等在線平臺對局和策略的區域。
- 軟件評測區:不同引擎、開局庫的性能比較和評測。
7.2 論壇的文化與貢獻
棋中論壇對中國象棋引擎社區的影響是深遠的,具體體現在以下方面:
1. 知識傳播的樞紐:
棋中論壇是中國象棋引擎技術知識傳播的核心渠道。許多引擎開發者在論壇上分享他們的技術經驗,包括:
- 搜索算法的實現細節和優化技巧
- 評估函數的調優經驗
- 開局庫的製作方法
- 多線程/分佈式搜索的實現策略
這些帖子雖然沒有學術論文的嚴謹性,但它們的實踐性往往更強,對於其他開發者(特別是自學者)的參考價值極高。
2. 社區測試的場所:
棋中論壇是社區測試和評價引擎的主要場所。用戶會:
- 發佈不同引擎的對局測試結果
- 比較不同設置下的引擎表現
- 討論特定版本引擎的優缺點
- 分享引擎在特定局面下的分析結果
這些測試報告和討論爲引擎開發者提供了寶貴的反饋數據,也幫助用戶選擇最適合自己需求的引擎。
3. 商業引擎的發佈和分發渠道:
在商業引擎發展的黃金時代(2005-2015),棋中論壇是引擎作者發佈商業版本和與用戶互動的最重要渠道。引擎作者在這裏:
- 發佈新版本的預覽版和正式版
- 收集用戶的BUG報告和反饋
- 發佈官方更新和補丁
- 進行版本管理和公告
4. 引擎與用戶之間的橋樑:
棋中論壇在引擎開發者與用戶之間扮演着橋樑角色。在論壇上:
- 用戶可以提問和尋求幫助
- 開發者可以瞭解用戶的需求和問題
- 第三方愛好者可以製作開局庫、界面配置等輔助資源
7.3 關鍵人物與社區貢獻者
棋中論壇上湧現了大量對中國象棋引擎社區有重要貢獻的人物:
引擎開發者:
- 陳朝營(象棋旋風作者):經常在論壇上發佈旋風的新版本和更新日誌
- 蔣志敏和張閩(象棋名手作者):通過論壇發佈名手的版本和測試結果
- 李國來(佳佳象棋作者):在論壇上討論佳佳的技術細節
開局庫製作者:
- “龍江”:製作了著名的"龍江庫"系列開局庫
- "倚天"相關開局庫製作者:爲倚天象棋製作了高質量的開局庫
技術分享者:
- 多位在論壇上發表長篇技術教程的社區成員,他們的帖子涵蓋了從基礎編程到高級算法優化的廣泛內容
測試和評測者:
- 定期在論壇上發佈引擎測試報告的社區成員,他們的測試爲引擎性能評估提供了參考
7.4 棋中論壇的衰落與技術社區的轉型
隨着移動互聯網的興起和社交媒體的普及,傳統論壇在2010年代後期逐漸衰落。棋中論壇的用戶活躍度在2015年後顯著下降,原因包括:
- 社交媒體的衝擊:微信、QQ羣等即時通信工具取代了論壇作爲日常討論渠道
- 搜索引擎優化不足:論壇的UI/UX未能跟上移動互聯網時代的要求
- 商業引擎的退出:隨着商業引擎市場的萎縮,論壇上的核心內容(引擎發佈和評測)減少
- GitHub的崛起:引擎開發者的協作從論壇轉移到了GitHub,技術交流也隨之遷移
棋中論壇的衰落標誌着中國象棋引擎社區形態的一次重要轉型。從傳統的"論壇中心"模式轉向了"GitHub+QQ/微信羣"的分佈式模式。這一轉型在2020年代隨着皮卡魚等開源項目的興起而加速。
第八章 ElephantEye與黃晨的開源貢獻(2005–2020)
8.1 ElephantEye(象眼)的開源架構
ElephantEye(中文名"象眼")由黃晨開發,是中國象棋開源引擎中最重要的項目之一。黃晨也是xqbase.com網站的維護者、UCCI協議的設計者、XQF棋譜格式標準的推動者。
ElephantEye的開發歷程:
黃晨從2000年左右開始開發ElephantEye。作爲中國象棋引擎的技術探索者和社區建設者,黃晨選擇將ElephantEye以LGPL許可證發佈。這意味着:
- 任何人可以自由使用、修改和分發ElephantEye的源代碼
- 如果修改後的代碼作爲庫(Library)使用,可以有更寬鬆的要求
- 如果作爲獨立程序分發,需要配套提供源代碼或允許反向工程
ElephantEye的開發目標不是"超越商業引擎",而是"提供一個學習和研究的平臺"。黃晨在xqbase.com上撰寫了大量的技術文檔,介紹ElephantEye的實現細節。這些文檔是中國象棋引擎編程的"聖經級"參考資料。
8.2 ElephantEye的技術體系
ElephantEye的代碼結構清晰,模塊化程度高。其主要模塊包括:
1. 局面表示(Position Representation):
採用基於位棋盤(Bitboard)的表示方法,每個棋子類型使用一個64位整數(位棋盤中的前90位表示9×10棋盤的90個交叉點)。
位棋盤表示法的核心優勢在於着法生成速度快。通過預計算和位運算,引擎可以在極短時間內生成所有合法着法。例如,車的走法可以通過預計算的"可達性表"(經程範圍表)結合棋盤狀態來生成。
2. 着法生成器(Move Generator):
黃晨爲ElephantEye設計了高效的着法生成器,着重優化了以下方面:
- 針對中國象棋棋子特點優化了着法生成速度(特別是馬和象的絆腳限制)
- 使用預計算表減少運行時計算量
- 分離了喫子着法和不喫子着法(SEE需要使用喫子着法序列)
3. 置換表(Transposition Table):
ElephantEye實現了標準的Zobrist哈希置換表,其大小爲可配置(通常2^20到2^24個條目)。
置換表條目存儲的信息包括:
- 哈希值(用於驗證)
- 搜索深度(該結果的搜索深度)
- 節點類型(精確值/Alpha上限/Beta下限)
- 最佳走法(用於着法排序)
- 評估值
4. 評估函數(Evaluation Function):
ElephantEye的評估函數在開源引擎中具有代表性:
- 子力價值評估:每種棋子基於位置和階段(開局/中局/殘局)的加權分值
- 位置價值評估:每個棋子在棋盤上每個位置的得分(保存在預計算的位置價值表中)
- 棋子活動性評估:基於棋子的機動性和控制區域
- 將帥安全性評估:紅帥和黑將的保護狀態
- 兵種結構評估:兵(卒)的配置、過河兵價值
- 棋子協調性評估:車馬炮之間的配合、士象的防禦完整性
5. UCCI協議實現:
ElephantEye包含了完整的UCCI協議支持,使其可以與任何支持UCCI的GUI配合使用。ElephantEye對UCCI協議的支持覆蓋了所有核心指令和選項。
6. LEGAGE模擬器:
ElephantEye的代碼中包含了LEAGUE模擬器——這是一個自動對局測試工具,可以在不同設定下運行大量對局。LEAGUE的存在使得開發者可以在提交代碼更改前進行充分的測試驗證。
7. XQFTOOLS(象棋棋譜工具):
黃晨還開發了XQFTOOLS套件,用於在XQF(中國象棋棋譜格式)和PGN(通用棋譜格式)之間進行轉換。
8.3 ElephantEye的棋力評估
根據黃晨自己的評估以及其他引擎測試者的報告,ElephantEye的棋力大致相當於人類業餘3段至4段水平(約2000-2200 ELO)。這個棋力在2005-2008年間屬於中等水平,遠低於同期的商業引擎(旋風、倚天等)。
但是,ElephantEye的開源屬性使其具有超越棋力本身的價值。它是中國象棋引擎初學者的最佳學習資源,吸引了無數開發者在它的基礎上進行研究和二次開發。多個後續引擎(如BitStronger、部分早期版本的旋風)都參考了ElephantEye的代碼或設計。
8.4 黃晨的教學文檔
除了引擎本身,黃晨在xqbase.com上發表的一系列教學文檔同樣是寶貴的知識資源。這些文檔包括:
-
《中國象棋程序設計探索》系列:從零開始介紹如何開發一箇中國象棋程序,涵蓋局面表示、搜索算法、評估函數、UCCI協議等主題。
-
《UCCI協議規範》:UCCI協議的完整技術文檔,是所有UCCI協議實現者的必備參考。
-
《中國象棋程序中的Hash技術》:詳細介紹了Zobrist哈希和置換表在中國象棋程序中的實現。
-
《中國象棋程序中的走法生成》:詳細介紹了中國象棋各種棋子的走法生成算法和優化策略。
這些文檔在格式上簡明易懂,配有大量示例代碼,是中國象棋編程領域最優質的中文教學資源之一。
8.5 ElephantEye的歷史意義
ElephantEye的歷史意義可以概括爲:
-
開源之錨:ElephantEye的開源爲中國象棋引擎社區提供了一個穩定的代碼參照。在絕大多數引擎閉源的背景下,ElephantEye是唯一可自由研究、修改和分發的完整引擎。
-
人才培育:無數中國象棋引擎開發者通過學習ElephantEye的源代碼邁入了引擎開發的門檻。
-
標準制定:黃晨在ElephantEye中實現的UCCI協議和XQF工具促進了中國象棋引擎的標準化。
-
知識傳承:黃晨撰寫的教學文檔系統性地記錄了中國象棋引擎開發的核心知識,這些知識通過互聯網的傳播效應惠及了數以千計的開發者。
-
跨領域影響:ElephantEye的影響不僅限於中國象棋領域,它還被移植到國際象棋變體(如通過Fairy-Stockfish適配),展示了其架構的擴展性。
第九章 兵河五四界面與引擎管理工具
9.1 兵河五四的誕生
兵河五四(BingHe 54)是中國象棋軟件領域最重要的界面和管理工具之一。它由社區開發者"五四"(網名)創建,最初目的是爲象棋引擎提供一個統一的、功能豐富的管理平臺。
兵河五四(BingHe 54)——中國象棋軟件領域最重要的引擎管理GUI工具,由社區開發者"五四"創建
兵河五四的名字來源於對"引擎"(Engine)的諧音演繹,既體現了工具的功能定位,又具有中國象棋特色。兵河五四的出現填補了UCCI協議普及後中國象棋引擎管理工具的市場空白。
9.2 兵河五四的核心功能
兵河五四的核心功能包括:
多引擎管理: 兵河五四支持同時加載多個UCCI/UCI協議引擎。用戶可以在不同引擎之間自由切換,這在對比測試和比賽準備中極爲有用。兵河五四還支持:
- 同時運行多個引擎實例
- 引擎參數的獨立設置和保存
- 引擎性能的實時監控
自動對局系統: 兵河五四內置了完整的自動批量對局系統,支持:
- 循環賽和淘汰賽編排
- 時間控制設置(包乾、加秒、限時等)
- 開局庫管理
- 自動保存棋譜和統計結果
- ELO等級分計算
- 對局過程的實時顯示和回放
雲庫集成: 兵河五四是中國象棋雲庫的主要客戶端之一。通過兵河五四,用戶可以直接查詢雲庫中的開局庫和殘局庫數據,也可以使用雲庫的自動學習功能。
連線功能: 兵河五四支持連線到多個在線對弈平臺(如弈天、QQ象棋、天天象棋等),用戶可以結合引擎分析進行人機配合。
自定義選項: 兵河五四提供了豐富的自定義選項,包括:
- 引擎路徑和啓動參數設置
- 開局庫加載和編輯
- 棋譜格式配置
- 界面外觀設置
- 熱鍵綁定
9.3 兵河五四對中國象棋軟件生態的影響
兵河五四對中國象棋軟件生態的影響是多方面的:
-
降低了引擎使用的門檻:用戶不需要手動敲擊命令行來調用引擎,通過兵河五四的圖形界面即可完成引擎管理和調用。
-
標準化了引擎測試方法:兵河五四的自動對局系統提供了一套標準化的測試方法論,使得不同用戶的測試結果具有可比性。
-
促進了引擎之間的交流:兵河五四支持在同一平臺上管理多個引擎,使得用戶可以直觀地比較不同引擎的表現。
-
文檔和社區的貢獻:兵河五四的文檔和使用教程在社區中廣泛傳播,形成了關於其使用的知識體系。
9.4 同時代的其他界面工具
與兵河五四同時代的重要界面工具:
- 象棋巫師(ElephantBoard):黃晨開發的著名界面,內置象眼引擎,支持UCCI協議,擁有友好的用戶界面和良好的用戶體驗。
象棋巫師(ElephantBoard)——黃晨開發的中國象棋界面,內置象眼引擎,是很多愛好者接觸UCCI引擎的入門工具
-
倚天界面:原爲倚天象棋的配套界面,後來支持多引擎。倚天界面在2000年代後期擁有較高的市場佔有率。
-
旋風界面:象棋旋風的配套界面,與旋風引擎緊密整合,在優化和兼容性方面具有優勢。
這些界面工具與引擎共同構成了完整的中國象棋軟件生態,使得用戶無需瞭解底層協議即可使用高級引擎功能。
9.5 中國象棋GUI界面工具對比
中國象棋引擎的界面工具(GUI)經歷了從引擎內置界面到獨立通用界面的發展。以下對比主流的界面工具:
| 對比維度 | 兵河五四 (Binghe54) | 象棋巫師 (ElephantBoard) | 旋風界面 (CycloneGUI) | 弈天客戶端 | 棋路 (Qilu) |
|---|---|---|---|---|---|
| 開發者 | OkDodo(範德軍) | 黃晨 | 陳朝營 | 弈天團隊 | 棋路團隊 |
| 首發年份 | 2005 | 2005 | 2005 | ~2000 | 2010s |
| 核心定位 | 引擎管理/聯機對戰 | 教學/娛樂/入門 | 旋風專用界面 | 在線對戰平臺 | 移動端分析 |
| 引擎支持 | ★★★★★ 多引擎UCCI | ★★★★ UCCI引擎 | ★★ 僅旋風 | ★★★ 外部引擎 | ★★ 有限 |
| 連線功能 | ★★★★★ 全平臺連線 | ★ 無 | ★ 無 | ★ 無 | ★ 無 |
| 開局庫管理 | ★★★★★ 深度管理 | ★★ 基礎 | ★★★ 旋風專用 | ★ 無 | ★ 無 |
| 棋譜分析 | ★★★★★ 完整工具鏈 | ★★★★ 基礎分析 | ★★★ 基礎 | ★★ 覆盤 | ★★★★ 雲分析 |
| 殘局訓練 | ★★ 有限 | ★★★★ 殘局庫查詢 | ★ 無 | ★ 無 | ★★★★ 闖關模式 |
| 界面美觀 | ★★★ 實用風格 | ★★★★★ 精美 | ★★ 簡陋 | ★★ 經典 | ★★★★★ 現代 |
| 學習曲線 | ★★★★★ 陡峭(專業) | ★★★ 平緩 | ★★★ 中等 | ★★ 簡單 | ★★★ 中等 |
| 目標用戶 | 引擎發燒友/比賽者 | 教學/入門者 | 旋風用戶 | 在線對弈者 | 移動端愛好者 |
| 平臺 | Windows | Windows | Windows | Windows | iOS/Android |
| 是否開源 | 部分開源(舊版) | 開源(GPLv3) | 閉源 | 閉源 | 閉源 |
| 當前狀態 | 已停止更新 | 已停止更新 | 仍更新(與引擎捆綁) | 仍運營 | 仍運營 |
| 主要優點 | 功能最全,引擎管理最強 | 美觀,易用,教學好 | 與旋風深度集成 | 在線對戰生態 | 移動端體驗好 |
| 主要缺點 | 已停更,Win10+兼容差 | 已停更,無連線 | 僅支持旋風 | 界面舊,功能少 | 引擎管理弱 |
注:兵河五四作爲歷史上功能最完善的引擎管理工具,雖然已經在2010年代停止更新,但其設計理念(界面與引擎分離、多引擎管理、連線對戰)深刻影響了後來的所有象棋軟件。象棋巫師則在教育和入門領域發揮了不可替代的作用——很多中國象棋愛好者是通過象棋巫師第一次接觸到UCCI引擎的。隨着移動互聯網的普及,PC端GUI工具整體上已經讓位於移動端App,但對於引擎開發者和重度用戶來說,兵河五四至今仍未被完全替代。
第十章 象棋名手與佳佳象棋(2009–2015)
10.1 象棋名手的崛起
象棋名手(CChess Master)由蔣志敏和張閩團隊開發,是中國象棋商業引擎的巔峯之作。名手在2009-2015年期間成爲中國象棋引擎市場的領導者。
象棋名手(CChess Master)主界面——CCMC五連冠的王者引擎,傳統手工評估時代的巔峯之作
象棋名手最初版本發佈於2009年左右。它的早期版本在CCMC中國機器博弈錦標賽中獲得冠軍,之後名手不斷改進,逐漸形成了在棋力、穩定性和易用性上的綜合優勢。
象棋名手的技術特點:
1. PVS搜索: 名手實現了高度優化的PVS搜索,其搜索效率在同時代引擎中處於領先水平。名手的PVS實現特別注重了:
- 高效的着法排序策略
- 精確的窗口管理
- 剪枝與安全的平衡
2. 多線程並行搜索: 名手是早期支持多線程並行搜索的引擎之一。在雙核和四核機器上,名手的並行搜索效率可達70%以上。這種並行能力在硬件快速發展的2000年代末期具有很大的性能優勢。
3. 分佈式計算支持: 名手支持將搜索任務分佈到多臺計算機上。雖然這種分佈式計算在實際應用中的使用範圍有限(需要多臺計算機之間的高速網絡連接),但它展示了名手在可擴展性方面的前瞻性設計。
4. 深度手工評估函數: 名手的評估函數被認爲是手工評估時代的巔峯之作。它的評估函數包括數百個精細調優的位置特徵,針對不同的局面類型設計了多套評估參數。名手的評估函數具有以下特點:
- 精細化的子力協同評估
- 深層次的戰術威脅檢測
- 專門處理空頭炮、窩心馬、多子歸邊等典型戰術模式的規則
象棋名手的比賽成績:
象棋名手在中國機器博弈錦標賽(CCMC)中取得了令人矚目的成績:
- 2009年:冠軍(深圳)
- 2011年:冠軍
- 2012年:冠軍
- 2013年:冠軍
- 2014年:冠軍
名手在CCMC中的連冠紀錄充分顯示了其棋力的穩定性和領先性。
象棋名手——引擎正在分析局面,顯示搜索深度和評估分數
象棋名手——殘局局面分析,名手內置的殘局知識庫使其殘局處理能力尤爲突出
10.2 象棋名手的技術架構詳解
象棋名手的技術架構代表了傳統Alpha-Beta引擎的最高水平。其核心設計決策包括:
(一)並行搜索架構
象棋名手採用了比同時代引擎更激進的並行搜索策略。傳統的並行搜索方案(如Young Brothers Wait、ABDADA等)在覈心間的負載均衡和通信開銷上存在侷限。名手採用的是"分裂搜索"(Split Search)的改進版本——當搜索到達一定深度後,將搜索樹的不同分支分配給不同核心並行探索。
名手的並行效率在4-8核心機器上可以達到約70-80%,這在同時代引擎中處於領先水平。
(二)分佈式計算的實現
象棋名手支持將搜索任務分發到多臺計算機上。具體的實現方式是通過網絡協議將搜索任務分配給分佈式計算節點,節點完成子任務後彙總結果。這種架構在當時極爲前衛——大多數引擎只支持單機多核,而名手已經能夠利用整個網絡中的計算資源。
分佈式計算的工作流程:
- 主節點(Master)運行引擎的控制邏輯和評估函數
- 各工作節點(Worker)運行搜索計算任務
- 主節點將搜索任務(一系列着法)分配給工作節點
- 工作節點完成任務後將結果返回主節點
- 主節點彙總結果,執行進一步的分析
(三)評估函數的精細化
名手的評估函數被認爲是手工評估時代的巔峯之作。它包括:
- 數百個手工調整的位置特徵
- 針對不同局面類型的多套評估參數
- 精細化的子力協同評估
- 深層次的戰術威脅檢測
- 專門處理空頭炮、窩心馬、多子歸邊等典型戰術模式的規則
(四)開局庫與殘局庫的社區生態
象棋名手的開局庫主要由社區中的高水平棋手維護。這些棋手通過棋中論壇等平臺協同工作:
- 定期發佈新的開局庫版本
- 根據最新大師對局和引擎測試結果更新權值
- 針對不同引擎特點定製開局庫
- 通過社區測試驗證開局庫的有效性
10.3 佳佳象棋與GGzero
佳佳象棋(Jiangui / Jiajia)由李國來開發。佳佳象棋在傳統Alpha-Beta引擎達到巔峯的同時,也積極探索了強化學習(Reinforcement Learning)在中國象棋中的應用。
傳統版本的佳佳象棋:
佳佳象棋的傳統版本基於Alpha-Beta搜索和手工評估函數。它在2010年代初期達到了與名手、旋風相當的棋力水平。佳佳象棋在評估函數的設計上有自己的特色,特別是對防守局面的評估較爲準確。
GGzero項目:
GGzero是佳佳象棋團隊開發的基於強化學習的中國象棋引擎,直接受到DeepMind AlphaZero的啓發。GGzero使用深度神經網絡(CNN)代替手工評估函數,通過自我對弈(Self-Play)來學習。
GGzero的技術特點包括:
- 蒙特卡洛樹搜索(MCTS):取代傳統的Alpha-Beta搜索
- 深度神經網絡:使用卷積神經網絡(CNN)同時預測棋步的概率和局面的評估值
- 自我對弈學習:通過與自己的過往版本對弈來持續改進
- 計算需求:訓練過程需要大量的GPU算力(通常是多個高端GPU運行數週)
GGzero的出現標誌着中國象棋引擎"神經網絡+強化學習"技術的探索嘗試。雖然GGzero的訓練過程受到計算資源限制,棋力沒有超越當時的頂級Alpha-Beta引擎,但它展示了中國象棋引擎發展的新方向。
10.4 小蟲象棋(BugChess)
小蟲象棋(BugChess)由劉宗元團隊開發,是中國象棋商業引擎重要的一支力量。小蟲象棋在2013年第17屆計算機奧林匹亞中獲得了金牌,是中國象棋商業引擎中的重要力量。在中國象棋軟件市場中,它的市場份額和市場認可度極高。
技術特點:
-
高效的Alpha-Beta搜索實現:小蟲象棋的搜索算法雖然沒有本質性創新,但其工程實現極爲紮實。代碼經過了大量手工優化,在同等硬件上表現出色。
-
多線程並行搜索:小蟲象棋很早就支持多核心並行搜索,在雙核和四核機器上具有很好的擴展性。
-
大規模開局庫:小蟲象棋與社區開局庫維護者合作,提供覆蓋面極廣的開局庫。其開局庫涵蓋了幾乎所有主流開局分支,並針對不同棋力水平的用戶提供了多個版本。
-
殘局庫支持:支持Nalimov風格的殘局庫,在殘局階段可以精確走棋。
-
多平臺兼容:小蟲象棋支持Windows、Android、iOS等多個平臺。其Android版本在移動端象棋軟件中具有很高的市場佔有率。
商業模式與市場策略:
小蟲象棋的商業策略與旋風、名手有所不同:
- 定價相對較低,面向更廣泛的用戶羣
- 支持多種支付方式和授權模式
- 提供免費試用版本
- 持續更新維護,用戶支持響應快
用戶羣體:
小蟲象棋的用戶羣體覆蓋面極廣:
- 象棋培訓機構使用小蟲作爲教學輔助工具
- 職業棋手使用小蟲進行賽前準備和局面分析
- 業餘愛好者使用小蟲進行日常訓練和對弈
- 在線對弈平臺的用戶使用小蟲進行人機配合
小蟲象棋雖然沒有旋風、名手那樣的"冠軍光環",但憑藉其穩定性、易用性和廣泛的平臺支持,在中國象棋軟件市場中佔據了不可忽視的位置。
10.5 2009-2015 引擎多維對比
2009年至2015年是中國象棋引擎商業化的成熟期,各引擎在技術路線、商業模式和市場定位上呈現出差異化發展。以下從多個維度進行系統性對比:
| 對比維度 | 象棋名手 | 象棋旋風 (後期) | 佳佳象棋 (Jiajia) | 小蟲象棋 (BugChess) | 南奧象棋 (Nanao) |
|---|---|---|---|---|---|
| 活躍時期 | 2009-2016 | 2005-至今 | 2009-2016 | 2010-至今 | 2012-至今 |
| 開發者 | 蔣志敏+張閩 | 陳朝營 | 李國來 | 劉宗元團隊 | 鄭明政→南奧團隊 |
| 開發組織 | 個人團隊 | 個人 | 個人 | 集團團隊 | 小團隊 |
| 核心技術棧 | PVS+並行+分佈式 | PVS+空着裁剪+LMR | GGzero(MCTS+NN)→傳統 | PVS+數據驅動 | PVS+手工+數據驅動 |
| 評估方法 | 深度手工(100+特徵) | 手工+數據校正 | 手工→NN(後期) | 手工+數據驅動 | 手工+漸進優化 |
| 並行策略 | 多線程+分佈式集羣 | 多線程(SMP) | 多線程 | 多線程 | 多線程 |
| 協議 | UCI | UCCI | UCI(後期) | UCI | UCCI |
| 許可證 | 閉源商業 | 閉源商業 | 閉源商業 | 閉源商業 | 閉源商業 |
| ICGA成績 | — | 銀牌(2008) | — | 金牌(2013) | — |
| CCMC成績 | 5次冠軍(2009-2014) | 2次冠軍(2007,2010) | — | — | — |
| 平臺支持 | Windows | Windows/Linux | Windows | Win/Mac/Android/iOS | Windows |
| 定價策略 | 中高端授權 | 中端授權 | 免費→收費 | 低端走量 | 中端授權 |
| 目標用戶 | 職業/半職業棋手 | 核心愛好者 | 研究人員/愛好者 | 大衆用戶/教學 | 愛好者/庫作者 |
| 主要優點 | 棋力頂尖,分佈式強 | 持續進化,算法好 | 早期MCTS探索 | 跨平臺,定價低 | 開局庫強,穩定 |
| 主要缺點 | 價格高,售後有限 | 界面差,文檔少 | 棋力波動,更新慢 | 棋力上限較低 | 推廣有限,知名度低 |
| 歷史貢獻 | CCMC五連冠 | 最長商業化運營 | AI+象棋結合試驗 | 移動端先驅 | 臺灣傳承 |
| 巔峯棋力(ELO) | ~2850 | ~2780 | ~2550 | ~2500 | ~2600 |
| 顯著技術創新 | 分佈式搜索架構 | LMR剪枝優化 | 蒙特卡洛樹搜索 | Android移植 | 開局庫自動化 |
注:此期間象棋名手憑藉CCMC五連冠確立了商業引擎第一的地位,但其不參與ICGA等國際賽事也反映了一部分國內商業引擎的策略選擇——在國內市場獲取商業回報優先於國際學術競賽。佳佳象棋的GGzero嘗試是MCTS技術在中國象棋中的首次系統應用,雖然棋力未達到PVS引擎的水平,但爲後來的NNUE時代做了技術鋪墊。小蟲象棋的成功則證明了跨平臺支持和合理定價在擴大用戶基礎方面的重要性。
第十一章 南奧象棋:從象棋世家到跨時代的傳承
11.1 南奧象棋的前身:象棋世家的誕生
南奧象棋(Nanao Chess / sachess)是中國象棋引擎領域一支有着深厚歷史傳承的重要力量。它的前身是象棋世家(Xiangqi Shijia / “Chess Family”),由臺灣開發者鄭明政(網名"Poor")於1990年代中期創建。
象棋世家的起源(1995年):
鄭明政是臺灣的一名小學教師。1995年11月,他利用業餘時間開始編寫一個名爲"zmz"的中國象棋客戶端程序,用於在ICCS(國際中國象棋系統)上在線對弈。這個程序最初只是一個簡單的象棋界面,但隨着鄭明政不斷添加功能,逐漸演變爲一個完整的中國象棋引擎。
2000年,這個軟件被正式命名爲象棋世家,命名者施金山(Shi Jinshan)賦予了它這個富有文化氣息的名字。隨後,一個正式的開發團隊組建起來:
- 鄭明政(Poor):引擎核心開發者,負責搜索算法和評估函數 (使用Visual Basic 6.0 (sp5) 程式語言開發)
- 吳衍奇 :引擎測試和優化
- 唐世彥(Tang Shiyan):引擎測試
- 施金山(Shi Jinshan):開局庫採集
- 黃恆山(Huang Hengshan):首席測試員
2000年代初期,象棋世家在臺灣和香港地區銷售,是中國象棋商業軟件市場中的重要品牌之一。象棋世家也是最早通過互聯網進行跨境遠程開發合作的中國象棋棋軟, 象棋世家V4是鄭明政,小葉(中國大陸廣州)開發的最後一個主要版本。V5則是 鄭明政負責引擎(c++源碼, 算法繼承於自有的VB算法), Oldwu(中國大陸上海)負責界面和中國大陸市場銷售的一個主要版本, 此後,由於團隊內部的分歧,原團隊分裂,出現了由 Oldwu 維護的V6-V9系列版本。
象棋世家在ICGA的成就:
2010年,象棋世家(以Shiga名稱參賽)在第15屆ICGA計算機奧林匹亞(日本金澤)中獲得中國象棋項目金牌。這是象棋世家系列引擎在國際賽事中的最高榮譽。
11.2 南奧象棋的品牌重塑與技術架構
2009年以後, 象棋世家界面作者Oldwu,經過多年對引擎技術的鑽研,以南奧象棋(sachess)的名稱發佈新引擎。引擎的可執行文件名爲sachess.exe,因此也常被稱爲"Sachess"。
技術架構:
南奧象棋是一個基於傳統手工評估(HCE, Hand-Crafted Evaluation)的引擎,使用經典的Alpha-Beta搜索架構:
-
搜索算法:PVS(主變搜索)配合迭代加深、空着裁剪(Null Move Pruning)、歷史啓發剪枝(History Pruning)、渴望窗口(Aspiration Windows)等技術。
-
靜態搜索(Quiescence Search):用於緩解地平線效應(Horizon Effect),在搜索到設定深度後繼續搜索喫子着法和關鍵着法。
-
置換表:基於Zobrist哈希的置換表,緩存已搜索局面的結果。
-
着法排序:採用多層排序策略——置換表最佳着法優先,其次是喫子着法(按MVV/LVA原則,即最價值的目標/最低價值的攻擊者排序),然後是殺手着法(Killer Moves),最後是歷史啓發着法(History Heuristic)。
-
搜索擴展:將軍擴展(Check Extension)、回喫擴展(Recapture Extension)、將殺威脅擴展(Mate-threat Extension)等技術。
-
局面表示:使用位行位列(bit-rank/bit-file)技術進行高效的着法生成。
-
評估函數:傳統手工評估,包含子力價值、位置價值、棋子活動性、將帥安全性等多個維度。南奧象棋的評估函數在手工評估時代經過了精細調優。
開局庫:
南奧象棋的開局庫基於數千局大師級對局構建,包括全國象棋比賽、象甲聯賽、個人賽、弈天華山等高水平對局數據。開局庫支持雲開局庫和雲殘局庫的在線查詢。
多核支持:
南奧象棋推出了多個版本以支持不同的硬件配置:
- 雙核版(免費發佈):針對雙核CPU優化
- 四核至尊版v1.5:針對四核CPU優化
- 32位版和64位版同時提供
界面功能:
南奧象棋的配套GUI具有以下功能:
- Office 2003風格界面
- 任意局面的分析模式
- 支持XML格式的棋譜記錄
- 兼容XQF、CBL、PGN、MXQ、CHE等多種棋譜格式
- 開局庫管理和編輯
- 引擎配置管理
11.3 南奧象棋的比賽成績
南奧象棋在中國機器博弈錦標賽和亞洲人工智能象棋邀請賽等賽事中取得了以下成績:
| 年份 | 賽事 | 成績 |
|---|---|---|
| 2017 | 第11屆中國計算機博弈錦標賽(重慶) | 亞軍 |
| 2017-10 | 第2屆楚河漢界杯亞洲象棋人工智能對決邀請賽(滎陽) | 季軍 |
| 2019 | 第3屆楚河漢界象棋人工智能對決賽 | 參賽 |
2017年第11屆中國計算機博弈錦標賽:
在重慶舉辦的第11屆中國計算機博弈錦標賽中,南奧象棋獲得亞軍,這是南奧象棋在中國大陸賽事中取得的最佳成績之一。比賽中,南奧象棋展現了出色的中局戰術能力和穩定的殘局處理水平。
2017年第2屆楚河漢界杯:
在河南滎陽舉辦的楚河漢界杯亞洲象棋人工智能對決邀請賽中,南奧象棋與象棋旋風、象棋天啓、Alpha貓等強勁對手同臺競技。比賽使用統一的36核超級計算,開局庫被禁用且強制8步出庫。
南奧象棋在預賽前三輪中連續戰平象棋旋風、象棋天啓和Alpha貓,展示了穩定的競技狀態。最終獲得季軍(第三名)和5000元獎金。冠軍爲象棋旋風,亞軍爲象棋名手。
棋力評估:
根據社區測試數據,南奧象棋免費版的棋力大約爲2890 ELO(在Kaka的引擎等級分排行榜上),相當於象棋名手3.26的水平,遠超人類特級大師,但明顯落後於現代NNUE引擎(皮卡魚約4005 ELO)。
在社區引擎等級分排行中,南奧象棋位於第16位左右(共約26個測試引擎),屬於第二梯隊傳統引擎的水平。
11.4 南奧象棋的授權模式與社區影響
南奧象棋的授權模式經歷了從商業到免費的變化:
- 南奧象棋雙核版:免費發佈,適合低端電腦使用
- 四核至尊版:可能爲付費版本
南奧象棋的源代碼從未公開。雖然沒有明確的開源許可證,但雙核版的免費發佈使大量中國象棋愛好者能夠接觸到商業級別的引擎分析能力。
11.5 南奧象棋的歷史意義
南奧象棋在中國象棋引擎發展史上的地位:
-
商業轉免費的先行者:南奧象棋免費雙核版的發佈模式,是商業引擎向免費模式轉型的早期嘗試之一。
-
傳統HCE時代的標杆:在NNUE普及之前,南奧象棋的評估函數調優水平代表了傳統手工評估引擎的高水準。
-
社區記憶的載體:南奧象棋的流傳版本和比賽記錄,承載了中國象棋引擎社區對2000-2010年代引擎發展歷程的記憶。
最新已知版本爲南奧象棋1.6版(約2017-2019年)。此後,南奧象棋的更新似乎已經停止,但其在社區中的影響力和在低端電腦上的實用性仍然存在。