Download presentation
Presentation is loading. Please wait.
1
蒙地卡羅演算法在遊戲的應用 國立東華大學 資訊工程系 副教授 顏士淨
2
Monte Carlo Algorithm 判斷 n 是否為質數 For ( i = 1; i<=t; i++){ return 1;
j = random(m) + 2 If (!(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
棋力分級 弱 強 Kyu Dan 9 12 業餘 初學者 職業棋士 段
8
百萬美金的懸賞 應昌期先生曾提供一百萬美金給能夠寫出擊敗職業棋士的圍棋程式的人
9
Rank of Computer Go
10
電腦棋類的設計方式 西洋棋,象棋 此方式不適用於圍棋 game tree, α-β cut off 成功原因 合法步太多(>200)
合法步不多(30~40) 有一個簡單而合理的審局函數 此方式不適用於圍棋 合法步太多(>200) 目前沒有好的審局函數
11
圍棋與西洋棋之比較 圍棋 西洋棋 勝負目標 地多為勝 吃掉對方國王 棋子死活 有程度上差異 非生即死 分支度 約200 約40
12
電腦圍棋設計方法 電腦圍棋的傳統設計法 2007年UCT出現,奪得奧林匹亞19路圍棋的金牌 UCT:運用蒙地卡羅法為基礎的樹狀搜尋演算法
模擬人類思維;經驗法則 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公式找一條由根節點到葉節點的最佳路徑
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的開局與佈局資料庫強化UCT 使用JIMMY著手資訊對UCT做裁剪
以從棋譜中擷取的棋形資料庫作為棋形比對之基礎 結合經驗法則與UCT的想法確實可行 2008/10於北京擊敗去年世界冠軍
38
Games 象棋(Chinese Chess) 六子棋(Connect6) 排七(Fantan) 暗棋(Dark Chess)
十三張(Card13)
39
線上遊戲排行榜 麻將(MahJong) 牌七(Fantan) 大老二(Big Two) 十三張(Card13) 梭哈(Showhand)
暗棋(Dark Chess) 象棋,圍棋(Chinese chess, Go)
40
結論:是否使用UCT? 行棋方式? 落子 vs 移動 將軍棋步? 需檢查迫著 複雜度? 下棋資訊是否透明? 大部分商業遊戲都適用
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.