中國象棋計算機博弈發展史研究報告
系統梳理中國象棋計算機博弈從 1980 年代到 2026 年的技術演進、代表引擎與社群生態。 第一卷 計算機博弈的理論基礎 → 第五章 棋天大聖:學術與工程的交匯(2004–2006)
第一卷 計算機博弈的理論基礎
第一章 計算機棋類博弈的基本概念
1.1 什麼是計算機博弈
計算機博弈(Computer Game Playing)是人工智能研究的一個核心領域。其基本問題可以表述爲:如何讓計算機在完全信息、輪流走棋的雙人對弈遊戲中做出最優決策?
中國象棋屬於完全信息博弈(Perfect Information Game)——對弈雙方都能看到棋盤上的所有棋子,不存在隱藏信息。這與麻將、撲克等非完全信息博弈有本質區別。完全信息博弈的特點使得Minimax搜索算法可以直接應用。
1.2 Minimax搜索與Alpha-Beta剪枝
Minimax搜索是計算機博弈的理論基石。其基本思想是:在博弈樹中,每一層代表一個玩家的走棋決策,假設雙方都選擇對自己最有利的走法:
- **己方(MAX)**選擇評估值最大的走法
- **對方(MIN)**選擇評估值最小的走法(對自己最有利的相當於使對方評估值變小)
公式可以表示爲:
Minimax(局面) = max(對手所有走法後的 Minimax(對手走法結果))
Minimax搜索在理論上是完美的,但在實際中,博弈樹的規模隨搜索深度指數增長。中國象棋的平均分支因子約爲40-60種合法着法——這意味着搜索10層需要評估40^10 ≈ 10^16個節點,這在任何計算機上都是不可行的。
Alpha-Beta剪枝的出現解決了這個問題。Alpha-Beta剪枝的核心思想是:當搜索到某個分支時,如果發現該分支已經不可能影響最終的決策結果,則立即停止對該分支的進一步搜索。
具體機制:
- Alpha值表示MAX玩家當前的最佳保證值(下限)
- Beta值表示MIN玩家當前的最佳保證值(上限)
- 當一個分支的搜索返回的值超出了[Alpha, Beta]區間時,可以選擇剪枝
理想情況下,Alpha-Beta剪枝可以將搜索複雜度從O(b^d)降低到O(b^(d/2))——在同樣的時間內,搜索深度翻倍。對於中國象棋這樣分支因子高的遊戲,Alpha-Beta剪枝的效果極爲顯著。
1.3 國際象棋引擎的先行研究
中國象棋引擎的發展在很大程度上受益於國際象棋引擎的先行研究。
Claude Shannon的奠基性工作(1950年):
1950年,貝爾實驗室的克勞德·香農(Claude Shannon)發表了劃時代的論文《Programming a Computer for Playing Chess》。在這篇論文中,香農首次提出瞭如何讓計算機下棋的系統方法:
- 類型A策略(暴力搜索):搜索所有可能的着法到一定深度,然後使用評估函數評估局面。
- 類型B策略(選擇性搜索):只選擇有希望的着法進行深度搜索,忽略明顯壞的着法。
香農還提出了博弈樹搜索的基本理論框架和局面評估函數的設計原則。這篇論文被認爲是計算機博弈領域的奠基之作。
Alan Turing的早期實現(1951年):
阿蘭·圖靈(Alan Turing)在曼徹斯特大學期間,設計了一個計算機下棋的程序(Turochamp)。由於當時沒有足夠強大的計算機來運行它,圖靈只能"手動模擬"算法的執行——他每走一步棋需要計算大約30分鐘。儘管如此,Turochamp證明了計算機下棋在原則上是可行的。
Deep Blue的歷史意義(1997年):
1997年,IBM的Deep Blue在國際象棋上擊敗了世界冠軍加里·卡斯帕羅夫(Garry Kasparov),這是計算機博弈歷史上最重要的里程碑事件。Deep Blue使用了定製的VLSI芯片,每秒鐘可以評估2億個局面。其基本架構仍然遵從Minimax搜索+Alpha-Beta剪枝的框架,但通過工程優化達到了前所未有的搜索速度(有些局面下搜索深度可達20層以上)。
這些程序所發展的**Alpha-Beta剪枝、迭代加深(Iterative Deepening)、置換表(Transposition Table)、歷史啓發(History Heuristic)、殺手着法(Killer Move)、空着裁剪(Null Move Pruning)**等技術,後來都被中國象棋開發者吸收並加以適配。
1.4 爲什麼中國象棋程序起步較晚
中國象棋程序起步晚於國際象棋,並非偶然:
- 硬件條件。 1980年代中國大陸和中國臺灣的個人計算機普及率遠低於西方,286/386處理器的計算能力極爲有限。
- 語言與工具。 早期象棋程序的開發主要使用C語言和彙編語言,而這些工具在華人社區的傳播較慢。
- 缺乏標準化數據。 國際象棋有PGN標準格式、龐大的棋譜數據庫和統一的國際賽事體系;而中國象棋在1990年代缺乏統一的電子棋譜標準。
- 學術支持薄弱。 國際象棋有ICGA(國際計算機博弈協會)的長期支持和大量學術論文,而中國象棋在學術界的關注度較低。
- 競賽體系不完善。 國際象棋有定期的國際計算機博弈錦標賽和標準化的比賽規則;中國象棋的計算機競賽體系在很長時間內缺乏統一的組織。
- 文化因素。 1980年代正值AI研究寒冬(AI Winter),公衆對"機器智能"的態度比較保守。中國象棋社區中,將"電腦下棋"視爲高科技探索也經歷了一個逐步接受的過程。
儘管起步較晚,中國象棋引擎的發展速度卻非常快——從1989年將族首次奪冠,到2022年Pikafish引入NNUE,短短33年間,中國象棋引擎的棋力從業餘初級水平進化到超越人類特級大師的水平,其發展速度甚至快於國際象棋程序的進化歷程。這種快速追趕現象可以歸因於兩個因素:一是中國象棋引擎可以直接借鑑國際象棋引擎成熟的技術框架;二是計算機硬件在1980年代後期的快速發展爲中國象棋引擎提供了比國際象棋先驅們更好的開發環境。
第二章 最早的象棋程序:1989年計算機奧林匹亞競賽與將族
2.1 宏碁杯與計算機象棋的起點(1985–1988)
最早的中國象棋計算機比賽是由**宏碁電腦(Acer)**在臺灣舉辦的"宏碁杯",從1985年到1990年每年舉行。這是中國象棋計算機博弈最早的競技平臺。
1985年舉辦的第一屆宏碁杯計算機象棋大賽被認爲是世界上第一個有組織的中國象棋程序競賽。根據有限的歷史資料,當時參賽的程序數量不多,棋力也十分有限,但這標誌着中國象棋計算機博弈從個人實驗走向了有組織競賽的新階段。宏碁杯由中國臺灣的宏碁電腦公司贊助,以推廣個人電腦應用和軟件開發爲目標。這種企業支持對早期中國象棋軟件發展起到了關鍵的推動作用。
根據ICGA記錄,第一個可工作的中國象棋程序大約出現在1982年。第一篇關於中國象棋計算機博弈的學術論文發表於1981年。但這些早期程序仍然處於實驗階段,遠遠無法與人類棋手抗衡。最早的實驗性程序主要是基於規則的簡單系統,搜索深度通常只有2-3層,評估函數也極爲粗略。
2.2 將族(Acer Chinese Chess/象棋大師3)
將族(英文名Acer Chinese Chess,也稱CChess、象棋大師3)由中國臺灣程序員虞希舜(Yu Xishun)在大學時期開發。該程序在1989年於倫敦舉行的**第1屆計算機奧林匹亞競賽(1st Computer Olympiad)**中獲得中國象棋項目的金牌。
將族(Acer Chinese Chess)運行界面——由虞希舜在大學時期開發,1989年首屆ICGA計算機奧林匹亞金牌得主,開啓了中國象棋計算機博弈的先河
根據ICGA的官方記錄,第1屆計算機奧林匹亞中國象棋項目共有5個參賽程序:
| 排名 | 程序 | 國家/地區 | 得分 | 比賽總局數 |
|---|---|---|---|---|
| 1 | Acer Chinese Chess(將族) | 臺灣 | 4.0 | 4 |
| 2 | CChess Expert Acme | 臺灣 | 3.0 | 4 |
| 3 | Elephant | 臺灣 | 1.5 | 4 |
| 4 | Xian | 美國 | 1.5 | 4 |
| 5 | Ogre | 英國 | 0.0 | 4 |
將族的商業化產品"象棋大師3"於1992年在DOS平臺發佈。其棋力據稱相當於中國象棋業餘二段水平以上,在當時DOS平臺上的表現極爲突出。
技術特點:
將族採用了當時較爲標準的計算機博弈架構:
- 局面表示: 使用10×9的二維數組表示棋盤,每個格子編碼棋子類型和顏色。
- 搜索算法: 深度優先的Alpha-Beta剪枝搜索,配合迭代加深(Iterative Deepening)技術。搜索深度通常在4至7層之間。
- 評估函數: 以子力價值爲主(車>馬>炮>兵),結合簡單的位置權重表和基礎攻擊/防守判斷。
- 開局庫: 內置了當時較全面的開局變化庫,使得引擎在開局階段不會消耗搜索時間。
- 工程特點: 界面與引擎高度耦合,作爲一個單體DOS程序運行。這在當時是標準做法,但也意味着引擎無法獨立於界面使用。
歷史影響與侷限:
將族在中國象棋引擎史上具有開創性的地位,但關於它的認知存在一些需要糾正的偏差:
- 它不是"第一個"中國象棋引擎——在它之前已有實驗性程序出現(如Xian、Elephant)。
- 它也不是當時"最強"的引擎——在1990年第2屆計算機奧林匹亞競賽中,Elephant(許舜欽開發)獲得金牌,將族未參賽。
- 它的核心貢獻在於"可傳播性"——作爲商業發行的軟件,“象棋大師3"在DOS時代的華語圈廣泛流傳,讓大量普通用戶第一次體驗到了"電腦下棋”。
- 引擎與GUI耦合——無法獨立調用引擎,限制了其後續發展。
虞希舜的開創性貢獻:
虞希舜將族的最重要貢獻在於,他在1980年代末期的資源限制下實現了具有競爭力的象棋程序。根據有限的公開資料,將族使用了在當時的PC上可以達到的最優搜索策略,並編寫了高質量的彙編語言核心代碼。虞希舜後來轉向了其他領域(資料顯示他在微軟工作過),並沒有持續從事中國象棋引擎的開發。但他留下的遺產——將族/象棋大師3——在中國象棋軟件史上具有不可磨滅的地位。
將族(Acer Chinese Chess)DOS版軟件包裝盒——由宏碁電腦發行,是中國象棋計算機博弈歷史上最早的商業軟件之一
2.3 將族之後的早期商業引擎
在將族取得成功後,中國臺灣和中國大陸出現了一批早期的商業象棋軟件:
- 象棋世家:在將族的基礎上繼續發展的商業程序,由宏碁/倚天繼續維護
- 象棋武林:中國大陸早期的象棋程序之一
- 象棋大師系列的多版本迭代
這些早期商業程序的特點是:
- 界面與引擎高度耦合,無法分離
- 棋力大致在業餘初級至中級水平
- 主要面向個人消費者市場
- 技術細節通常不公開
2.4 ICGA的技術規則與學術競賽環境
國際計算機博弈協會(ICGA)爲中國象棋計算機競賽提供了重要的組織框架。在ICGA競賽中:
- 使用的是正式的中國象棋競賽規則(亞洲規則)
- 比賽時間控制通常較爲寬裕(如每方1小時包乾)
- 對局雙方必須使用各自獨立開發的程序
- 賽事爲單循環制或多輪瑞士制
ICGA競賽環境對中國象棋引擎的學術性發展起到了重要推動作用。學者們可以在標準化條件下比較不同算法和實現的效果,這種競爭-驗證機制促進了技術的迭代和優化。但ICGA競賽的參與門檻較高(需要前往指定地點參賽),限制了獨立開發者和業餘愛好者的參與。
第三章 UCCI與UCI協議:中國象棋引擎標準化的關鍵一步
3.1 UCCI協議的誕生
UCCI協議(Universal Chinese Chess Interface,中國象棋通用引擎協議)的誕生是中國象棋引擎歷史上的一個關鍵轉折點。在UCCI出現之前,每個中國象棋引擎都是一個"黑盒"——引擎和用戶界面(GUI)緊密耦合在一起,用戶無法自由替換引擎或界面。
協議的設計者與時間節點:
UCCI協議由黃晨設計,於2006年正式發佈在xqbase.com上。黃晨同時也是ElephantEye(象眼)引擎的作者和xqbase.com的維護者。他設計UCCI協議的初衷是:讓不同的中國象棋引擎可以像國際象棋引擎那樣通過標準化的文本協議與任意GUI通信。
UCCI協議的設計受到了國際象棋UCI協議(Universal Chess Interface,由Stefan Meyer-Kahlen和Shane Hudson設計)的深刻影響。可以說,UCCI本質上是UCI針對中國象棋規則的適配版本。
UCCI的核心思想:
UCCI採用簡單的文本行(line-based text protocol)作爲通信格式。GUI向引擎發送指令,引擎返回結果。這種設計具有以下優點:
-
協議無關性:通信基於標準輸入輸出(stdin/stdout),與操作系統和編程語言無關。無論是Windows、Linux還是macOS,無論是C++、Java還是Python實現的引擎,都可以通過UCCI通信。
-
簡單性:每條指令和響應都是可讀的文本行,易於調試和理解。
-
異步性:在搜索過程中,引擎可以隨時向GUI發送中間搜索結果(如當前最佳走法、搜索深度、評估值等)。
-
可擴展性:引擎可以通過"feature"命令聲明自己對協議特定擴展的支持。
UCCI標準指令詳解:
UCCI協議定義了以下核心指令,這裏列出主要指令的格式和功能:
-
ucci:引擎初始化指令。GUI發送"ucci",引擎回覆"id name <引擎名稱>"和"id author <作者>"等信息,然後發送"ucciok"表示初始化完成。 -
isready/readyok:同步檢查指令。GUI通過"isready"確認引擎是否處於可工作狀態,引擎回覆"readyok"。 -
setoption <name> <value>:設置引擎選項。比如設置哈希表大小、線程數、評估參數等自定義選項。 -
position [[fen](/zh-tw/xiangqi-fen/) <FEN串>] startpos moves <着法列表>:設置棋盤局面。可以指定FEN串(未知起點)或使用開局庫標準開局。然後列出之前已走的着法序列。 -
go <參數>:開始搜索。參數可能包括搜索深度(depth)、搜索時間(time/movetime)、搜索節點數(nodes)、無限搜索(infinite)等。 -
stop:停止搜索。 -
ponderhit:在後臺思考(pondering)模式下,GUI通知引擎對方走了它預判的着法。 -
quit:終止引擎進程。
UCCI協議的中國象棋適配:
UCCI相比於UCI,針對中國象棋的特點進行了以下適配:
-
着法格式:中國象棋的着法使用起始座標到目標座標的方式表示(如"a0a1"),而非國際象棋的"代數記譜法"(如"e2e4")。
-
FEN格式:適配了中國象棋的棋盤尺寸(9×10而非8×8)和棋子類型。
-
規則處理:協議層支持中國象棋特有的規則處理需求,如循環着法、將帥照面等。
3.2 UCCI協議的實際影響
UCCI協議的出現對中國象棋引擎生態產生了深遠影響:
-
引擎與界面的分離:從此引擎可以作爲獨立的模塊運行,用戶可以在同一個GUI中切換不同的引擎。這催生了像兵河五四這樣的多引擎管理工具。
-
對比測試的便利化:因爲協議統一,開發者可以輕鬆地在同一平臺、同一局面下比較不同引擎的棋力和表現。
-
開源工具的湧現:基於UCCI協議,社區開發了大量的輔助工具和GUI:包括兵河五四、象棋旋風界面、倚天界面、棋軟收藏家等。
-
分佈式計算的實現:UCCI協議的文本特性使其非常適合在分佈式環境中使用,通過TCP/IP在不同的機器上運行引擎和GUI。
3.3 UCCI與UCI的深度對比
雖然UCCI基於UCI,但兩者在中國象棋和國際象棋引擎開發中的使用場景有一些顯著差異:
| 特點 | UCI(國際象棋) | UCCI(中國象棋) |
|---|---|---|
| 棋盤大小 | 8×8 | 9×10 |
| 棋子種類 | 6種/方 | 7種/方 |
| 走法表示 | e2e4格式 | a0a1格式 |
| FEN描述 | 國際象棋FEN | 中國象棋適配FEN |
| 循環着法處理 | 三次重複即和 | 複雜(長將/長捉/二打一還打) |
| 協議成熟度 | 1999年發佈,極其成熟 | 2006年發佈,後續有修訂 |
UCCI與UCI之間最本質的區別在於**循環着法(repetition detection)**的處理。在國際象棋中,三次重複局面自動判和;而在中國象棋中,需要區分"長將"、“長捉”、"一將一捉"等不同類型的循環着法,執行不同的判罰。這意味着UCCI協議的引擎需要比UCI引擎具備更復雜的重複檢測邏輯。
3.4 黃晨對UCCI的維護
黃晨在xqbase.com上維護了UCCI協議的官方規範,並提供了參考實現(ElephantEye)。他還設計和實現了UCCI調試器和協議一致性測試工具,幫助開發者確保他們的引擎正確實現了UCCI協議。
xqbase.com作爲中國象棋程序設計的中心站點,提供了:
- UCCI協議的完整中文文檔
- ElephantEye引擎的完整源代碼(LGPL許可證)
- 中國象棋編程教程(包括評估函數、搜索算法、置換表實現等專題)
- XQF棋譜格式的工具鏈
黃晨爲UCCI和ElephantEye投入的大量時間和精力,使其成爲當之無愧的"中國象棋引擎開源之父"。
3.5 FEN格式在中國象棋中的標準
在UCCI協議中,FEN(Forsyth‑Edwards Notation)作爲局面的標準文本表示被正式引入中國象棋領域。中國象棋適配的FEN格式具體如下:
- 棋盤表示:從第1行(黑方底線)到第10行(紅方底線),使用"/"分隔
- 大寫字母(紅方):K=帥,A=士,B=象,N=馬,R=車,C=炮,P=兵
- 小寫字母(黑方):k=將,a=士,b=象,n=馬,r=車,c=炮,p=卒
- 數字:表示連續的空位數
- 附加字段:走子權(w/b)、是否可易位(中國象棋無此概念,通常用"-“)、喫子過路(中國象棋無此概念,通常用”-")、半回合計數、整回合計數
標準初始局面的FEN:
rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1
第四章 棋隱:中國象棋引擎的第一個里程碑(1997–2000)
4.1 棋隱(Chess1)的誕生
棋隱(英文名Chess1)由林順澤開發。棋隱在1997-2000年期間在中文論壇上被稱爲"棋隱"或"Chess1"。關於其作者的公開信息較爲零散,但可以確定的是棋隱在1990年代末的中國象棋軟件市場中佔據了主導地位。
棋隱的出現恰逢中國個人電腦開始普及的時期。Windows 95/98操作系統爲棋隱提供了比DOS更好的運行環境。棋隱是首批在Windows環境下運行的主流中國象棋軟件之一。
棋隱(Chess1)4.35版本——1990年代末期最流行的中國象棋軟件之一,標準的Windows風格界面,3D立體棋盤
4.2 棋隱的市場地位
棋隱在中國象棋軟件市場中的地位類似於WinBoard/ChessBase在國際象棋軟件中的地位——它雖然不一定是技術最強悍的,但卻是當時市場上最知名、最廣泛使用的象棋程序之一。
棋隱的主要特徵包括:
- 提供友好的Windows圖形用戶界面
- 棋力在1990年代末期約爲業餘一級至二級水平
- 支持棋譜記錄、保存和覆盤
- 包含基本開局庫
4.3 棋隱的界面特徵與用戶交互體驗
棋隱的用戶界面採用了當時標準的Windows軟件設計風格:
- 菜單欄包含"文件"、“編輯”、“棋局”、“設置”、"幫助"等標準菜單項
- 棋盤採用3D立體的視覺風格(在當時較爲新穎)
- 棋子具有木紋質感
- 支持悔棋、覆盤、棋譜編輯等功能
- 帶有內置的規則引擎,可以判斷合法着法和非法着法
- 支持打印棋譜
這些界面特徵雖然在今天看來很普通,但在1990年代末期,棋隱的用戶體驗已經大大超越當時的同類產品。
4.4 技術架構
棋隱的技術架構反映了1990年代末期中國象棋引擎的典型水平:
- 搜索算法:Alpha-Beta剪枝,迭代加深搜索,搜索深度約5-8層。
- 評估函數:以子力價值爲基礎(車10分、馬4分、炮4分、士2分、象2分、兵1分),輔以簡單的位置權重和棋子活動性評估。
- 開局庫:內置數百個常見開局變例。
- 局面表示:使用10×9的二維數組,配合簡單的棋子位置哈希。
- 工程特點:引擎與GUI耦合(但比將族時代更模塊化),仍然以單體程序的方式交付。
棋隱的評估函數雖然簡單,但在當時已經能夠提供足夠的棋力來挑戰業餘水平的人類棋手。棋隱的技術限制在於:
- 沒有使用置換表(Transposition Table)來加速搜索
- 沒有使用空着裁剪(Null Move Pruning)
- 評價函數的精度有限,對複雜局面的判斷不夠準確
這些限制使得棋隱的棋力在進入21世紀後很快被新一代引擎超越。
4.5 棋隱的衰落與影響
棋隱的衰落標誌着中國象棋軟件第一代的告別。隨着計算機硬件的快速提升和搜索算法的發展,棋隱在2000年代中期後逐漸被引擎(如象棋奇兵、棋天大聖等)取代。但棋隱的歷史地位不容忽視——它是第一個真正進入大衆視野的中國象棋程序,極大地推動了中國象棋計算機博弈的普及。
棋隱對中國象棋軟件生態的影響體現在以下幾個方面:
- 用戶習慣的培養:棋隱培養了大量中國象棋軟件用戶,他們從棋隱開始瞭解"電腦下棋"的可能性和侷限性。
- 市場教育的完成:棋隱證明了象棋軟件具有商業價值,爲後來的商業引擎鋪平了市場道路。
- 社區文化的萌芽:關於棋隱的討論和使用經驗分享,爲後來棋中論壇等象棋軟件社區的形成奠定了基礎。
第五章 棋天大聖:學術與工程的交匯(2004–2006)
5.1 棋天大聖的開發背景
棋天大聖(NEUChess)由東北大學的王驕及其團隊開發。棋天大聖是中國象棋計算機博弈歷史上最重要的學術成果之一。
棋天大聖(NEUChess)——東北大學王驕團隊研發的中國象棋引擎
東北大學對人工智能和計算機博弈有着較長期的研究積累。王驕在2004年前後開始着手開發棋天大聖,作爲其在東北大學的研究課題。棋天大聖的開發過程體現了"學術研究"與"工程實現"的結合,是學術界參與中國象棋引擎研發的典範。
5.2 棋天大聖在ICGA和CCMC中的成就
棋天大聖在中國象棋引擎競賽中取得了突出的成績:
-
2006年ICGA金牌:2006年在意大利都靈舉行的第11屆計算機奧林匹亞競賽中,棋天大聖以微弱優勢戰勝了縱馬奔流等強勁對手,獲得金牌。這是中國大陸學術界開發的中國象棋引擎首次在ICGA賽事中奪冠,意義重大。
-
CCMC 2006-2007冠軍:中國機器博弈錦標賽(China Computer Game Championship,CCMC)從2006年開始舉辦,首屆冠軍即爲棋天大聖,2007年棋天大聖繼續衛冕。
棋天大聖(NEUChess)引擎界面——東北大學研發的首個在ICGA奪冠的大陸中國象棋引擎
棋天大聖在2006年ICGA都靈賽事中的比賽界面——以微弱優勢戰勝縱馬奔流等強勁對手獲得金牌
棋天大聖的技術分析界面——其評估函數對複雜局面具有出色的判斷能力
2006年ICGA比賽的戰術分析:
根據棋譜分析,棋天大聖在2006年ICGA比賽中的主要優勢在於:
- 出色的中局判斷能力——評估函數對複雜局面的評估較爲準確
- 穩健的搜索策略——不會因爲過度剪枝而錯過關鍵戰術
- 較深的中局搜索深度——在對手失誤時能把握住機會
5.3 王驕的學術貢獻
王驕通過在東北大學的研究工作,不僅開發了棋天大聖,還發表了多篇關於中國象棋計算機博弈的學術論文,包括:
- 關於中國象棋引擎搜索效率優化的研究
- 關於中國象棋引擎評估函數設計的研究
- 關於中國象棋引擎並行搜索的研究
這些學術論文爲後續的中國象棋引擎開發提供了重要的理論參考。王驕的研究方向涵蓋了中國象棋引擎的多個核心領域,從搜索算法的改進到評估函數的優化,從單機效率的提升到並行搜索的實現。他的工作展示了中國象棋引擎作爲一個學術研究課題的可行性。
5.4 棋天大聖的技術細節
根據公開的學術論文和論壇討論,棋天大聖的技術特點包括:
高級PVS搜索: 棋天大聖使用了PVS(Principal Variation Search),這是Alpha-Beta搜索的一種高效變體。PVS通過假設第一個走法(主變)就是最佳走法,然後使用窄窗口(零窗口)搜索其他分支來驗證這一假設。
混合評估函數: 棋天大聖的評估函數結合了手工調優的靜態特徵和簡單的統計分析。評估因子包括:
- 子力價值(基礎分)
- 位置價值(每個棋子在每個位置上的得分表)
- 棋子活動性(可走位置的多少)
- 棋子協調性(棋子之間的配合關係)
- 將帥安全性(將帥的保護狀態)
- 局面結構(兵種結構、士象完整性等)
置換表優化: 棋天大聖實現了置換表功能,通過哈希表緩存已搜索的局面結果。置換表的引入顯著減少了重複搜索,提高了搜索效率。
試驗性並行搜索: 棋天大聖嘗試了Young Brothers Wait並行搜索策略,在雙核機器上展示了一定的擴展性。雖然並行效率不高,但這種嘗試在當時具有前沿意義。
5.5 棋天大聖的歷史意義
棋天大聖在中國象棋引擎發展史上的特殊意義在於:
- 學術領域的認可:棋天大聖證明了中國象棋引擎是值得學術界關注的課題,爲後來更多高校參與中國象棋引擎研究奠定了基礎。
- 中國大陸與ICGA的橋樑:作爲中國大陸首個在ICGA奪冠的引擎,棋天大聖讓國際計算機博弈界認識了中國象棋引擎研究的實力。
- 技術傳承的範例:王驕通過發表論文和分享經驗,推動了技術知識的傳播和傳承。
- 技術路線的示範:棋天大聖展示了結合學術嚴謹性和工程實現的質量,是怎樣開發出一流中國象棋引擎的。