• 沒有找到結果。

結論與未來研究方向

在文檔中 電腦暗棋之設計及實作 (頁 53-58)

我們所撰寫的暗棋程式,在CPU:1.83GHz、記憶體:512MB 的環境下,分

別與極真科技的暗棋王還有人類玩家(即本論文作者、網路玩家)進行 20 盤的

是以rule base 來撰寫人工智慧的部份,所以在很多情況下會誤判情勢,而最終被

我們以搜尋演算法為核心的程式給擊敗。再看我們的程式與人類玩家實戰測試的

結果,仍有50%(=

8 8

8

+ )的勝率,可見我們的程式已有接近人類玩家的棋力。

而之所以會有敗績,乃是因為暗棋本屬於不完全資訊含機率性的遊戲,當程式在

嘗試翻子的時候,只能以近似的算法,來算出可能翻哪個位置比較有利,但如果

翻到的棋子真的很差的話,或是對方剛好翻到很好的棋子的話,自然就會導致最

後的敗果。而從實戰測試結果可以發現,即使在含有機率的情況下,我們以搜尋

演算法為基礎核心的方式,還是比用rule base 的方式要來的好。如圖 4-1,紅方

是暗棋王,黑方是我們的程式,現在輪黑方走:

圖4-1 與暗棋王實戰圖

黑方走了F2-F1 的妙著,如圖 4-2,輪紅方走:

圖4-2 與暗棋王實戰圖

紅方走了G2-H2 仕吃卒,準備再吃車,如圖 4-2,輪黑方該我們的程式走:

圖4-3 與暗棋王實戰圖

此時黑方走了E1-D1 象吃兵後,紅、黑方雙進行如下走步:C1-D1 帥吃象,E2-E1

棄士,D1-E1 帥吃士,如圖 4-4,輪黑方走:

圖4-4 與暗棋王實戰圖

黑方最後走了E4-E1 包吃帥。從圖 4-3,紅方走了 G2-H2 吃卒後,黑方一連串棄

象、棄士,而到最後包轟帥的手段,真叫人拍案叫絕。倘若紅方沒有G2-H2 吃卒

,或許可以防止黑方後來的一連串棄子取帥的手段。此例(如圖4-2)輪紅方走,

若改由我們的程式來下紅方,則會走G2-G1 捉包,因而避開被吃帥的危機。由此

可見,搜尋的威力此時勝於rule base 對情勢的判斷。而面對人類玩家是以策略性

思考時,搜尋仍讓我們所走出來的棋步或翻子,具有相當一定的水準,使得與人

類玩家進行實戰測試時,仍有五成的勝率,可以與人類玩家相庭抗衡。

第二節 未來研究方向

我們的暗棋程式是以搜尋演算法為其主要核心,所以若是能將搜尋的部份透

過平行化計算或是多執行緒的處理,則可以提高搜尋的速度。一般而言,棋類程

式的棋力與搜尋深度成正比,當然暗棋程式也不例外,因此若採用平行計算的方

式,將對局樹做適當的切割後,交由給不同的處理器去做搜尋,則能大幅提高搜

尋的速度,加深搜尋深度,進而提高棋力。除了將搜尋改成平行的計算方式外,

其實也可以考慮如何讓比較重要的路徑做延伸搜尋(Extension),而讓比較不重

要的路徑做減少深度的搜尋(Reduction),這樣的做法也可以使棋力提高,是值

得研究的方向。

另一方面就是審局函數的改良,我們目前的審局函數只有單純的子力價值分

數,所以當殘局盤面可能要花十幾手,甚至二十幾手棋才會有吃子的情形時,因

為搜尋的深度有限,無法看到需要花那麼多手棋才會顯示出來的盤面反應,而導

致走出來的棋步,無法以目標導向的朝著正確的路徑前進。所以若是能加入一些

棋形特徵,例如考慮棋子間的位置關係,或是兵種之間的組合,都能幫助我們在

殘局盤面時,在有限深度搜尋的情況下,仍可以有目標導向的朝著較正確的路徑

前進。所以改良審局函數,加入一些棋形特徵的判斷,也是很值得研究的方向。

參考著作

[1] “Wikipedia",網址:http://zh.wikipedia.org/wiki/。

[2] “象棋百科全書",網址:http://www.elephantbase.net/index.htm。

[3] 王小春,“人機博奕",重慶大學出版社,2002 年 6 月。

[4] 吳身潤,“人工智慧程式設計",維科圖書,2002 年 3 月。

[5] 何宏發、謝秋桂,“電腦象棋-原理、設計、實作及工具箱",第三波出版社,

1988 年 12 月。

[6] 方裕欽,“UCT 算法的適用性及改進策略研究-以黑白棋為例",國立臺灣 師範大學資訊工程研究所碩士論文,2008。

[7] 林子哲,“「深象」象棋軟體平行化之研究",國立臺灣師範大學資訊工程 研究所碩士論文,2007。

[8] 涂志堅,“電腦象棋的設計與實現",中山大學碩士論文,2004。

[9] 郭哲宇,“電腦象棋擴大空步剪裁演算法的設計及實作",國立臺灣師範大 學資訊工程研究所碩士論文,2007。

[10] 黃文樟,“電腦象棋深象中局程式的設計與實作",國立臺灣師範大學資訊 工程研究所碩士論文,2006。

在文檔中 電腦暗棋之設計及實作 (頁 53-58)

相關文件