Upload
chantale-holland
View
72
Download
3
Embed Size (px)
DESCRIPTION
蒙地卡羅演算法在遊戲的應用. 國立東華大學 資訊工程系 副教授 顏士淨. Monte Carlo Algorithm. 判斷 n 是否為質數 For ( i = 1; i
Citation preview
1
蒙地卡羅演算法在遊戲的應用
國立東華大學資訊工程系 副教授
顏士淨
2
Monte Carlo Algorithm
判斷 n 是否為質數 For ( i = 1; i<=t; i++){
m=n0.5
j = random(m) + 2If (!(n%j)) return (0);}
return 1;
3
Table Games
Perfect information, no chance 圍棋,象棋,西洋棋
Perfect information, with chance 西洋雙陸棋,大富翁
imperfect information, with chance 麻將,橋牌,十三張,接龍
4
棋類複雜度比較Games 複雜度 (logX) 與最強程式比較跳棋 32 Solved
黑白棋 58 Logistello>H九路圍棋 85 <H
西洋棋 123 Deep Blue>=H
象棋 160 ELP<H
圍棋 400 <<H
5
圍棋
6
棋子與棋盤
7
棋力分級弱 強
5 4 3 2 1 Kyu
1 2 3 4 5 6
1 9 Dan
912
業餘初學者 職業棋士
段
8
百萬美金的懸賞 應昌期先生曾提供一百萬美金給能夠寫出擊
敗職業棋士的圍棋程式的人
9
Rank of Computer Go
0
2
4
6
8
10
12
14
16
18
20
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 00 01 02 03 04 05 06 07 08 09
10
電腦棋類的設計方式 西洋棋,象棋
game tree, α-β cut off 成功原因
合法步不多 (30~40) 有一個簡單而合理的審局
函數 此方式不適用於圍棋
合法步太多 (>200) 目前沒有好的審局函數
11
圍棋與西洋棋之比較
圍棋 西洋棋勝負目標 地多為勝 吃掉對方國王棋子死活 有程度上差異 非生即死分支度 約 200 約 40
12
電腦圍棋設計方法 電腦圍棋的傳統設計法
模擬人類思維;經驗法則 JIMMY 程式 (since 1994)
2007 年 UCT 出現,奪得奧林匹亞 19 路圍棋的金牌
UCT: 運用蒙地卡羅法為基礎的樹狀搜尋演算法
13
UCT 樹狀搜尋演算法 UCT :一個樹狀搜尋演算法 特性:往較有可能為好點的分支,展開較深,最後會長成一棵不平衡樹
如何決定一個點是否為好點 ? 蒙地卡羅法
統計許多模擬棋局之結果,進行局面之判斷
14
Scheme of a Monte-Carlo Tree Search(2007, Herik)
教育部「大專校院研究人才延攬方案」
15
UCT- 不平衡的樹
17
UCT 搜尋方法 進行多次搜尋,每次均由上而下拓展 UCT
Tree 每次如何決定往哪個分支深入拓展 ?UCB UCT : UCB for Tree search UCB : Upper Confidence Bound UCB 原本用來解決吃角子老虎問題
18
吃角子老虎問題 開發:依照目前經驗決定下一次要選擇的機器
探險:嘗試其他機器
19
UCT 運用在圍棋
21
UCT 搜尋方法 最佳路徑:每次搜尋,均藉由 UCB 公式找一條由根節點到葉節點的最佳路徑
更新 UCT 樹:找到最佳路徑後,對葉節點代表之盤面執行模擬棋局,所得的勝負結果更新路徑上所有節點
22
UCT 例子
23
UCT 與傳統圍棋程式 JIMMY 結合
24
搜尋樹的裁剪方法 多算勝,少算不勝 分支度的多寡直接影響搜尋樹的深度 如何減少無用子點為一改良重點 三種裁剪法: JIMMY 裁剪、一線裁剪、棋塊裁剪
25
JIMMY 裁剪 JIMMY 對目前盤面作判斷,給定著手分數 UCT Tree 創子點時,排除沒分數之點
26
JIMMY 裁剪效果 未裁剪:第一層子點數量為 40~80 個 裁剪後第一層子點之數量控制在 1~15 個左右
大幅排除無用之點,並加深搜尋深度
27
JIMMY 裁剪實驗結果 結果分析 JIMMY 裁剪可行
28
模擬棋局方法 工作:給定盤面,將此局下到終局,計算勝負
意義:作為 UCT 樹的節點的收益值之來源
影響 UCT 判斷、選擇最佳路徑之正確性 重點在於選擇下一步的函式 目標: 1. 快速 2. 準確
29
最簡單的方法:隨機落子 優點:簡單、速度快 缺點:準確性較低,需統計較多棋局 若棋步越有意義,則越準確,但花較多時間 目標:讓電腦所選的著手更具有圍棋上的意義
30
經驗法則與棋形比對 選擇下一步:根據此盤面下合法著手 的著手機率決定 著手機率:根據經驗法則判斷與棋形比對所的的分數決定,分數越高,機率越高
31
著手機率分布範例
32
經驗法則 利用已有的知識,快速判斷著點價值 目前使用的經驗法則:「長」與「提」
33
長與提子的例子
34
棋形比對 棋形:棋子在棋盤上的分布狀況 可幫助人類棋手在對奕時快速排除無用著手 棋形表達:要下之點置中,周圍是棋子分佈狀態
35
棋形比對做法 棋形資料庫 來源:約 1600 個職業與業餘高段棋士之九路棋譜
擷取每一手所產生的棋形,統計出現次數 依照出現次數排序
36
實驗結果 棋形比對 取棋形資料庫中排名較前的棋形以比對 比對前一手周圍的八個點 棋力增益
37
電腦圍棋方法結論 UCT嵌在 JIMMY 決定著手之處 利用 JIMMY 的開局與佈局資料庫強化 U
CT 使用 JIMMY 著手資訊對 UCT做裁剪 以從棋譜中擷取的棋形資料庫作為棋形比對之基礎
結合經驗法則與 UCT 的想法確實可行 2008/10 於北京擊敗去年世界冠軍
38
Games
象棋 (Chinese Chess) 六子棋 (Connect6) 排七 (Fantan) 暗棋 (Dark Chess) 十三張 (Card13)
39
線上遊戲排行榜1. 麻將 (MahJong)2. 牌七 (Fantan)3. 大老二 (Big Two)4. 十三張 (Card13)5. 梭哈 (Showhand)6. 暗棋 (Dark Chess)7. 象棋,圍棋 (Chinese chess, Go)
40
結論:是否使用 UCT? 行棋方式 ?
落子 vs 移動 將軍棋步?
需檢查迫著 複雜度? 下棋資訊是否透明? 大部分商業遊戲都適用