以基因規劃法與蒙地卡羅樹搜尋設計卡牌遊戲策略—以爐石戰記為例
55
0
0
全文
(2) 致謝 首先,感謝我的家人在我的碩士生涯中給我的關心與協助,沒有你們就不 會有今天的我。雖然有時候會覺得你們的噓寒問暖有點多,但真的很溫暖。也 謝謝你們讓我可以沒有壓力的把碩士讀完。 接著,感謝我的指導教授—蔣宗哲老師,謝謝老師給我研究這個論文題目 的機會,為實驗室開拓新方向。老師總是能突破我研究上的盲點,減少我撞牆 的次數。我在老師身上學到很多不同的思考方式,以及對新事物抱持懷疑的態 度、實事求是的研究精神。 然後,謝謝宗驌學長訂正我的論文並給予建議;謝謝 Shark 學長的禮物,真 的很酷;謝謝廷翰學長、震昱學長、中儀學長、政遠學長、重堯學長以及芳齊 學姊這段時間的照顧;謝謝彥辰與家卉,你們一直是我課業和研究上的好夥伴; 謝謝佳峯與彥吉給予我研究上的指導與建議;謝謝雅茹、敬庭、庭宇、碩英、 培弘、東霖、炫任和政儒的幫忙。謝謝 MHLab 的大家,有你們真好。 再來,謝謝我大學以及研究所的朋友景皓,謝謝你陪我一起翹課、一起做 報告、一起打爐石戰記、一起分享工作的事。因為有你,我的研究所生涯一點 都不枯燥。 最後,謝謝已經陪伴我七年的女友琳儒,讓我在遇到困難與挫折時總是有 堅持下去的理由。希望在未來的日子裡,當我遇到挫折時,不輕易放棄的理由 仍然是妳。 畢業不只是一個階段的結束,也是另一個階段的開始。祝福各位在人生未 來的每個階段裡,都能順順利利、心想事成。. i.
(3) 中文摘要 收集類卡牌遊戲 (Collectible Card Games, CCG) 的 AI 研究在近年來逐漸火 熱,而爐石戰記 (Hearthstone) 是目前全世界最熱門的線上卡牌遊戲 ,在 2018 年底已經超過一億名玩家。本論文將透過基因規劃法 (Genetic Programming, GP) 產生爐石戰記的出牌策略,目的是希望僅使用基本的爐石戰記領域知識 (domain knowledge) 就能自動化地演化出不錯的出牌策略。並進一步將此策略套用在蒙地 卡羅樹搜尋 (Monte-Carlo Tree Search, MCTS) 的模擬策略中,以提升 MCTS 之效 能。此外,為了改善本論文基因規劃法評估時間過長的問題,我們使用昂貴優 化中的適應值近似法減少了 10% - 20% 的實驗時間。最後,我們將與 COG 2019 爐石比賽第 1 名以及 CIG 2018 爐石比賽第 10 名的 AI 對戰,以評估本論文所提 出之策略的效能。透過分析基因規劃法的染色體結構,我們能了解哪些盤面資 訊對爐石戰記的出牌策略是重要的,也能讓爐石戰記玩家快速的了解並參考獲 勝的關鍵策略。我們也希望在未來能將此研究方法應用在其它遊戲中。. 關鍵字: 基因規劃法、蒙地卡羅樹搜尋、昂貴優化、爐石戰記、人工智慧. ii.
(4) 目錄 致謝 ................................................................................................................................ i 中文摘要 ....................................................................................................................... ii 目錄 .............................................................................................................................. iii 附表目錄 ....................................................................................................................... v 附圖目錄 ...................................................................................................................... vi 第一章. 緒論 ............................................................................................................... 1. 1.1 研究背景與動機................................................................................................. 1 1.2 爐石戰記............................................................................................................. 1 1.2.1 牌組類型...................................................................................................... 3 1.3 研究目的............................................................................................................. 4 1.4 論文架構............................................................................................................. 5 第二章. 文獻探討 ....................................................................................................... 6. 2.1 基因規劃法 (Genetic Programming, GP) .......................................................... 6 2.2 適應值近似法..................................................................................................... 7 2.3 蒙地卡羅樹搜尋 (Monte-Carlo Tree Search, MCTS) ....................................... 9 2.3.1 蒙地卡羅方法 (Monte-Carlo method) ...................................................... 11 2.3.2 上界信賴區間公式 (Upper Confidence Bounds, UCB1) ......................... 12 2.4 爐石戰記 AI 相關文獻..................................................................................... 13 第三章. 研究方法 ..................................................................................................... 17 使用基因規劃法產生爐石戰記策略............................................................... 17 編碼 (encoding) ................................................................................................ 19 解碼 (decoding) ................................................................................................ 20 適應性評估 (fitness function) .......................................................................... 23 適應值近似法................................................................................................... 24 初始化族群、選擇、交配與突變................................................................... 26. 3.1 3.2 3.3 3.4 3.5 3.6. 3.7 基因規劃法與蒙地卡羅樹搜尋結合之應用................................................... 27 第四章. 實驗結果與分析 ......................................................................................... 30. 4.1 實驗環境 ........................................................................................................... 30 4.2 效能指標........................................................................................................... 30 4.3 參數設定........................................................................................................... 30 4.4 比較文獻........................................................................................................... 31 4.5 實驗結果與分析............................................................................................... 32 4.5.1 適應值近似法之閥值比較........................................................................ 32 iii.
(5) 4.5.2 基因規劃法產生之爐石戰記策略之效能評估........................................ 32 4.5.3 使用隨機模擬策略 MCTS 效能評估 ....................................................... 34 4.5.4 使用基因規劃法產生之模擬策略 MCTS 效能評估 ............................... 35 4.6 AI 效能總結...................................................................................................... 37 4.7 最佳染色體結構分析....................................................................................... 40 第五章. 結論與未來展望 ......................................................................................... 45. 參考文獻 ..................................................................................................................... 46. iv.
(6) 附表目錄 表 3 - 1:函式集合 ....................................................................................................... 20 表 3 - 2:終端集合 ....................................................................................................... 20 表 4 - 1:基因規劃法之實驗參數設定 ....................................................................... 30 表 4 - 2: MCTS 之實驗參數設定 .............................................................................. 31 表 4 - 3:適應值近似法之閥值比較 ........................................................................... 32 表 4 - 4:基因規劃法 AI VS. P&M AI ........................................................................ 33 表 4 - 5:基因規劃法 AI VS. HEIMBRODT AI ............................................................. 33 表 4 - 6:MCTS (RANDOM) VS. P&M AI ...................................................................... 34 表 4 - 7:MCTS (RANDOM) VS. HEIMBRODT AI ........................................................... 35 表 4 - 8:MCTS (GP) VS. P&M AI ............................................................................... 36 表 4 - 9:MCTS (GP) VS. HEIMBRODT AI ................................................................... 36. v.
(7) 附圖目錄 圖 1 - 1:手下型卡牌範例 ............................................................................................ 2 圖 1 - 2:爐石戰記遊戲畫面 ........................................................................................ 3 圖 1 - 3:牌組類型克制圖 ............................................................................................ 4 圖 2 - 1:演化演算法流程圖 ........................................................................................ 6 圖 2 - 2:MCTS 迭代流程圖....................................................................................... 10 圖 2 - 3:MCTS 迭代步驟........................................................................................... 10 圖 2 - 4:蒙地卡羅方法求圓周率之近似值 .............................................................. 11 圖 3 - 1:基因規劃法流程圖 ...................................................................................... 18 圖 3 - 2:染色體樹狀圖範例 ...................................................................................... 19 圖 3 - 3:假想盤面範例圖 .......................................................................................... 21 圖 3 - 4:打出手牌 A 範例圖...................................................................................... 21 圖 3 - 5:打出手牌 B 範例圖 ...................................................................................... 22 圖 3 - 6:SabberStone 與爐石戰記 AI 關係圖 ........................................................... 23 圖 3 - 7:適應值近似法流程圖 .................................................................................. 25 圖 3 - 8:交配 (crossover) ........................................................................................... 26 圖 3 - 9:突變 (mutation) ............................................................................................ 27 圖 3 - 10:研究流程圖 ................................................................................................ 28 圖 4 - 1:先手 MCTS (random) & MCTS (GP) vs. P&M AI ..................................... 38 圖 4 - 2:後手 MCTS (random) & MCTS (GP) vs. P&M AI ..................................... 38 圖 4 - 3:先手 MCTS (random) & MCTS (GP) vs. Heimbrodt AI............................. 38 圖 4 - 4:後手 MCTS (random) & MCTS (GP) vs. Heimbrodt AI............................. 39 圖 4 - 5:AI 效能比較圖 vs. P&M AI......................................................................... 39 圖 4 - 6:AI 效能比較圖 vs. Heimbrodt AI ................................................................ 39 圖 4 - 7:假想盤面圖 .................................................................................................. 41 圖 4 - 8:敵方手下攻擊我方手下範例圖 .................................................................. 41 圖 4 - 9:「賣血」範例圖 .......................................................................................... 42 圖 4 - 10:基因規劃法產生之最佳染色體 ................................................................. 43. vi.
(8) 第一章 1.1. 緒論. 研究背景與動機 近年來,收集類卡牌遊戲 (Collectible Card Games, CCG) 變得愈來愈受歡迎,. 如遊戲王 - 怪獸之決鬥 (Yu-Gi-Oh! Duel Monsters) [1]、 魔法風雲會 (“Magic, the Gathering” ) [2] 等,也愈來愈多關於 CCG 人工智慧 (Artificial Intelligence, AI) 的 研究。爐石戰記 (Hearthstone) [3] 是目前全世界最熱門的線上 CCG ,在 2018 年 底已經超過一億名玩家,也因此成為本論文的研究主題。 隨機性是許多卡牌遊戲的特色,爐石戰記也不例外。相較於圍棋、象棋等 棋類,卡牌遊戲具有較多隨機性與不確定性,例如抽牌以及對手的手牌等。這 些隨機與不確定因素將對卡牌遊戲 AI 的表現與效能造成一定程度的影響,也使 得卡牌遊戲 AI 的研究更具有挑戰性。. 1.2. 爐石戰記. 爐石戰記是一款由美國暴風雪公司 (Blizzard Entertainment) 在 2013 年所開發 的線上 CCG。遊戲採用一對一輪流回合制,在對戰前必須先從自己的牌庫中組 織自己的套牌,牌組剛好包含 30 張牌,且每場對戰中只可使用一套牌組。在遊 戲開始前雙方玩家將選擇一位英雄,每位英雄都擁有 30 點生命值以及專屬的卡 牌與英雄能力,先將對手英雄的生命值歸零即可獲得此場遊戲的勝利。 爐石戰記的卡牌分為手下 (minion)、法術 (spell)、武器 (weapon) 三種類型, 每種類型的卡牌都有不同的功能。手下型卡牌擁有攻擊力與生命值,在打出後 1.
(9) 會一直存在於玩家的戰場上,直到該手下的生命值歸零才會被移除,手下型卡 牌如圖 1 - 1 所示;法術型卡牌在打出後會立即造成某種一次性效果,例如清除 對手目前的手下等,但此類型的卡牌打出後就會消失;武器型卡牌則可以讓玩 家的英雄具有攻擊力。 在玩家的回合 (turn) 中,可進行多個動作 ,每次動作都從出牌、攻擊、結束 回合 (end turn) 中選一個,直到做出結束回合的動作,才輪到對手的回合,換對 手動作。遊戲中雙方玩家會擁有手牌,手牌是該玩家當前回合可以打出的卡牌, 並會在每個回合開始時隨機從玩家的牌庫中抽出一張來補充。當打出手牌或使 用英雄能力會消耗相對應數量的法力水晶 (mana),法力水晶的數量 (上限為 10) 會隨著遊戲的進行而上升,通常需要愈多法力水晶的卡牌也就愈強大。若法力 水晶充足,玩家可在該回合內打出多張卡牌。圖 1 - 2 為爐石戰記的遊戲畫面。. 圖 1 - 1:手下型卡牌範例。左上數字為打出此卡牌需要的法力水晶;左下與右下 數字分別為此手下的攻擊力與生命值;下方文字為此手下的特殊能力。 (圖片取 自 https://playhearthstone.com/zh-tw/). 2.
(10) 圖 1 - 2:爐石戰記遊戲畫面。(1)敵方英雄血量 (2)敵方手下 (3)敵方手牌 (4)敵 方牌庫 (5)敵方法力水晶 (6)我方英雄 (7)我方手下 (8)我方手牌 (9)我方牌庫 (10) 我方法力水晶 (圖片取自 https://playhearthstone.com/zh-tw/). 1.2.1 牌組類型 一般來說,爐石戰記雖然可依照玩家的喜好或想法來建立屬於自己的牌組, 但根據遊戲策略或獲勝方式的不同,牌組可以大略分為以下三種類型: (1) 快攻(aggro): 快攻牌組的特色是在遊戲前期或中期就獲得勝利,通常會攜帶許多低水晶 費用的手下攻擊敵方英雄,以手下數量取勝,在遊戲前期就取得大量的優勢。 但後期可能因為手牌資源不足而逐漸失去優勢,甚至被反敗為勝。 (2) 控制(control ): 控制型牌組的遊戲節奏比較慢,通常是在遊戲後期才能獲得勝利,此類牌 組的特色是攜帶大量的清場法術牌來解決對手場上的手下,消耗對手的資源, 並在遊戲後期打出強力的手下或消耗完對手的資源來獲得勝利。 3.
(11) (3) 中速(mid-range): 中速牌組兼具快攻與控制牌組的特色,會使用手下與法術牌來取得勝利, 是一種能攻能守的牌組,通常會在遊戲中後期獲得勝利。手下的體質比快攻牌 組優秀,需要的法力水晶費用也略比快攻牌組高一些,是以手下體質來取勝。 法術牌的效果略比控制牌組弱一些,通常無法清除對手場上較強的手下。. 圖 1 - 3:牌組類型克制圖 這三類型的牌組本質上存在著互相克制的關係,如圖 1 - 3 ,當玩家的牌組 被對手的牌組克制時會擁有先天的牌組劣勢。但可以依靠玩家的技術、策略、 甚至是抽牌時的隨機性來改善與彌補這個劣勢,這也是卡牌遊戲獨特且吸引人 的特色。. 1.3. 研究目的 本論文使用基因規劃法 (Genetic Programming, GP) [4] [5] 產生爐石戰記的 AI ,. 目的是希望能以自動化的方式,產生一個適用於爐石戰記三種牌組類型的通用 出牌策略,而且僅需使用到基本的爐石戰記領域知識 (domain knowledge)。此外, 基因規劃法具有一般性,只要將基因規劃法的元素集合更改成其他遊戲的資訊, 就可產生其他遊戲的策略。 4.
(12) 為了改善本實驗評估時間過長的問題,我們使用了適應值 (fitness) 近似法來 縮短實驗時間。接著對本論文產生的策略進行效能評估,最後將其與蒙地卡羅 樹 (Monte-Carlo Tree Search, MCTS) 結合,探討是否能將其效能做進一步的提升。. 1.4. 論文架構 在接下來的章節中,第二章為文獻探討,介紹本論文將使用到的方法與參. 考文獻,包含基因規劃法、昂貴優化、蒙地卡羅樹搜尋以及有關爐石戰記 AI 的 文獻與應用。第三章為研究方法,詳細說明本論文所提出的方法與流程、染色 體的編碼、解碼、適應性評估、初始化族群的產生方式、選擇、交配與突變, 最後說明基因規劃法與蒙地卡羅樹搜尋結合的應用。第四章將介紹本論文的實 驗環境與實驗參數,並對實驗結果進行分析。第五章將對本論文做總結,並提 出未來可研究與改進之方向。. 5.
(13) 第二章 文獻探討 2.1 基因規劃法 (Genetic Programming, GP) 演化演算法 (evolutionary algorithm) 為模仿自然界生物行為的一種搜尋演算 法,目標問題中每一個可能的解都是一個染色體 (chromosome),這些染色體可 組成族群。在每一世代 (generation)中,族群內的染色體透過選擇 (selection)、複 製 (reproduction)、交配 (crossover)、突變 (mutation) 來演化出更優良的下一代, 產生更好的子代,即產生更好的解。圖 2 - 1 為演化演算法流程圖。. 圖 2 - 1:演化演算法流程圖 6.
(14) 1990年,美國史丹佛大學教授 Koza 提出基因規劃法 [4] [5],其為一種演化 演算法。基因規劃法的染色體常會利用樹狀結構來表示,每一個染色體都是一 棵大小、形狀不定的樹。 基因規劃法也是利用選擇、複製、交配和突變來保留優良的染色體,並演 化、繁衍出更優良的下一代。其中,選擇是挑選出要使用哪些染色體進行交配; 複製是將此代優良染色體完整的保留、複製到下一代;交配是將兩個染色體的 基因片段交換,以產生更多元的基因組合;突變是染色體的變異,為了防止掉 入區域最佳解 (local optimal solution)。染色體好壞的評估方式稱為適應性評估 (fitness evaluation),例如在遊戲或棋類中可利用勝率來作為評估的標準。在基因 規劃法每一代演化的過程中,根據適應性評估的結果來淘汰較差的染色體,保 留較佳的染色體並進行交配,將其優良的基因片段傳給子代染色體,直到滿足 終止條件 (如特定世代數)。. 2.2 適應值近似法 適應性評估在演化演算法中扮演著十分重要的角色,它決定了整個族群中 染色體演化的方向,也會影響最佳解的效能。當我們使用演化演算法解決某些 問題時,適應性評估常會花費許多時間,為了解決這個問題,Bhattacharya [6] 歸 納 出 四 種 方 法 , 依 照 其 花 費 時 間 多 至 少 分 別 為 實 驗 評 估 (experimental evaluation)、完整模擬 (complete computational simulation)、簡化模擬 (simplified computational simulation) 與近似逼近法 (approximation)。若想降低評估時間,近 似值準確度往往也會隨之下降,因此,如何在實驗時間與適應值 (fitness) 近似 的準確度間取得平衡是最重要的問題。本論文將使用近似逼近法來節省基因規 劃法之適應性評估時間。 7.
(15) Esparcia-Alcazar 和 Moravec [7] 為了解決基因規劃法用於第一人稱射擊遊戲 Unreal Tournament 2004 (UT2004) [8] 評估時間太長的問題,提出了近似逼近法。 此方法僅需評估少量染色體的真實適應值,並將這些染色體作為參考集合 Y 的元 素,就可利用近似的方式來獲得族群內其他染色體的適應值,以減少大量的評 估時間。 此方法的基本思想為,若兩個染色體之間相似,則它們的適應值也應該相 似。近似適應值的計算方式為該染色體與參考集合 Y 內染色體的真實適應值和相 似度之加權平均。 染色體 i 與染色體 j 之間的相似度 S 定義如公式 (1) ,當給此兩條染色體 K 個輸入時,每當有輸出完全相同,則將 tk 之值加一 。以本論文為例,若給兩 個染色體 100 個爐石戰記盤面作為輸入,假設有 60 個盤面讓它們做出相同的 動作或打出相同的卡牌,根據相似度之定義,此兩個染色體之相似度為 60 %。 1. 𝑆𝑖𝑗 = 𝐾 ∑𝐾 𝑘=1 𝑡𝑘. (1). 此外,當兩條染色體相似度太低時,可能會影響相似度的準確率,所以定 義了閥值 T (threshold)。當相似度 Sij 小於 T 值時,表示相似度太低,則將 Sij 值 改為 0 ; 當相似度 Sij 大於或等於 T 值時,則不做更改。假設染色體 i 為欲使用近 似逼近法之染色體,染色體 j 為參考集合 Y 內之染色體,則染色體 i 之近似適應 值 fi 定義如公式 (2)。 |𝑌 |. 𝑓𝑗 =. ∑. 𝑆′𝑖𝑗 ∙𝑓𝑖. 𝑖=1 |𝑌 |. ∑. 𝑖=1. where. 𝑆′𝑖𝑗. 8. 𝑆𝑖𝑗′ = {. 𝑆𝑖𝑗 , 𝑖𝑓 𝑆𝑖𝑗 ≥ 𝑇 ; 0, otherwise.. (2).
(16) 2.3 蒙地卡羅樹搜尋 (Monte-Carlo Tree Search, MCTS) 蒙地卡羅樹搜尋由 Coulom [9] 在 2006 年提出,是一種用於決策過程的啟發 式搜尋演算法。在遊戲樹中,因為樹的解空間太大,不可能全部遍歷,所以依 賴樹策略 (tree policy) 來選擇勝率最高的節點與路徑,通常能在有限時間內找到 還不錯的解。 在 MCTS 中可將節點視為遊戲中的一個動作,以爐石戰記為例,每個節點 都是該玩家此回合目前可進行的動作 (出牌、攻擊、結束回合)。每個節點均包含 勝利次數、拜訪次數,建立一個新節點稱為一次迭代,一次迭代流程共可分為 四個步驟,如圖 2 - 2,依序為: (1) 選擇 (selection): 在選擇階段會從根節點開始往下搜尋,並使用一種樹策略來選擇當前節點 。 若當前節點為葉節點則此次迭代結束 ; 若有尚未擴展的子節點,則進入步驟 (2)。否則會挑選樹策略值最大的子節點作為當前節點,並再次執行步驟 (1)。 (2) 擴展 (expansion): 使用隨機或啟發式方法選一個尚未擴展的子節點進行擴展,進入步驟 (3) 。 (3) 模擬 (simulation): 根據模擬 (rollout) 次數,使用模擬策略 (default policy) 如隨機策略、貪婪策 略等 (本論文使用基因規劃法產生的策略作為模擬策略),從步驟 (2) 擴展的 節點開始,讓遊戲進行到結束,並記錄勝利次數,進入步驟 (4) 。 (4) 回傳 (backpropagation): 將勝利次數與拜訪次數從父節點一路更新回根節點。. 9.
(17) 選擇. 擴展. 模擬. 回傳. 模擬策略. 樹策略. 圖 2 - 2:MCTS 迭代流程圖 (圖片修改自[10] ) MCTS 是利用大量模擬與統計勝利次數與拜訪次數的方式,來選出勝率最高 的節點;若模擬次數愈足夠,就能愈準確地預測對手的行動。當滿足迭代次數 或預設時間後就會終止,並回傳勝率最高的節點 (動作),迭代步驟如圖 2 - 3。. 圖 2 - 3:MCTS 迭代步驟 10.
(18) 2.3.1 蒙地卡羅方法 (Monte-Carlo method) MCTS 是將蒙地卡羅方法應用在遊戲樹中,而蒙地卡羅方法最早在 1940 年 代被提出,是一種以隨機模擬或取隨機亂數來得到近似於實際答案的方法。假 設一個區域被分割成兩個或多個不規則形狀的小區域時,若想得知哪個區域的 面積最大,可以利用灑豆子的方式,將豆子均勻的往這些區域撒,再透過比較 各區域豆子的數量,找出最多豆子的區域,即可得知哪個區域的面積最大。當 豆子越小、數量越多時,結果會越精確,而撒豆子就類似於隨機模擬的動作。 蒙地卡羅方法也可以應用在求得圓周率 (𝜋) 上,假設欲得知 𝜋 的近似值,可 先在圓上畫出一個外切正方形,此正方形之邊長等於圓的直徑 2r ( r 為此圓之半 徑 ),再利用灑豆子的方式,將豆子隨機撒在此外切正方形上,如圖 2 - 4,透過 比較外切正方形裡的豆子數量以及圓裡的豆子數量後,可得到外切正方形與圓 的豆子數量比,而外切正方形面積:圓面積 = 4 : 𝜋 ( 4𝑟 2 ∶ 𝜋𝑟 2 ),與豆子數量比即 可求出圓周率 (𝜋) 之近似值。. 圖 2 - 4:蒙地卡羅方法求圓周率之近似值. 11.
(19) 2.3.2 上界信賴區間公式 (Upper Confidence Bounds, UCB1) MCTS 在選擇階段常見的樹策略是由上界信賴區間公式 (UCB1) 演變而來, 此公式在 2002 年由 Auer 等人 [11] 所提出,目的在解決多臂吃角子老虎機問題。 此問題是假設每台吃角子老虎機的中獎機率與報酬都不一定相同,我們事先並 不知道實際的報酬與中獎機率,且每台機器間的報酬與中獎機率是彼此條件獨 立的,則該如何在有限的投幣次數下取得最多報酬。 他們提出了一個想法:先將每台機器都玩一次,並記錄其結果,再根據結 果中報酬或中獎機率的好壞來決定之後繼續遊玩各機器的次數,若此機器過往 的報酬或中獎機率較高,則會有較高的機率繼續遊玩此機器;反之,則有較低 的機率繼續遊玩此機器。UCB1 如公式 (3) 所示。 2 ln 𝑃. UCB1 = Xi + √. 𝑁𝑖. (3). 此公式是計算第 i 台機器的信賴區間上界 (UCB),UCB 值愈大代表此機器的 平均報酬較高,其中 Xi 是第 i 台機器的平均報酬,P 是所有機器被遊玩的次數, Ni 是第 i 台機器被遊玩的次數。當玩家根據過往經驗選擇平均報酬較高的機器, 稱 為 開 發 (exploitation); 選 擇 遊 玩 次 數 較 少 或 尚 未 遊 玩 過 的 機 器 稱 為 探 勘 (exploration)。公式中,前項代表開發,後項代表探勘。根據玩家需求的不同, 較偏重於開發或探勘將導致截然不同的結果,而如何在開發與探勘之間取得平 衡,值得探討。. 12.
(20) 2.3.3 UCT (UCB1 applied to trees) 2006年 Kocsis 與 Szepesvári 基於 UCB1 公式提出了 UCT 公式 (UCB1 applied to trees) [12],如公式 (4),是現今 MCTS 中常見的樹策略,也是第一個在遊戲樹 中平衡開發與探勘的公式。它能把資源有效率地用在勝率較高的分支上,對於 勝率較高的分支,探索深度較深;反之,探索深度較淺。 UCT 由開發與探勘兩部分所組成,前者為此節點目前的勝率 ; 後者則是為了 避免在初期搜尋樹的規模較小時,只會拜訪勝率較大的節點而陷入局部最佳解。. UCTi =. 𝑊𝑖 𝑛𝑖. ln 𝑁. + C√. 𝑛𝑖. (4). 公式 (4) 中,UCTi 為子節點 i 的 UCT 值, Wi 為子節點 i 的勝利次數,ni 為子 節點 i 的拜訪次數,N 為父節點的拜訪次數。C 為常數,用來平衡開發與探勘, 可依照需求做調整,例如常數 C 較小時偏重開發;較大時偏重探勘。. 2.4 爐石戰記 AI 相關文獻 目前關於爐石戰記 AI 的研究分為 AI 效能的強化以及牌組的建立。卡牌遊戲 幾乎都存在隨機性與不確定性,導致 MCTS 在模擬階段的準確率下降,因為無 法確定對手的手牌,進而無法精準地模擬對手可能的行動。Dockhorn 等人 [13] 使用二元資料庫 (bi-gram database) 嘗試解決不確定性問題,此資料庫收集了 2016 與 2017 年約 54 萬場的爐石戰記玩家對戰的重播回放數據,這個資料庫能 幫助我們猜測或推斷出對手可能的手牌。也透過實驗發現了提高預測對手手牌 的準確性,MCTS 的勝率也會明顯地提升。 UCD (Upper Confidence bound for Directed acyclic graphs) [14] ,是 UCT 公. 13.
(21) 式的一種擴充,以有向無環圖 (directed acyclic graph, DAG) 來建立決策樹,每個 節點表示玩家動作後的狀態,與 UCT 的差別在於 UCD 會將拜訪過程的統計信 息儲存在 DAG 的邊 (edge)中。Choe 和 Kim [15] 修改了 UCD 來改善 MCTS 搜索 空間的複雜性以及提升 MCTS 的效能。他們使用領域知識建立抽象狀態 (state abstraction) 來處理爐石戰記中的隱藏信息 (如對手手牌),當使用 MCTS 時,根 據這些抽象狀態使用 UCD 建立決策樹以選出每一手的最佳動作。此外,在建立 具有隨機性信息 (如抽牌) 的節點時,使用稀疏採樣方法 (sparse sampling) [16] 來 降低隨機性的影響。 Zhang 和 Buro [17] 為了解決爐石戰記中 MCTS 遊戲樹中巨大分支因素的問 題,透過將相似的動作進行分類,例如將相同法力水晶消耗或攻擊力的卡牌分 類在一起,因為這些卡牌通常較容易對盤面造成相似的影響與結果,以減少遊 戲樹的節點與分支,有較多的時間搜尋較深的節點。此外,他們將爐石戰記的 盤面資訊分成三種特徵作為類神經網路 (Artificial Neural Network, ANN) 的輸入 : 整 體 特 徵 (global features)、 手 牌 特 徵 (hand features) 以 及 場 面 特 徵 (board features),並透過一個合併模型 (merged model) 將這些特徵的輸出連接起來,再 與卷積神經網路 (Convolutional Neural Network, CNN) 做結合,最後輸出每張卡 牌 被 打 出 的 機 率 , 並 根 據 此 方 法 產 生 的 策 略 作 為 MCTS 的 模 擬 策 略 。 Swiechowski 等人 [18] 使用機器學習 (machine learning) 技術來解決爐石戰記 的隱藏信息問題 (如對手手牌),並提升 MCTS 的效能,也證明了在 AI 中增加啟 發式函式 (heuristic function),勝率會明顯地上升,同時能減少計算量。 Santos 等人 [19] 透過爐石戰記的盤面資訊,並且根據領域知識來組成一個啟 發式函式,並且將其加入 MCTS 的樹策略 UCT 公式中,這樣會影響 MCTS 在. 14.
(22) 選擇階段時優先拜訪與展開的節點,除了考慮勝率與拜訪次數外,也會考慮目 前盤面的局勢來決定哪些節點優先需要拜訪與展開,在某些情況下能比 UCT 更 有效率地優先拜訪與展開優秀的子節點。 García-Sánchez 等人 [20] 根據卡牌的屬性與手下的特殊能力分類出 21 個權重 參數,並使用演化演算法產生爐石戰記 AI,每一個參數都將會影響到 AI 在做 某些決策時的行為。為了優化這些複雜的參數,他們使用協同演化 (coevolution) [21] 的概念並配合爐石戰記的領域知識來調整這些參數,共同演化的特色為使 用多個染色體來組成一個解。實驗結果表示,他們的 AI 具有不錯的效能,也在 2018 年 的 CIG 爐石比賽 [22] 中取得第二名的成績。 除了爐石戰記之外,魔法風雲會 [2] 也是一個非常有名的卡牌遊戲。Ward 等人 [23] [24] 將 MCTS 應用在魔法風雲會 AI 中 。也透過實驗說明了 MCTS 中 最佳的模擬次數是一個範圍,並不是愈多愈好;在某些卡牌遊戲中,先手比後 手稍微具有優勢,勝率提升約 2% - 3%。此外,他們將 MCTS 的決策樹結構修 改為二元樹,例如左子節點為打出卡牌 A,右子節點為不打出卡牌 A,並使用 多棵二元樹的方式來決定每張卡牌打出後的效益,進而選出要打出的卡牌。透 過實驗發現,此種方法能改善 MCTS 在卡牌遊戲中信息隱藏或不確定的問題, 並且有效地減少決策樹的分支數量,使 MCTS 的搜尋能夠更深。這種將單棵決 策樹分解成多棵決策樹的方式,類似於 Childs 等人 [25] 所提出的決策樹分群方 法。 在牌組建立方面, García-Sánchez 等人 [26] 使用演化演算法,將爐石戰記的 牌組編碼成染色體,牌組內每張卡牌都是一個基因,並透過交配、突變等方式 來改變牌組內的卡牌,過程中若不符合牌組構成的規則將受到一定的處罰,例 15.
(23) 如降低其適應值得分。適應性評估是讓雙方使用相同的遊戲策略 (如 MCTS、貪 婪策略、隨機策略等) ,並分別使用他們所產生的牌組與爐石戰記的頂尖牌組 對戰來計算勝率,透過自動演化的方式,產生出不錯的牌組。此外,他們使用 演化演算法對爐石戰記進行牌組自動測試 [27] ,目的是希望找出牌組間不平衡 的配合效果,例如將某幾張卡牌的效果配合後一起打出是否會有一些缺陷,雖 然這個問題應該要在爐石戰記的卡牌設計階段就被測試,但事實上,還是有很 多問題是在實際遊戲中才被玩家所發現。. 16.
(24) 第三章 研究方法 3.1 使用基因規劃法產生爐石戰記策略 在研究了近幾年有關卡牌遊戲 AI 的文獻後,我們希望能使用基本的領域知 識,透過基因規劃法來自動演化、產生出遊戲策略。 本論文透過遊戲的盤面資訊來組成染色體,每條染色體都是一個數學公式, AI 在出牌前會先根據染色體所代表的公式,計算出我方所有可行動作的分數, 並做出分數最好的動作。我們可透過分析最佳染色體的結構,得知此染色體選 用哪些盤面資訊來組成這個數學公式,以及了解此 AI 在出牌前所考慮的因素有 哪些,進而得知這些因素對出牌策略的影響是較大的。圖 3 - 1 為本論文所使用 的基因規劃法之流程圖。 此外,為了產生適用於各類型牌組的通用策略,本論文使用中速牌組來產 生出牌策略,因為中速牌組的特色是兼具手下與法術,具備快攻以及控制牌組 的優點,較容易產生出通用策略。. 17.
(25) 圖 3 - 1:基因規劃法流程圖 18.
(26) 3.2 編碼 (encoding) 編碼在基因規劃法中決定了染色體的組成,在本論文中,基因是從終端集 合 (terminal set) 和函式集合 (function set) 的元素中選出,如表 3 - 1 與表 3 - 2。 以本論文來說,染色體會包含爐石戰記盤面的相關資訊,透過這些集合內元素 可組成數學公式,且每個染色體都分別代表一組公式。例如,某個染色體的結 構是 (我方手下總攻擊力 + 我方手下總血量 ),如圖 3 - 2 所示。 本論文中,終端集合的元素均為爐石戰記的盤面資訊 (如圖 1 - 2) ,而函式 集合中「+」和「-」的功能是希望能得到兩個終端集合元素間的加總或差距; 「×」和「÷」是讓兩個終端集合元素間具有倍數關係;若想將某個終端元素放 大或使其佔較多的權重時可能會用到「平方(^2)」和「指數(exp)」;反之,則會 用到「根號(√)」和「對數(log)」。 我們希望能透過這些可見的盤面資訊讓基因規劃法自動化地組合出最佳染 色體,並且根據最佳染色體所使用到的元素,讓我們了解哪些盤面資訊對出牌 時的策略與勝率是有幫助的。. 圖 3 - 2:染色體樹狀圖範例. 19.
(27) 表 3 - 1:函式集合 運算子 + ^2. × log. - √. ÷ exp. 表 3 - 2:終端集合 運算元 我方手下數量. 我方牌庫數量. 敵方手下數量. 敵方牌庫數量. 我方手牌數量. 我方手下總攻擊力. 敵方手牌數量. 敵方手下總攻擊力. 我方英雄血量. 我方手下總血量. 敵方英雄血量. 敵方手下總血量. 我方剩餘法力水晶. 3.3 解碼 (decoding) 每條染色體在編碼後會組成一個數學公式,此公式在解碼後代表遊戲中我 方做出某個動作後的分數。此範例將最大化染色體之值,考慮到我方剩餘法力 水晶的數量,假設此回合我方只有兩個可行的動作,從 A、B 兩張手牌中選擇一 張打出 (如圖 3 - 3),將圖 3 - 2 的染色體解碼後得知打出手牌 A 的分數為 7 分 (如圖3 - 4),手牌 B 分數為 5 分 (如圖3 - 5),則 AI 會打出手牌 A 作為本次出牌 動作。. 20.
(28) 圖 3 - 3:假想盤面範例圖. 圖 3 - 4:打出手牌 A 範例圖 21.
(29) 圖 3 - 5:打出手牌 B 範例圖. 而本論文選擇最小化染色體之值,AI 在出牌前會根據染色體公式計算每個 動作的分數後,選擇分數最低的動作作為本次動作。若有多個相同的最低分數, 則從它們之中隨機選擇一個。至於選擇最大化或最小化染色體值最主要的差別 在於組成染色體時選擇的終端集合與函式集合元素不同,例如當最大化時,會 希望最大化我方的盤面資訊,可能組合出 (我方手下總攻擊力 + 我方手下總血. 量 ) ;而最小化時,可能組合出 (敵方手下總攻擊力 + 敵方手下總血量 ) 。 SabberStone [28] 是基於 .Net Framework 編寫的開源爐石戰記模擬程式,由 darkfriend77 等人所開發,目前可以模擬爐石戰記中 98% 的遊戲功能與卡牌,並 且不斷地在持續更新當中。本論文之實驗是透過 SabberStone 來實作,我們可在 SabberStone 中開發自己的爐石戰記 AI 程式,它也提供了 AI 之間的對戰功能,. 22.
(30) 以供使用者參考或實驗所需。透過 SabberStone 我們可在爐石戰記對戰中了解染 色體解碼後的得分,進而演化出最佳解,如圖 3 - 6。. 圖 3 - 6:SabberStone 與爐石戰記 AI 關係圖. 3.4 適應性評估 (fitness function) 適應值評估決定了染色體的好壞,若只用計算勝率的方式評估染色體的適 應值容易造成鑑別度過低,相同勝率的染色體太多。除非評估的場次夠多,否 則無法精確地區分出染色體的好壞,但若增加評估場次的數量亦會造成實驗時 間太長,故本論文採用得分與勝率合併的方式進行適應性評估。 我們對每條染色體分別評估 10 場對戰,將每場得分加總為此染色體的適應 值。得分的計算參考 IEEE Conference on Computational Intelligence and Games (CIG 2018) 爐石比賽 [22] 的第十名 (Piotrowski and Mittenentzwei) [29] 所提供的盤 面評分方式 [30],針對遊戲結束時的雙方的盤面結果給予評分,如公式 (5) 所示。 而勝率是採用額外得分,根據染色體獲勝的場數,額外獲得分數加入總分。 𝑓(𝑥) = ∑4𝑖=1(𝑃𝑖 ) − ∑4𝑖=1(𝐸𝑖 ) + 我方勝利場數 × 額外得分. 23. (5).
(31) P1 (E1) 生命值: (2√英雄生命值 ) P2 (E2) 手牌: 若手牌大於 3,則 9 + 2 × (手牌數 - 3) ; 否則 3 × (手牌數) P3 (E3) 牌庫: (√牌庫卡牌剩餘數量 ) P4 (E4) 手下: (手下總攻擊力+手下總血量) 其中,Pi 與 Ei 分別代表我方與對手透過以上計分方式所得出的總分,相減 後即為染色體之適應值得分,本論文把額外得分設為 30 分。. 3.5 適應值近似法 在本論文中,因為必須實際的進行爐石對戰才能計算得分,適應性評估需 要大量的時間。為了改善此問題,我們透過昂貴優化中的適應值近似法來節省 實驗評估時間,如圖 3 - 7。在使用近似法前,需先定義參考集合,我們將第 1 世代和每 5 世代的族群作為參考集合,須先透過 SabberStone 模擬評估計算出該 世代中每個染色體的真實適應值,這樣可以確保參考集合內染色體的多樣性, 其他世代若滿足條件則使用適應值近似法產生子代染色體的適應值。 假設參考集合只有兩個染色體,真實適應值分別為 50 與 70,且與欲使用適 應值近似法的染色體相似度分別為 0.8 和 0.9,則透過適應值近似法可得知此染 色體的近似適應值約為 (50×0.8+70×0.9) / (0.8+0.9) ≒ 60.6 。 我們將最佳閥值 T 設為 0.7,即欲使用近似逼近法求得染色體的適應值時, 相似度 70% 以下的染色體將不被採用至加權平均計算中,這樣可避免近似準確 率的下降,本論文第四章將透過實驗找出閥值的最佳範圍。此外,因為適應值 近似法是將參考集合染色體的適應值與相似度做加權平均,當參考集合內有兩 個以上染色體被採用時,此加權平均才有意義,當採用數量小於 2 時,將做真實 24.
(32) 適應性評估,並且也將此染色體加入參考集合中。. 圖 3 - 7:適應值近似法流程圖 25.
(33) 3.6 初始化族群、選擇、交配與突變 本論文是利用隨機的方式產生初始化族群,即初始族群的染色體是從函式 集合與終端集合內隨機挑選元素並組合而成,目的是希望僅使用基本的爐石戰 記領域知識,讓基因規劃法自動地演化出通用類型的出牌策略。 選擇方法為輪盤法 (roulette wheel selection),根據比例原則挑選出可交配的 染色體,愈好的染色體被選到的機率愈高。例如,若染色體 A 的適應值為 60, 染色體 B 的適應值為 40,根據輪盤法,選擇染色體 A 的機率為 60 / (60 + 40) = 60 %;選擇染色體 B 的機率為 40 / (60 + 40) = 40 % 。 交配是從兩個染色體中各自挑選一個目標節點,將目標節點的子樹 (包含目 標節點) 互相交換,目的是希望保留雙方的優點與特色,產生出更好的子代,如 圖 3 - 8。. 圖 3 - 8:交配 (crossover). 26.
(34) 突變分為結構突變與節點突變,如圖 3 - 9,結構突變是從染色體中挑選一 個目標節點,將此目標節點做集合的改變,若從終端集合改為函式集合,樹將 變大 ,必須產生出子樹 ; 反之則變小,將目標節點替換為一個終端集合元素。 而節點突變是將目標節點替換為相同集合內的另一個隨機元素,不會改變樹的 大小。. 結構突變. 節點突變. 圖 3 - 9:突變 (mutation). 3.7 基因規劃法與蒙地卡羅樹搜尋結合之應用 MCTS 使用在爐石戰記 AI 中會因為隨機性問題 (如抽牌) 和無法獲得充足 的對手資訊量 (如對手手牌),導致無法精確的模擬出對手的行動,進而影響勝 率 。此問題可以經由猜測對手的手牌 [13] 與大量的模擬次數來稍微改善,但是 提升模擬次數會造成迭代時間上升。因 COG 2020 爐石比賽 [22] 的每回合 30 秒規則,導致迭代次數與模擬次數受到一定的限制,所以我們使用了另一種提 27.
(35) 升爐石戰記 MCTS 模擬準確度的方式,也就是透過使用勝率較高或性能較好的 AI 作為 MCTS 模擬階段的策略,這樣能讓雙方模擬時不會亂出牌,提高模擬的 準確度。本論文將基因規劃法與 MCTS 結合,兩者間為一種「接力關係」,希 望透過基因規劃法來提升 MCTS 模擬的準確度,也希望透過 MCTS 來將基因規 劃法的效能更上一層樓。圖 3 - 10 為兩者結合研究流程圖,我們透過基因規劃法 事先訓練 (offline training) 好一組最佳染色體 (遊戲策略),之後當我們使用 MCTS AI 時,均將此策略作為 MCTS 的模擬策略。. 圖 3 - 10:研究流程圖 28.
(36) 關於基因規劃法與 MCTS 結合的研究愈來愈多,Alhejali 和 Lucas 使用基因 規劃法提升 MCTS 的效能,並應用在小精靈遊戲中 [31] 。在 MCTS 的選擇階段 方面,他們不只使用 UCT 來選擇優先拜訪與展開的節點,也考慮了對手 (鬼) 的 行動,因為在對手的視角中,我方最佳的節點就是對手最差的節點,對手不太 可能會去拜訪,此概念類似於 α-β 剪枝 [32]。在模擬階段方面,他們使用基因規 劃法來產生模擬策略,使用得分的方式作為模擬的結果,因為在小精靈遊戲中, 得分比勝率更能分辨出色體的好壞。Benbassat 和 Sipper [33] 使用基因規劃法產 生 MCTS 的模擬策略,應用在黑白棋與挪車棋中,也透過實驗說明了此方法能 提升 MCTS 的效能。. 29.
(37) 第四章 實驗結果與分析 4.1 實驗環境 本論文所提出之爐石 AI 是以 C# 實作,實驗環境的作業系統為 Windows 10 / 64 位元,硬體配備為 Intel (R) Core i9-9900KF / 4.90GHz,記憶體大小為 64 GB。. 4.2 效能指標 在評估一個卡牌遊戲 AI 的強度時,勝率是最直觀也最易懂的效能指標,本 論文使用 100 場對戰的勝率作為效能指標。. 4.3 參數設定 本論文實驗參數如表 4 - 1 、 表 4 - 2 所示,其中,我們使用隨機的方式產生 基因規劃法的初始族群,因為我們希望只使用基本的爐石戰記領域知識來產生 遊戲策略,讓基因規劃法能透過自動演化的方式,產生最佳遊戲策略。 我們透過 20 次基因規劃法實驗共產生了 20 個不同的最佳染色體,並從中 挑選一個勝率最高的作為我們實驗的最終染色體。在 MCTS 參數設定方面,考 慮到 COG 2020 爐石比賽 [22] 每回合 30 秒的時間限制,所以本實驗的迭代次數 與模擬次數也受到一定的限制。. 表 4 - 1:基因規劃法之實驗參數設定 參數. 值. 族群人口數 世代數 交配率 突變率 初始族群產生方式 親代選擇方式 染色體樹最大深度. 100 100 0.9 0.1 隨機 輪盤法 6. 30.
(38) 表 4 - 2: MCTS 之實驗參數設定 參數. 值. 迭代次數 模擬次數 樹策略 UCT 之平衡常數 模擬策略. 70 - 150 2 UCT 1/√2 基因規劃法 & 隨機. 在牌組類型方面,我們使用 COG 2020 爐石比賽官方所提供的三種類型牌組, 分別為快攻海盜戰 (aggro pirate warrior)、中速翠玉薩 (mid-range jade shaman) 以 及控制里諾法 (control reno kazakus mage)。. 4.4 比較文獻 我們將與 Piotrowski 和 Mittenentzwei [29] 的爐石 AI 做比較,因為他們使用 爐石戰記的領域知識 [30] 來製作爐石 AI,也在 2018 年 的 CIG 爐石比賽 [22] 中 獲得第 10 名的成績。此外,這個 AI 的類型與本論文產生的 AI 較類似,都是讓 AI 根據某種策略 (rule-based) 出牌,差別在於本論文 AI 使用的策略是使用基因規 劃法自動演化而來的。 而 Heimbrodt 的爐石 AI [29] 使用動態前瞻 (dynamic lookahead) 策略獲得了 COG 2019 爐石比賽 [22] 第 1 名的成績,也將作為我們的比較對象。此策略是透 過廣度優先搜尋法 (BFS) 展開本回合可做的動作序列,以及使用啟發式方法 (heuristics) 調整評分函式的參數,AI 的類型與 MCTS 較為相似。. 31.
(39) 4.5 實驗結果與分析 4.5.1 適應值近似法之閥值比較 在本論文中,適應值近似法的閥值代表染色體之間相似度的最低可接受值, 若相似度太低,將降低使用適應值近似法的準確度,影響勝率。本實驗將使用 基因規劃法在不同閥值下產生之最佳染色體與 Heimbrodt 的爐石 AI 對戰 100 場, 雙方的牌組類型皆為快攻。 表 4 - 3:適應值近似法之閥值比較 閥值 時間(小時) 勝率(%). 0.1 12.62 19%. 0.3 12.84 21%. 0.5 14.85 34%. 0.7 15.35 35%. 0.9 18.54 37%. 根據表 4 - 3 可發現隨著閥值增加,使用近似法計算適應值的染色體較少, 實驗時間愈長,勝率也愈高。我們希望能找到一個閥值範圍是時間跟勝率都可 以被接受的,即在時間跟勝率之間取得平衡。最終我們選擇了 0.7 作為最佳閥值, 雖然勝率比閥值 0.9 低了 2%,但卻可省下 3 小時左右的實驗時間。. 4.5.2 基因規劃法產生之爐石戰記策略之效能評估 在本小節中,將透過實驗來說明本論文產生之爐石戰記 AI 的效能。我們使 用 0.7 閥值跑了 20 次實驗後,選出勝率最高的染色體作為本實驗的出牌策略, 並與 Piotrowski 和 Mittenentzwei (P&M) 的貪婪策略 AI 以及 Heimbrodt 的動態前 瞻策略 AI 對戰,使用三種類型的牌組分別對戰 100 場,如表 4 - 4 與表 4 - 5。其 中,上方數字代表基因規劃法 AI 先手勝率,下方代表後手勝率。. 32.
(40) 表 4 - 4:基因規劃法 AI vs. P&M AI P&M AI 快攻. 中速. 控制. 66%. 59%. 52%. 50%. 37%. 56%. 83%. 55%. 62%. 63%. 56%. 60%. 65%. 47%. 24%. 67%. 39%. 30%. 快攻. 基因規劃法 AI. 中速. 控制. 表 4 - 5:基因規劃法 AI vs. Heimbrodt AI Heimbrodt AI 快攻. 中速. 控制. 35%. 32%. 23%. 17%. 18%. 16%. 45%. 33%. 41%. 38%. 26%. 39%. 55%. 19%. 11%. 49%. 22%. 33%. 快攻. 基因規劃法 AI. 中速. 控制. 由 實 驗 結 果 可 發 現 , 本 論 文 產 生 之 策 略 在 先 手 對 上 Piotrowski 和 Mittenentzwei 的貪婪策略時,平均勝率約為 57% ,後手約為 44% ,顯示基因規 劃法 AI 只使用基本的爐石戰記領域知識,就可以自動演化出能打敗人類玩家使 用領域知識寫出來的 AI,十分具有潛力;而先手對上 Heimbrodt 的動態前瞻策略 時,平均勝率約為 32%,後手約為 28% ,在控制類型牌組對上快攻時有較好的 表現,能看出牌組的克制關係對勝率有一定的影響。. 33.
(41) 此外,基因規劃法 AI 在使用控制類型牌組時勝率不太穩定,而在使用快攻 與中速類型牌組時有較高、較穩定的勝率,可能的原因為此 AI 是我們使用中速 牌組演化而產生的,因此較適合使用於中速類型牌組。. 4.5.3 使用隨機模擬策略 MCTS 效能評估 為了提升基因規劃法 AI 的效能,將其套用在 MCTS 的模擬策略中。在本小 節 中 , 我 們 先 評 估 隨 機 模 擬 策 略 用 於 MCTS 之 效 能 , 與 Piotrowski 和 Mittenentzwei (P&M) 的貪婪策略 AI 以及 Heimbrodt 的動態前瞻策略 AI 對戰 100 場,如表 4 - 6 與表 4 - 7,以對比我們的 AI 所提升的效能。其中,上方數字代表 MCTS (random)先 手 勝 率 , 下 方 代 表 後 手 勝 率 , 黑 色 粗 體 數 字 表 示 MCTS (random) 勝多敗少。. 表 4 - 6:MCTS (random) vs. P&M AI P&M AI 快攻. 中速. 控制. 65%. 37%. 58%. 46%. 35%. 37%. 64%. 48%. 35%. 44%. 52%. 57%. 60%. 54%. 52%. 54%. 42%. 48%. 快攻. MCTS (random). 中速. 控制. 34.
(42) 表 4 - 7:MCTS (random) vs. Heimbrodt AI Heimbrodt AI 快攻. 中速. 控制. 26%. 17%. 23%. 15%. 13%. 10%. 27%. 23%. 29%. 19%. 12%. 13%. 25%. 21%. 26%. 20%. 19%. 16%. 快攻. MCTS (random). 中速. 控制. 由實驗結果可得知,使用隨機模擬的 MCTS 在先手對上 Piotrowski 和 Mittenentzwei 的貪婪策略 AI 時,平均勝率為 53% ,後手約為 46%;而先手對上 Heimbrodt 的動態前瞻策略 AI 時,平均勝率為 24% ,後手約為 15%。基因規劃 法 AI 的效能略優於使用隨機模擬策略的 MCTS ,可能的原因是隨機模擬的準確 度較差,因此我們將以基因規劃法作為 MCTS 的模擬策略。. 4.5.4 使用基因規劃法產生之模擬策略 MCTS 效能評估 本 實 驗 將 基 因 規 劃 法 產 生 之 策 略 套 用 在 MCTS 的 模 擬 策 略 中 , 並 與 Piotrowski 和 Mittenentzwei (P&M) 的貪婪策略 AI 以及 Heimbrodt 的動態前瞻策 略 AI 對戰 100 場,如表 4 - 8 與表 4 - 9。其中,上方數字代表 MCTS (GP) 先手 勝率,下方代表後手勝率,黑色粗體數字表示 MCTS (GP) 獲勝的對局。. 35.
(43) 表 4 - 8:MCTS (GP) vs. P&M AI P&M AI 快攻. 中速. 控制. 83%. 71%. 67%. 73%. 61%. 56%. 86%. 72%. 82%. 61%. 41%. 77%. 86%. 77%. 63%. 67%. 59%. 56%. 快攻. MCTS (GP). 中速. 控制. 表 4 - 9:MCTS (GP) vs. Heimbrodt AI Heimbrodt AI 快攻. 中速. 控制. 45%. 49%. 38%. 38%. 37%. 31%. 44%. 41%. 43%. 38%. 33%. 30%. 40%. 34%. 37%. 34%. 28%. 32%. 快攻. MCTS (GP). 中速. 控制. 透過實驗可發現,以基因規劃法產生的策略作為 MCTS 的模擬策略後,改 善了控制類型牌組勝率不穩定的現象;另一方面,MCTS 是依靠大量迭代與模擬 來評估每個動作的好壞,而非直接根據策略出牌,彌補了基因規劃法 AI 在控制 類型牌組表現較差的缺點。在先手對上 Piotrowski 和 Mittenentzwei 的貪婪策略 AI 時,平均勝率約為 76% ,後手約為 61%;而先手對上 Heimbrodt 的動態前瞻策 略 AI 時,平均勝率可達 41% ,後手約為 33%。 36.
(44) 透過 MCTS 的 模擬以及展開遊戲樹後,讓基因規劃法 AI 不會只考慮到這一 手動作後的盤面局勢,而是可以看得更遠,甚至考慮到對手可能的出牌方式, 讓基因規劃法的效能再往上提升。由於 COG 2020 爐石比賽的每回合 30 秒時間 限制,MCTS 的迭代次數與模擬次數也受到一定的限制,在迭代與模擬次數充足 的條件下 [23],我們預測 MCTS 的效能將會再往上提升。 觀察表 4 - 6 、表 4 - 7、表 4 - 8 與表 4 - 9,我們可以發現模擬策略對 MCTS 效能的影響程度非常大,使用本論文產生的模擬策略後,可讓使用隨機模擬策 略的 MCTS 勝率上升約 20%,原因是透過性能較好的 AI 作為模擬策略,可以產 生更精準的模擬結果。. 4.6 AI 效能總結 此小節將針對以上 AI 的效能做總結與比較,由圖 4 - 1、圖 4 - 2 可發現當 MCTS 對上 Piotrowski 和 Mittenentzwei (P&M) 的貪婪策略 AI 時,在使用了基因 規劃法產生的模擬策略後,比使用隨機模擬策略的勝率提高 10% - 20% ,先手平 均勝率約為 76%,後手約為 62%。對上 Heimbrodt 的動態前瞻策略 AI 時,先手 平均勝率約為 41%,後手約為 33%,勝率也提高約 10% - 20%。實驗顯示了模擬 策略對 MCTS 的重要性,必須要有一個好的模擬策略,才能使 MCTS 的效能有 較好的發揮。此外,以上實驗中,先手的勝率幾乎都比後手高,因為在爐石戰 記與一些卡牌遊戲中,先後手的影響是比較大的 [23],先手代表可以優先打出手 下以及優先攻擊對手,而後手則偏向於被動地回應對手的行動。. 37.
(45) 90% 80% 70%. 60% 勝 50% 率 40% 30% 20% 10% 0% 快攻 vs. 快攻. 中速 vs. 中速 MCTS (random). 控制 vs. 控制. MCTS (GP). 圖 4 - 1:先手 MCTS (random) & MCTS (GP) vs. P&M AI. 90% 80% 70% 60% 勝 50% 率 40% 30% 20% 10% 0% 快攻 vs. 快攻. 中速 vs. 中速 MCTS (random). 控制 vs. 控制. MCTS (GP). 圖 4 - 2:後手 MCTS (random) & MCTS (GP) vs. P&M AI. 90% 80%. 70% 60% 勝 50% 率 40% 30% 20% 10% 0% 快攻 vs. 快攻. 中速 vs. 中速 MCTS (random). 控制 vs. 控制. MCTS (GP). 圖 4 - 3:先手 MCTS (random) & MCTS (GP) vs. Heimbrodt AI. 38.
(46) 90% 80% 70% 60% 勝 50% 率 40% 30% 20% 10% 0% aggro vs. aggro. midrange vs. midrange MCTS (random). control VS.. control. MCTS (GP). 圖 4 - 4:後手 MCTS (random) & MCTS (GP) vs. Heimbrodt AI 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 快攻 vs. 快攻. 快攻 vs. 中速. 快攻 vs. 控制. 中速 vs. 快攻. 中速 vs. 中速. 先手 MCTS (GP) 先手 MCTS (random) 先手 GP. 中速 vs. 控制. 控制 vs. 快攻. 控制 vs. 中速. 控制 vs. 控制. 後手 MCTS (GP) 後手 MCTS (random) 後手 GP. 圖 4 - 5:AI 效能比較圖 vs. P&M AI 60% 50% 40% 30%. 20% 10% 0% 快攻 vs. 快攻. 快攻 vs. 中速. 快攻 vs. 控制. 中速 vs. 快攻. 中速 vs. 中速. 先手 MCTS (GP) 先手 MCTS (random) 先手 GP. 中速 vs. 控制. 控制 vs. 快攻. 控制 vs. 中速. 後手 MCTS (GP) 後手 MCTS (random) 後手 GP. 圖 4 - 6:AI 效能比較圖 vs. Heimbrodt AI 39. 控制 vs. 控制.
(47) 圖 4 - 5 與圖 4 - 6 為以上實驗的 AI 分別對上,Piotrowski 和 Mittenentzwei (P&M) 的貪婪策略 AI 以及 Heimbrodt 的動態前瞻策略 AI 之效能比較圖。在 AI 的效能方面,我們可以發現 MCTS (GP) 具有最高的勝率,其次是 GP ,最後是 MCTS (random) ,顯示本論文使用基因規劃法產生的策略有著不錯的效能,甚至 優於使用隨機模擬策略的 MCTS。 在 GP 與 MCTS 結合之後,讓 AI 的效能又在更上一層樓,對上 COG 2019 第 一名的 Heimbrodt 動態前瞻策略 AI 時,勝率可達 40 % 左右。此外,可以從圖 4 - 5 與圖 4 - 6 中發現一些明顯的牌組克制關係,例如使用快攻牌組對上控制牌組 時,勝率明顯地下降;當使用中速牌組對上控制牌組時,勝率明顯上升,也透 過此實驗說明了圖 1 - 3 的牌組類型克制關係。. 4.7 最佳染色體結構分析 在經過 20 次基因規劃法實驗後,產生了 20 條最佳染色體,我們從中選出 一條勝率最高的染色體作為以上實驗所使用的最終染色體,並在此小節中對其 結構進行分析,透過組成染色體的元素我們可以得知此出牌策略在進行每一步 動作前所考慮的盤面資訊,以及需要最小化的元素組合。我們將從人類玩家的 角度來分析此染色體的出牌方式,以及選擇這些元素的原因。 當一般玩家在玩爐石戰記時,會希望盡可能地將我方手下的數量、攻擊力、 血量最大化,以及將敵方手下的數量、攻擊力、血量最小化,確保我方場上有 足夠多手下可以進行攻擊,而盡可能消滅敵方場上的手下。或是在一回合內打 出多張卡牌、做出多個動作來取得優勢。. 40.
(48) 圖 4 - 7:假想盤面圖. 圖 4 - 8:敵方手下攻擊我方手下範例圖 41.
(49) 圖 4 - 9:「賣血」範例圖. 另一個比較進階的技巧是在不會輸掉遊戲的前提下,消耗我方英雄多餘的 血量來保護我方血量較少的手下,這個技巧被爐石戰記的玩家稱為「賣血」, 也就是花費少量成本來獲取最大效益。在圖 4 - 7 中,考慮到對手下回合若使用 他的手下來擊殺我方手下後還能存活 (如圖 4 - 8) ,這將使我方陷入劣勢之中。 為了阻止此事件發生,在我方英雄有攻擊力的情況下 (如裝備武器) ,就可使用 「賣血」這個技巧,如圖 4 - 9,使用我方英雄先攻擊對手的手下。雖然攻擊後 我方英雄會損失 4 點生命值,但是可以擊殺對手的手下,最大的差別是我方場上 的那隻手下還會存活,達到損失少量英雄生命值來保護手下的效果。. 42.
(50) 1. 2. 3. 5. 4. 6. 圖 4 - 10:基因規劃法產生之最佳染色體. 本論文產生的最佳染色體如圖 4 - 10 ,若要將整個染色體的值最小化,需最 大化 我方手下總攻擊力 以及最小化 2 號節點子樹 ; 若要最小化 2 號節點子 樹需最小化 敵方手下總攻擊力 以及最大化 3 號節點子樹 ; 因為 4 號節點子 樹必不為負數,所以若要最大化 3 號節點子樹就必須最大化 5 號節點子樹且在 不會輸掉遊戲的前提下最小化 我方英雄血量 以及最大化 我方手下數量 ; 若最 大化 5 號節點子樹需要最小化 我方手牌數量 以及最大化 6 號節點子樹 (最小 化 敵方手下總血量 以及最大化 我方剩餘法力水晶 數量)。 43.
(51) 在此染色體公式中,需最大化 我方手下總攻擊力、我方手下數量、我方剩. 餘法力水晶;最小化 敵方手下總攻擊力、我方英雄血量、我方手牌數量、敵方 手下總血量 。透過分析染色體結構,可以發現本論文所產生的策略有學習到一 般玩家最直觀的策略,最大化我方的資源以及最小化敵方的資源。其中,在不 輸掉遊戲的前提下最小化 我方英雄血量 就是學習到「賣血」這個比較進階的遊 戲技巧;而最小化 我方手牌數量 就是盡可能地出牌。 但根據實驗結果,我們發現此策略應用在快攻、中速類型的牌組時有較好 的表現,而在控制類型的牌組時表現不是非常好,會有勝率不穩定的情況發生, 我們推測是因為在演化的過程中使用中速類型牌組,所以產生出較適合中速牌 組的出牌方式。而控制類型牌組的遊戲方式比較不同,牌組內手下數量也較少, 若能根據牌組類型分別產生出不同的策略或許能解決這個問題。. 44.
(52) 第五章 結論與未來展望 在本論文中,我們試圖透過基因規劃法自動化地產生一個適用於爐石戰記 三種牌組類型的出牌策略,對於評估時間過長的問題,我們使用昂貴優化中的 適應值近似法減少了 10% - 20% 的實驗時間。透過實驗結果發現,以基因規劃 法產生的策略在快攻與中速類型的牌組表現較好,先手對上 COG 2019 爐石比賽 第 1 名的動態前瞻策略時,平均勝率為 32%,後手約為 28% 。且在控制類型的 牌組表現較不穩定,可能的原因為是我們使用中速牌組來演化染色體,因此, 此策略較適合使用於中速類型牌組。在分析染色體結構後,我們推測另一個原 因是控制類型牌組的遊戲方式比較不同。 此外,我們將前述策略作為 MCTS 的模擬策略,在對上 COG 2019 爐石比賽 第 1 名的動態前瞻策略時先手勝率約為 41%,後手約為 33% 。相較於使用隨機 模擬策略的 MCTS 爐石 AI 上升約 20% 的勝率,且稍微改善了此策略使用控制 套牌勝率不穩定的缺點。由於 COG 2020 爐石比賽的每回合 30 秒時間限制, MCTS 的迭代次數與模擬次數也受到一定的限制,在迭代與模擬次數充足的條件 下,我們預測 MCTS 的效能將會再往上提升。 我們希望未來能針對不同類型牌組分別產生最佳策略,可能會有較好的表 現。此外,我們會不斷地改進基因規劃法效能,試著產生一個真正適用於爐石 戰記各類型牌組的通用出牌策略。也希望能將此研究方法應用在其他遊戲,只 使用對遊戲基本的領域知識,就可以透過演化的精髓找出遊戲獲勝的關鍵。. 45.
(53) 參考文獻 [1] 遊戲王 - 怪獸之決鬥 (Yu-Gi-Oh! Duel Monsters) https://en.wikipedia.org/wiki/ Yu-Gi-Oh!_Duel_Monsters [2] 魔法風雲會 (Magic: The Gathering) https://magic.wizards.com/zh-hant [3] 爐石戰記 (Hearthstone) https://playhearthstone.com/zh-tw/ [4] J. R. Koza, “Genetic programming: a paradigm for genetically breeding populations of computer programs to solve problems,” Report No. STANCS-901314, Stanford University, Stanford, CA, 1990. [5] J. R. Koza, “Genetic programming: on the programming of computers by means of natural selection,” MIT Press, Cambridge, MA, 1992. [6] M. Bhattacharya, “Evolutionary approaches to expensive optimisation,” International Journal of Advanced Research in Artificial Intelligence, vol. 2, no. 3, pp. 53–59, 2013. [7] A. Esparcia-Alcazar and J. Moravec, “Fitness approximation for bot evolution in genetic programming,” Soft Computing, vol. 17, no. 8, pp. 1479–1487, 2013. [8] Unreal Tournament 2004 (UT2004) https://en.wikipedia.org/wiki/Unreal_Tournament_2004 [9] R. Coulom, “Efficient selectivity and backup operators in Monte-Carlo tree search,” International Conference on Computers and Games, pp. 29–31, 2006. [10] C. B. Browne, E. Powley, D. Whitehouse, S. M. Lucas, P. I. Cowling, P. Rohlfshagen, S. Tavener, D. Perez, S. Samothrakis, and S. Colton, “A survey of Monte-Carlo tree search methods,” IEEE Transactions on Computational Intelligence and AI in Games, vol. 4, no. 1, pp. 1–43, 2012. [11] P. Auer, N. Cesa-Bianchi, and P.Fischer, “Finite-time analysis of the multiarmed bandit problem,” Machine Learning, vol. 47, no. 2, pp. 235–256, 2002. [12] L. Kocsis and C. Szepesvári, “Bandit based Monte-Carlo planning,” European Conference on Machine Learning, pp. 282–293, 2006.. 46.
(54) [13] A. Dockhorn, M. Frick, U. Akkaya, and R. Kruse, “Predicting opponent moves for improving hearthstone AI,” International Conference on Information Processing and Management of Uncertainty in KnowledgeBased Systems, pp. 621–632, 2018. [14] A. Saffidine, T. Cazenave, and J. Méhat, “UCD: Upper confidence bound for rooted directed acyclic graphs,” Knowledge-Based Systems, vol. 34, pp. 26–33, 2012. [15] J. S. B. Choe and J. Kim, “Enhancing monte carlo tree search for playing hearthstone,” IEEE Conference on Games, pp. 1–7, 2019. [16] M. Kearns, Y. Mansour, and A. Y. Ng, “A sparse sampling algorithm for nearoptimal planning in large Markov decision processes,” International Joint Conference on Artificial Intelligence, pp. 1224–1231, 1999. [17] S. Zhang and M. Buro, “Improving hearthstone AI by learning high-level rollout policies and bucketing chance node events,” IEEE Conference on Computational Intelligence and Games, pp. 309–316, 2017. [18] M. Swiechowski, T. Tajmajer, and A. Janusz, “Improving hearthstone AI by combining mcts and supervised learning algorithms,” IEEE Conference on Computational Intelligence and Games, pp. 1–8, 2018. [19] A. Santos, P. A. Santos, and F. S. Melo, “Monte-Carlo tree search experiments in hearthstone,” IEEE Conference on Computational Intelligence and Games, pp. 272–279, 2017. [20] P. García-Sánchez, A. Tonda, A. J. Fernández-Leiva, and C. Cotta, “Optimizing Hearthstone agents using an evolutionary algorithm,” Knowledge-Based Systems, 2019. [21] M. A. Potter and K. A. De Jong, “Cooperative coevolution: An architecture for evolving coadapted subcomponents,” Evolutionary Computation, vol. 8, no. 1, pp. 1–29, 2000. [22] CIG Hearthstone 2018, COG Hearthstone 2019, and 2020. https://dockhorn.antares.uberspace.de/wordpress/ [23] C. D. Ward and P. I. Cowling, “Monte-Carlo search applied to card selection in magic: the gathering,” IEEE Symposium on Computational Intelligence in Games, pp. 9–16, 2009. [24] P. I. Cowling, C. D. Ward, and E. J. Powley, “Ensemble determinization in monte carlo tree search for the imperfect information card game magic: The gathering,” 47.
(55) IEEE Transactions on Computational Intelligence and AI in Games, vol. 4, no. 4, pp. 241–257, 2012. [25] B. E. Childs, J. H. Brodeur, and L. Kocsis, “Transpositions and move groups in Monte-Carlo tree search,” IEEE Symposium on Computational Intelligence and Games, Perth, Australia, pp. 389–395, 2008. [26] P. García-Sánchez, A. Tonda, G. Squillero, A. Mora, and J. Merelo, “Evolutionary deckbuilding in hearthstone,” IEEE Conference on Computational Intelligence and Games, pp. 1–8, 2016. [27] P. García-Sánchez, A. Tonda, A. M. Mora, G. Squillero, and J. J. Merelo, “Automated playtesting in collectible card games using evolutionary algorithms: A case study in hearthstone,” Knowledge-Based Systems, vol. 153, pp. 133–146, 2018. [28] SabberStone, https://github.com/HearthSim/SabberStone [29] L. Piotrowski, S. Mittenentzwei, and T. Heimbrodt, https://dockhorn.antares.uberspace.de/wordpress/bot-downloads/ [30] E. Håkonsen, 2018, Available: https://www.reddit.com/r/hearthstone/comments/7l1ob0/i_wrote_a_masters_thesi s_on_effective_hearthstone/ [31] A. M. Alhejali and S. M. Lucas, “Using genetic programming to evolve heuristics for a Monte-Carlo tree search Ms Pac-Man agent,” IEEE Conference on Computational Intelligence and Games, pp. 65–72, 2013. [32] D.E. Knuth and R.W. Moore, “An analysis of alpha-beta pruning.” Artificial Intelligence, vol. 6, no. 4, pp. 293–326, 1975. [33] A. Benbassat and M. Sipper, “EvoMCTS: Enhancing MCTSbased Players Through Genetic Programming.” IEEE Conference on Computational Intelligence and Games, pp. 57–64, 2013.. 48.
(56)
相關文件
在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研
多年以來,我們發現同學針對交換生或訪問學生的規劃有幾種類 型:(1) 選擇未來行將深造的國家與學校; (2) 選擇一個可以累積壯遊行 旅的大陸; (3)
除調整段落 內 的行距之 外 , 也可以 調整段落前 與段落後的 行距..
範圍:下學期第二次段考 科目:物理..
新竹縣新埔鎮是國人旅遊喜愛到訪的地點之一,每次到了秋天這個季節,這個地
在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研
亞美尼亞和亞塞拜然位於土耳其與伊朗北部的高加索山區,兩個國家在 1990 年代 就曾為了納哥諾卡拉巴克地區(Nagorny Karabakh)的主權問題開戰,
日本侵略中國的背景、抗日戰爭的經過與結果 一、建議教節:4 節(以一節 40