開發背景
當從小痴迷於中國象棋的孫鍇偶遇“楚漢棋緣”時,“做一個象棋程式”的想法自此誕生。一個只能進行四層計算,在今天看來非常簡單的小程式,卻開啟了孫鍇同計算機科學的美妙情緣。而最終,經過不斷的修改,這個象棋程式也達到了令人滿意的效果——戰勝了孫鍇及其父親。
然而,孫鍇的人機博弈故事並未就此終結。在與朋友的交流中,他又對五子棋程式產生了極大的興趣。起初,由於多個因素的影響,孫鍇在很大程度上低估了五子棋人機對弈的難度。但實際上,五子棋對弈本身所具有的專業規則下無終結,分支因子多,審局困難等特性,以及資料的缺乏,無疑給孫鍇出了一道難題。然而,一遇失敗就放棄從不是他的風格。經歷過冥思苦想卻毫無進展的抑鬱,經歷過偶獲靈感而得巨大飛躍的狂喜,最終,孫鍇的五子棋“弈心”成為了最好的五子棋人工智慧程式之一。
軟體特性
弈心採用了棋軟廣泛採用的引擎-界面分離的設計,引擎與界面之間採用管道通信。
弈心的界面程式採用了清晰簡潔的設計,上手容易,簡單易用。
弈心的界面程式是開源程式,基於Simplified BSD協定。
弈心的界面程式由GTK+搭建,具有良好的跨平台能力,支持Windows/Mac/Linux/BSD。
弈心的界面程式同時支持與弈心協定兼容的引擎,如可以在無禁規則下載入Tito引擎。
弈心引擎採用了許多原創技術,控盤能力優秀,棋風穩健。棋力超越Blackstone(黑石)、Renjusolver(連珠終結者)等老牌五子棋軟體。引擎部分獲Gomocup2012,Gomocup2013,Gomocup2014冠軍。
對於非商業用途,弈心引擎永久免費。
1.弈心的界面程式採用了清晰簡潔的設計,上手容易,簡單易用。
2.弈心的界面程式是開源程式,基於Simplified BSD協定。
3.弈心的界面程式由GTK+搭建,具有良好的跨平台能力,支持Windows/Mac/Linux/BSD。
4.弈心的界面程式同時支持與弈心協定兼容的引擎,如可以在無禁規則下載入Tito引擎。
5.弈心引擎採用了許多原創技術,控盤能力優秀,棋風穩健。棋力超越Blackstone(黑石)、Renjusolver(連珠終結者)等老牌五子棋軟體。引擎部分獲Gomocup2012,Gomocup2013,Gomocup2014冠軍。
6.對於非商業用途,弈心引擎永久免費。
獲得獎項
1. 2014年4月14日 Gomocup 2014冠軍
2. 2013年4月6日 Gomocup 2013冠軍
3. 2012年4月18日 Gomocup 2012冠軍
常見問題
•問:如何將界面語言設定為中文?
•答:點擊選單View->Language->簡體中文。
•問:如何讓軟體跳過某個(或某些)著法的計算?
•答:使用block命令。例如,如果讓軟體忽略i7點的計算,則輸入block i7。
•問:如何獲得第2,第3,…,第n優著法?
•答:藉助block命令。在已獲得最優著法的基礎上,將最優著法使用block命令讓軟體跳過,令軟體重新計算,則可獲得第2優著法。類似地,可以獲得第3,…,第n優著法。
•問:如何獲得正在計算中的最優路線以及評分?
•答:輸入bestline命令。
•問:為什麼設定了計算機執黑(白),並輪到計算機走棋了,但計算機既不計算,也不走棋?
•答:請單擊棋盤任意位置。
•問:棋盤上不同顏色的點的代表的意義是什麼?
•答:
•(1) 白色:必敗點;
•(2) 紅色:最優點;
•(3) 橙色:正在計算的點;
•(4) 黃色:已經計算的點;
•(5) 淡藍色:被禁止的點。
•問:推薦的棋風設定是什麼?
•答:建議棋風選擇0(快棋)或1(慢棋)。
•問:不同段位的區別是什麼?
•答:不同段位的差異僅在於計算時間上。計算時間的排序為:不限時≥名人≥九段≥六段≥四段≥三段≥二段≥一段。計算時間越多棋力相應越強。
•問:在不同配置的計算機上,棋力是否有區別?
•答:除自定義等級外,段位對應的棋力與計算機配置無關。對於同一個段位,在更優配置的計算機上所需的計算時間更少。
•問:哈希表是什麼?
•答:哈希表是用於提高引擎計算效率的表形結構,可以避免引擎計算中的重複勞動。
•問:哈希表大小如何設定?
•答:對於要分析的局面,分析的時間越長,越大的哈希表就越有必要。然而,哈希表並非越大越好,對於局面的快速分析,相比小的哈希表,大的哈希表的會降低分析速度。對於一般套用,哈希表大小建議選用默認值。
•問:如何設定執行緒數?
•答:藉助多執行緒,弈心可以充分利用多處理器或多核心處理器的計算能力。執行緒數的設定以處理器支持的執行緒數上限為宜。
•問:什麼是分裂深度?
•答:當採用多執行緒計算時,分裂深度定義了將計算任務分配給多個執行緒的最小深度。這個參數會影響引擎的分析速率,可以根據具體的計算機硬體進行調整以提升引擎的表現。
•問:軟體的中文名是“弈心”還是“奕心”?
•答:弈心。截至2014年7月,百度百科詞條有誤。
•問:引擎名前綴“Deep”是什麼意思?
•答:由西洋棋軟體流傳下的命名傳統之一,“Deep”用於指示軟體能夠藉助多處理器或多核心處理器,在單位時間內獲得對局面更深入的分析結果。
•問:弈心是免費的嗎?
•答:對於非商業用途,弈心免費。
•問:弈心開源嗎?
•答:弈心引擎尚不開源;弈心界面程式Yixin-Board開源(Simplified BSD License)。
•問:安全軟體報告弈心是病毒?
•答:在確認下載來源可靠,且電腦在安裝弈心前未受病毒感染的前提下,請相信是安全軟體誤報。