• 沒有找到結果。

方面,暗棋也被台灣電腦對局學會(TCGA:Taiwan Computer Game Association)、

中華民國人工智慧學會(TAAI:Taiwanese Association for Artificial Intelligence)以及 國際電腦對局協會(ICGA:International Computer Games Association)列為正式的比 賽項目之一。

2

有翻子才有避輸的機會;又有些盤面翻子風險較高但是獲益極少,與其翻子還不 如走閒步,其中的抉擇不易拿捏,導致有些盤面以人類的角度來看是必贏的,但 是最後卻以和局收場。會產生這些原因都是因為暗棋是屬於資訊不完全遊戲,程 式難以判斷得好,容易做出錯誤的決定,即使是正確的決定也會因為運氣因素出 現輸棋的結果。

目前暗棋的研究比起國外的西洋棋來說發展不算完善,相關的學術論文更是 稀少,由於專家的知識的建構上比較欠缺,因此電腦暗棋程式是很有研究價值的 題目。

1.3 研究意義

在各種對局遊戲中,不論是象棋、圍棋、五子棋及麻將等等,最重要的不外 乎就是要有好的演算法。暗棋程式會模仿人類在下棋時,會互相的猜測對方可能 的走法,MiniMax Search 理念就是基於這個想法,為了尋找正確的走法以最小最 大值的方式來進行遊戲樹的展開。程式根據展開的結果選擇最佳的走法下棋,且 隨著搜尋層數的加深,則遊戲樹的搜尋節點數將會呈指數成長。暗棋的遊戲樹複 雜度則是介於西洋棋(Chess)及中國象棋(Chinese Chess)之間,圖 1-1 列出了各種 遊戲之遊戲樹複雜度。

3 Chinese Chess 10150 Chinese Dark Chess 10135 Chess 10123 Hex(11*11) 1098 Go-Moku(15*15) 1070 Renju(15*15) 1070 Othello 1058 Draughts 1054 Nine Men's Morris 1050

Qubic 1034

Dakon-6 1033

Awari 1032

Checkers 1031 Domineering(8*8) 1027 Connect-4 1021 Kalah(6,4) 1018

圖1-1 各種遊戲之遊戲樹複雜度。[9][13][17]

由此可見得暗棋的遊戲複雜度非常龐大,為了節省搜尋的時間而衍生了許多 的做法,Alpha-Beta Search 以及其改良 (如: Principal Variation Search、Nega-max with Alpha-beta Pruning 等…) 為現今較為熱門的搜尋演算法。它的理念是對局雙 方都是選擇對自己最有利的分支,基於這個想法,當搜尋中發現有些分支的回傳

4

分數過高時(也就是對手的分數過低時),就不需要再看其它分支,因為對手必定 不會走這條分支。如圖 1-2 所示。

圖1-2 Alpha-Beta Search tree

然而就算有一個可以保證得到必勝走法的完美演算法,但是往往沒有辦法在 思考限制時間內得出解,使得這個完美演算法沒有辦法有效的發揮,更有可能造 成局勢的誤判。所以暗棋程式的棋力強弱與搜尋的深度息息相關,而搜尋的深度 又受到電腦的運算速度限制,即使無法搜尋到真正的葉節點來得到正確的結果(即 得知勝負),就整體趨勢而言,搜尋的速度越快就能越搜尋得更深以及更加接近正 確的結果。所以我們的核心目標就是使用各種手段為程式加快搜尋速度以及更加 精確的判斷局勢來提升暗棋程式的棋力。

1.4 論文架構

本論文共有五章。第一章介紹研究背景、困難之處和意義。第二章介紹暗棋

5

相關棋規、電腦暗棋對局競賽以及相關論文。第三章介紹本論文實作出的暗棋程 式所使用的資料結構以及搜尋演算法。第四章介紹暗棋程式 Dancing 和 TsaiB8 的 改良方式,其中包含翻子策略、動態配置棋子分數、時間控管、搜尋樹的選擇性 展開搜尋以及多執行緒的執行方法。第五章是結論和未來方向。最後還有附錄和 參考資料。

6

相關文件