• 沒有找到結果。

1.1 研究背景

利用人工智慧與人對弈的這個概念,可以追溯自 1769 年,“The Turk”[1]這個宣稱 可以自動與人對下西洋棋的機器,在幾百年前曾經造成當時的大新聞。雖然後來被人 證實這台機器其實是由一個侏儒所操縱的,並非真的是一台自動與人對弈的機器。但 從那時候起,就可以見識到人們對於人工智慧這項領域發展的決心。到了 1950 年,人 工智慧這個領域出現了一位 Shannon 教授致力於如何發展能夠與人對弈的西洋棋程式,

其中 Programming a Computer Playing Chess[2]這篇論文更詳細記載了他的研究。許多後 來從事電腦對局領域的相關研究人員,也都跟隨此篇論文的觀念去發展。

直至現今,無論是西方的跳棋、西洋棋、五子棋、撲克牌,抑或是東方的象棋、暗 棋、孔明棋、將棋等等,許多的對弈遊戲皆成為電腦對局領域裡面研究的項目。有些 遊戲經過幾年的研究,已經完全被破解(solved)[3],意指透過程式可證明其必勝法則或 者已經存在某一個電腦程式可以完全戰勝現今人腦的智慧,通常以該遊戲最頂尖的玩 家當作比賽對手。舉例來說,IBM 所研發的西洋棋程式 DeepBlue,在 1997 年當時就 已經達到打敗人類玩家的程度了。

目前在這個電腦對局的領域中,有一國際性的協會 ICGA(International Computer Games Association),每年都會舉辦一次於不同的國家舉辦為期約一周的學術研討會,

會在各項遊戲當中互相切磋研究成果。

其中日本的 mini-shogi(5 五將棋),為日本將棋於 1970 年左右發展的其一分支[5]。

除了棋盤大小從 9 乘 9 降為 5 乘 5 之外,棋盤上能夠選擇的兵種也由八種降至六種,

其餘規則保留自原本的日本將棋。5 五將棋也於 2007 年[6]開始,發展國際電腦對局的 相關賽事,由日本的電氣通信大學所舉辦的 UEC Cup 到 ICGA 的 Computer Olympiad,

5 五將棋已經成為在國際賽事中被討論的項目之一。在台灣近幾年也被 TCGA(Taiwan Computer Games Association) 和 TAAI(Technologies and Applications of Artificial Intelligence)列為固定的競賽項目之一了。

1.2 研究目的

相較於其他在電腦奧林匹亞電腦對局競賽裡對弈的項目,如西洋棋、黑白棋、圍棋 或者象棋等等,5 五將棋在人工智慧這個領域的研究時間尚未滿十年。無論是開局、殘 局、子力配置、資料結構與搜尋方法等等,仍然屬於開放性的問題探討範圍,並沒有 特定較佳的解決策略,目前主要的研發團隊來自於日本,但公開的文獻並不多且以日 文撰寫為主,因此網路上能取得的相關資料也相當的有限。

在電腦對局裡面,遊戲被主要劃分為完全資訊遊戲和不完全資訊遊戲兩種[7]。完 全資訊遊戲可以讓雙方玩家掌握所有的遊戲資訊,遊戲所有發展的可能性在開始前就 已經被告知所有玩家,例如:圍棋、中國象棋、西洋棋等等;而不完全資訊遊戲則包 含了一些玩家無法完全掌握的訊息,只能利用片段已知的資訊來設計搜尋以及計算機 率來做出判斷,例如:麻將、撲克牌、大富翁等等。而電腦遊戲亦尤其機率性被分為 有機率性和無機率性兩類。因此 5 五將棋在電腦對局的分類當中屬於完全資訊,且無 機率成分的遊戲。

雖然 5 五將棋屬於完全資訊的遊戲,且遊戲盤面並不大,兵種也相對較少,看似搜 尋樹的複雜度不高,但由於規則較繁瑣複雜,如變身(倘若銀將、角行、飛車、步兵行 至對方兵營底線,或從對方兵營底線出發,可選擇升級至特定兵種),以及打入(吃入的 子能夠再次打入盤面)等規則,使得在搜尋樹在每一次的搜索當中搜索分支的數量都相

本論文研究的目的則是希望能透過 Bitboard 的資料結構來記錄盤面及各個兵種的 儲存狀況,來降低搜尋樹所佔用的記憶體空間。也透過位元運算子(Bitwise operator)實 作飛車、角行、龍王和龍馬等較特殊的走步生成,及盤面維護,來加速搜尋時間,讓 電腦的資源獲得較佳的運用。讓 Wonders 的棋力可以透過實作演算法或者是建立資料 庫的同時,能夠確實的精進實力,以求在各賽事有好的表現。

1.3 研究意義

在電腦對局的這個領域裡,許多程式發展的主要架構皆利用樹狀搜尋去尋找當下盤 面所應採取的最佳對策。對於搜尋樹來說,每一層搜尋的展開(敵方與我方每交換一次 即遞增一層搜尋的深度),其資料量與搜尋時間更是以指數的方式成長。於是採取什麼 樣的資料結構以及如何修剪搜尋樹的分支等等,這些看似細微的修改卻會顯著的影響 整個程式的效能。

在這裡我們選用 BitBoard 的資料結構與 Bitwise operator 的運算方式來做為我們程 式的基礎。在 5 五將棋中,相較於其他兵種的走步生成方式,飛車、角行、龍王和龍 馬可以垂直、水平或斜向的走任意步,並不是像金、銀、步兵等的走步,是在距離其 相鄰位置的地方即可處理,而是在生成走步的過程當中需要另外維護,透過適當的切 割棋盤,快速的找到相對應的走步位置。

本研究將 BitBoard 的技術用於 5 五將棋程式的研發中,並記錄相關演算法的實作 以及研發流程,雖然 5 五將棋在研究領域中,除了研發歷史不如其他棋類悠久,在國 內的資料也相對而言不足,但期望透過本文章能夠給予一些參考資料。本研究論文中 實作之程式 Wonders,於 2011 年研發至今,並於 2013 年的 TAAI 電腦對局競賽當中獲 得 5 五將棋的金牌,期望在未來能夠有更穩定且具有突破性的研究發展。

1.4 論文架構介紹

本文以介紹 5 五將棋的人工智慧程式 Wonders 為主體。首先於第一章介紹本論文之 研究背景、目的及意義,討論相關領域之發展背景以及為何撰寫本研究論文。第二章 則簡要介紹 5 五將棋的規則以及其人工智慧當今研發的國內外環境為何,例如有哪些 研究團隊、參考資料等等。第三章則是以文獻探討為主要內容,包含遊戲樹、資料結 構 BitBoard 以及特殊開局庫(Special Open)等等之資料收集。接下來才在第四章和第五 章討論本程式之實做情形,由資料結構、走步生成談起,到演算法或者程式流程當中 針對此遊戲的特殊設計。而第六章則是做簡要的資料分析和紀錄,討論程式研發的過 程當中參加過的比賽狀況和紀錄。最後第七章和第八章則是做結論、未來的方向探討 和相關附錄。

第二章

5 五將棋介紹

相關文件