电脑如何下象棋-国立高雄大学-资讯工程学系讲课教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
28
經驗法則與棋形比對
選擇下一步:根據此盤面下合法著手 的著手機率決定
著手機率:根據經驗法則判斷與棋形比 對所的的分數決定,分數越高,機率越 高
29
著手機率分布範例
30
經驗法則
利用已有的知識,快速判斷著點價值 目前使用的經驗法則:「長」與「提」
31
長與提子的例子
32
棋形比對
棋形:棋子在棋盤上的分布狀況 可幫助人類棋手在對奕時快速排除無用著
約200
約40
10
電腦圍棋設計方法
電腦圍棋的傳統設計法
模擬人類思維;經驗法則 JIMMY程式(since 1994)
2007年UCT出現,奪得奧林匹亞19路圍 棋的金牌
UCT:運用蒙地卡羅法為基礎的樹狀搜尋 演算法
11
UCT樹狀搜尋演算法
UCT:一個樹狀搜尋演算法 特性:往較有可能為好點的分支,展開
落子 vs 移動
將軍棋步?
需檢查迫著
複雜度? 下棋資訊是否透明? 大部分商業遊戲都適用
39
此课件下载可自行编辑修改,仅供参考! 感谢您的支持,我们努力做得更好!谢谢
手 棋形表達:要下之點置中,周圍是棋子分
佈狀態
33
棋形比對做法
棋形資料庫 來源:約1600個職業與業餘高段棋士之九
路棋譜 擷取每一手所產生的棋形,統計出現次數 依照出現次數排序
34
實驗結果
棋形比對 取棋形資料庫中排名較前的棋形以比對 比對前一手周圍的八個點 棋力增益
35
電腦圍棋方法結論
37
線上遊戲排行榜
1. 麻將(MahJong) 2. 牌七(Fantan) 3. 大老二(Big Two) 4. 十三張(Card13) 5. 梭哈(Showhand) 6. 暗棋(Dark Chess) 7. 象棋,圍棋(Chinese chess, Go)
38
結論:是否使用UCT?
行棋方式?
电脑如何下象棋-国立高雄大学资讯工程学系
Table Games
Perfect information, no chance
圍棋,象棋,西洋棋
Perfect information, with chance
西洋雙陸棋,大富翁
imperfect information, with chance
1 2 3 4 5 6段
12
9
初學者
5 4 3 2 1 Kyu 1 9 Dan
業餘
職業棋士
6
百萬美金的懸賞
應昌期先生曾提供一百萬美金給能夠寫出擊 敗職業棋士的圍棋程式的人
7
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
麻將,橋牌,十三張,接龍
2
棋類複雜度比較
Games 跳棋 黑白棋 九路圍棋 西洋棋 象棋 圍棋
複雜度(logX) 32 58 85 123 160 400
與最強程式比較 Solved Logistello>H <H Deep Blue>=H ELP<H <<H
3
圍棋
4
棋子與棋盤
5
棋力分級
弱強
UCT搜尋方法
最佳路徑:每次搜尋,均藉由UCB公式找 一條由根節點到葉節點的最佳路徑
更新UCT樹:找到最佳路徑後,對葉節點 代表之盤面執行模擬棋局,所得的勝負 結果更新路徑上所有節點
20
UCT例子
21
UCT與傳統圍棋程式JIMMY結合
22
搜尋樹的裁剪方法
多算勝,少算不勝 分支度的多寡直接影響搜尋樹的深度 如何減少無用子點為一改良重點 三種裁剪法:JIMMY裁剪、一線裁剪、棋
8
電腦棋類的設計方式
西洋棋,象棋
game tree, α-β cut off 成功原因
合法步不多(30~40) 有一個簡單而合理的審局
函數
此方式不適用於圍棋
合法步太多(>200) 目前沒有好的審局函數
9
圍棋與西洋棋之比較
勝負目標 棋子死活 分支度
圍棋
西Baidu Nhomakorabea棋
地多為勝
吃掉對方國王
有程度上差異 非生即死
較深,最後會長成一棵不平衡樹 如何決定一個點是否為好點?
蒙地卡羅法
統計許多模擬棋局之結果,進行局面之 判斷
12
Scheme of a Monte-Carlo Tree Search(2007, Herik)
教育部「大專校院研究人才延攬方案」
13
UCT-不平衡的樹
14
UCT搜尋方法
進行多次搜尋,每次均由上而下拓展UCT Tree
塊裁剪
23
JIMMY裁剪
JIMMY對目前盤面作判斷,給定著手分數 UCT Tree創子點時,排除沒分數之點
24
JIMMY裁剪效果
未裁剪:第一層子點數量為40~80個 裁剪後第一層子點之數量控制在1~15個左右 大幅排除無用之點,並加深搜尋深度
25
JIMMY裁剪實驗結果
結果分析 JIMMY裁剪可行
UCT嵌在JIMMY決定著手之處 利用JIMMY的開局與佈局資料庫強化
UCT 使用JIMMY著手資訊對UCT做裁剪 以從棋譜中擷取的棋形資料庫作為棋形
比對之基礎 結合經驗法則與UCT的想法確實可行 2008/10於北京擊敗去年世界冠軍
36
Games
象棋(Chinese Chess) 六子棋(Connect6) 排七(Fantan) 暗棋(Dark Chess) 十三張(Card13)
每次如何決定往哪個分支深入拓展?UCB UCT : UCB for Tree search UCB : Upper Confidence Bound UCB原本用來解決吃角子老虎問題
16
吃角子老虎問題
開發:依照目前經驗決定下一次要選擇 的機器
探險:嘗試其他機器
17
UCT運用在圍棋
18
26
模擬棋局方法
工作:給定盤面,將此局下到終局,計 算勝負
意義:作為UCT樹的節點的收益值之來 源
影響UCT判斷、選擇最佳路徑之正確性 重點在於選擇下一步的函式 目標:1.快速 2.準確
27
最簡單的方法:隨機落子
優點:簡單、速度快 缺點:準確性較低,需統計較多棋局 若棋步越有意義,則越準確,但花較多時間 目標:讓電腦所選的著手更具有圍棋上的意義
相关文档
最新文档