




已阅读5页,还剩85页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
電腦圍棋程式設計的演進與發展,電腦對局(ComputerGame),是人工智慧(ArtificialIntelligent)的領域之一讓電腦程式具有思考分析能力,能夠與人進行黑白棋、五子棋、西洋棋、象棋、圍棋等等的對奕。例:由IBM超級電腦上所研發的西洋棋程式深藍(DeepBlue),在1997年擊敗了當代的世界冠軍卡斯帕洛夫(Kasparov)。,常見棋類遊戲介紹,黑白棋(Othello)五子棋(Go-moku)西洋棋(Chess)象棋(ChineseChess)六子棋(Connect6)圍棋(Go),一般常見的誤解,誤解1:電腦對局程式可以將所有的棋譜輸入電腦,因而戰勝人腦。誤解2:電腦計算速度太快,人一定算不贏電腦,所以所有的棋類遊戲都一定是電腦必勝。誤解3:一個下棋很遜的程式設計者,無法設計出一個比他厲害的下棋程式。,象棋的複雜度概算,通常一盤棋大約經過40回合(共80步)可得到最後結果。每回合可走的所有棋步平均約有45種。複雜度粗略估計:45*45*45*45=4580最後再考慮去除一些對稱重複情形後,將之微調大約是10150。,棋類遊戲難易度分析,電腦vs.人腦,電腦優勢:運算速度極快能記憶大量資料不會有情緒影響人腦優勢:具有敏銳的直覺能將經驗累積成知識,電腦對局理論基礎,遊戲樹(GameTree)最大最小值搜尋(MinimaxSearch)-pruningIterativedeepeningsearch,遊戲樹(GameTree),電腦程式先將所有可能的走法整理出來,然後嘗試走走看;接著再將對方所有可能走法也整理出來,接著也去走走看。如此循環反覆,一直進行到某種條件符合才停止,然後經過審局函數評估,再從其中選出最佳著手。用到遞迴呼叫觀念。執行時間通常相當久。除錯工作不容易。,遊戲樹概念圖,我方著手,敵方著手,我方著手,Win,Win,Lose,50,80,-5,20,40,0,90,審局函數(Evaluation),在遊戲樹中用來評估局面的優劣程度(假定正值表示我方佔優,負值表示敵方佔優,其絕對值大小代表優勢程度高低)。審局函數在計算上愈快愈好。審局函數愈精準,則對於著手的建議愈正確。,象棋的審局函數(1),通常會將不同兵種給予一個固定分數審局時只要將雙方棋盤上的子力分數加總對比,就可以得到一個近似正確的估計值。,100002002001000420450100,象棋的審局函數(2),除了子力之外,尚可將棋子位置也納入評估優劣的考量。絕對位置:例如馬臥槽是絕佳位置,馬塞在將正前方是極惡位置。相對位置:馬被擋馬腳、象被塞象眼都是不好位置;而包佔據空頭是絕佳位置。但增加此項考量,亦有計算較費時的缺點,是否採用仍是trade-off的問題。,象棋局勢分析範例,最大最小值搜尋,概念:由於輪到我方著手時,會盡量使我方局勢有利(評估值愈大愈好);輪到敵方著手時,會盡量使我方局勢不利(評估值愈小愈好)。作法:在搜尋過程上,由底層終端節點經由審局函數取得評估值後,視該層由何方著手來選出最大值或最小值予以傳回。,最大最小值搜尋概念圖,我方Max,敵方Min,我方Max,Win,Win,Lose,50,80,-5,20,40,0,90,-pruning,概念:是用來改良最大最小值搜尋的效能。亦即當某種條件成立時,一些搜尋的分支路徑完全可以省略。技巧:如果能將著手選擇優劣事先作排序,則-pruning的效果會更好。,-pruning概念圖,我方Max,敵方Min,我方Max,Win,Win,Lose,50,80,-5,20,40,0,90,圍棋基本規則氣與提子,圍棋基本規則打劫(1),圍棋基本規則打劫(2),圍棋基本規則打劫(3),圍棋基本規則打劫(4),圍棋的死活,圍棋基本規則勝負計算,黑棋29目,白棋25目,圍棋棋力鑑定標準,低高987654321初234567(業餘)級段初239段(職業),象棋與圍棋的相異處,可選擇棋步總數不同兵種與性質不同全局性與局部性設計困難處不同審局函數著手選擇,圍棋的困難,電腦圍棋的歷史,起始:Zobrist,1969年。早期時代:19701985年。過渡時代:約自1986年開始,局部重點加強,例如棋形資料庫與棋串吃逃搜尋。成熟時代:約始於1989年,具備了多目標式的搜尋系統,而且也有了簡單的局勢分析,甚至是靜態的死活判斷。,電腦圍棋程式比賽,應氏盃(19852000)ComputerOlympiadTournament(1990)FOST盃(19952000),應氏盃早中期程式水平,1990年後程式水平,具有棋塊概念地域認知能力多目標搜尋系統靜態死活分析能力眼位分析能力死活知識庫建立,目前最強圍棋程式,HandTalk:廣東中山大學陳志行教授研發MoGo:為法國程式工程師SylvainGelly與YizaoWang所研發CrazyStone:為法國程式工程師RemiCoulon所研發GoIntellect:北卡大學陳克訓教授研發Aya:日本學者研發GnuGo:是個開放程式讓大家研發的程式,電腦圍棋的物件階層,棋子(stone)棋串(block)棋鏈(chain)棋塊(group),勢力影響值,作法:利用每個棋子對於周圍具有或多或少影響力的概念,去計算盤面的勢力值。目的:辨識雙方勢力強弱用於設定棋塊範圍預估雙方可能地域協助判斷棋塊安危,46865121612561224322412648163232321684612243224126512161256864,勢力影響值應用實例(1),-5-6314176-3-60-7-18283211-8-6-56124450408-22-22-81236486241-10-30-34-211836615116-34-65-53-2417354232-8-59-72-56-2716343424-18-54-68-46-2012243016-17-38-44-24-11512167-7-22-20-110,勢力影響值應用實例(2),06860000051616850-40018362812100-8-60344528171-3-16-12-53749351-13-29-41-30-12404720-4-21-45-50-42-2148544814-14-30-60-44-204261442517-19-30-34-213143453117-5-29-30-12,棋串設定方法,使用圖形連通的DFS演算法對每個棋串記錄其子數、棋子位置、氣數、氣點位置、相鄰敵方棋串等資訊,棋鏈的種類,尖(黑)扳(白)跳(黑)飛(白),棋塊連通的條件,同色棋子同色棋鏈空點強勢點敵方死子,棋塊的範圍與地域辨識,棋塊的地域認定,邊界點:棋塊最外層的棋子或空點,潛力點:由邊界空點向內推一層,代表可能成為地域的點,地域點:棋塊內部空點或敵方死子,可視為確定地,棋塊安危認定原則,初步認定:棋塊的地域點是否足夠棋塊是否被包圍棋塊的潛力點個數多寡詳細認定:靜態死活分析周圍有無敵方的危險或死亡棋塊,專家棋士下棋的思路,敏銳的棋塊安危感覺直接進攻、聲東擊西、纏繞攻擊、製造雙擊設法安定、拓寬出路、以攻代守熟練的棋形要點反應精簡深入的細算思考,靜態死活分析,目的:採取完全不用search的方式,直接從棋塊之地域點作眼位分析,來判斷棋塊死活。所需資訊:棋塊的地域點個數、位置、各點真假眼形態、有無敵方死子、有無中心位置等。所需技術:專業的圍棋知識、細膩精確的分析歸納能力、不斷的反覆測試,著手選擇系統,著手選擇模組:棋塊死活棋塊攻防連結分斷棋串吃逃地域搶佔以預估目數出入作為著手分數目前分支度:8,審局函數判斷因素,棋塊確定地域目數周圍可能成地之潛力棋塊安危程度及範圍大小危險棋串之有無棋塊中的缺陷棋形,全局搜尋基本架構,GameTreestructureMinimaxsearch&-pruningDepth:6Width:8otherskills,棋形的觀念,棋形樣式(Pattern),應用實例,棋形樣式的方向轉換,棋形樣式的擷取,棋形的分類,依棋形術語分類(製作時)根據棋子配置的相對位置關係來區分例如尖、跳、飛、長、扳、虎依棋形用途分類(應用時)根據著點的作用與含意來區分例如連結、分斷、擴大、壓迫、整形,棋形的等級,緊急:大多屬於連接、分斷類棋形重要:大多是包圍、突破,以及重要的擴張、壓迫類棋形一般:屬於一般常見的下法,不特別重要但也相當實用特殊:屬於特殊情況才使用的手法,多半有奇兵之意味,棋形樣式(pattern)的表示,_XO_.X_._333364800,棋形樣式中之特殊狀況,_XO_X.X_O_3333114800,MatchingandGood,MatchingbutBad,棋形系統的選點實例,系統之工具程式,目的:有助於開發圍棋程式系統特色:全部採用專家經驗法則去歸納分析重視正確性與效率不用到任何search或遞迴,避免不進子問題,系統解出的撲手範例,棋串安危的認定,棋串安危認定=棋塊安危認定方式:靜態安危分析系統動態攻殺搜尋系統效能比較:準確度:動態(9成)靜態(78成)速度:靜態動態,靜態棋串安危分析,棋串安危等級:LIBERTY_SAFE:氣數夠多而視為安全。CAREFUL:大致上安全,但有微小的不安。DANGEROUS:氣數為23氣,並且伴隨了一些危險因子(氣點太靠近盤端、)。VERY_DANGEROUS:危險等級非常高,伴隨的危險因子更多。EXPIRED:只剩1氣且非反提的棋串。,棋串安危分析判斷因素,棋串氣數氣點位置氣點周圍有無敵子氣點周圍有無敵方棋鏈有無友方支援棋鏈勢力影響值高低,棋串安危靜態分析實例,棋串攻殺搜尋系統,尋找敵我雙方的目標棋串攻擊方(Killer)負責襲殺目標棋串防守方(Defender)負責救援目標棋串攻防雙方recursivecall形成gametree由AND-OR方式產生決策以布林值True代表棋串安全以布林值False代表棋串被吃,Killer(AND)Defender(OR)Killer(AND)Defender(OR),FTFT,TFFFF,TTF,123,F,T代表安全F代表被吃,提高搜尋效率的方法,設定著手選擇之priority將較佳之著手優先進行搜尋降低branch(棋步選擇量),KillerMoves之分類,直接緊氣撲避免不進子包圍攻擊連結鏈棋串逃出我方(包圍者)之棋串攻殺手筋系統測試實例,緊氣原則,目標棋串愈能長氣之點愈優先,包圍之棋串能順便長氣之點較優先,撲,是將棋子送入對方虎口中,迫使對方提吃,以求能迅速縮減對方氣數之手法。,包圍,利用包圍鏈來封鎖目標棋串只要目標棋串尚未被封鎖,且氣數低於安全氣數,則包圍的priority就比較高。,攻擊連結鏈棋串,分斷連結鏈之聯繫,側襲連結鏈之棋串,救援我方包圍棋串之範例,救援的方法選擇,救援的重要性,不進子的處理,連接會被提吃之位置(B點)對接觸之敵方已死棋串緊氣(C點),手筋範例,點入,第一線立下,系統測試範例,靜態死活分析系統,概念:在棋塊區域辨識後,能夠根據棋塊中的相關資訊,以無搜尋的方式分析研判該棋塊的眼位。目的:為了提升搜尋效能,增快審局函數判斷局勢的速度。,名詞定義,眼位區(EyeRegion):是指棋塊中某一個獨立且連通的地域範圍所形成的集合。眼位點(EyePoint):是指該眼位區中包含的所有空點或敵方死子之位置。眼位個數(Eyenumber):是指眼位區R中包含的眼位數(Re)。棋塊眼位數Re,棋塊眼位數計算範例,眼位區1(A):0.5眼位區2(B、C):0眼位區3(D、E):1棋塊眼位數0.5+0+1=1.5危險,眼位點分析因素,位置:地域點、潛力點、邊界點眼形種類:真眼、半眼、假眼狀態:空點、敵方死子,靜態死活分析範例,開局時搜尋情況(1),搜尋廣度問題-pruning之效能,開局時搜尋情況(2),搜尋深度問題複雜局勢不易明確分析,開局知識庫系統,目的:為彌補開局階段搜尋深廣度不足。作法:使用hashfunction將九路棋盤盤面以及相關
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高效档案室组织管理与流程优化方案
- 昆虫标本采集制作工成本控制考核试卷及答案
- 剑麻栽培工设备维护与保养考核试卷及答案
- 地震勘探工操作考核试卷及答案
- 水果园土壤盐渍化防治分析报告
- 光伏聚光组件制造工效率提升考核试卷及答案
- 酒店客房服务流程与标准SOP
- 教师课堂管理策略与心理调适课程
- 建筑工程质量控制计划表
- 新零售模式下顾客体验提升方案
- 2025年健康管理师职业技能考试笔试试题(100题)含答案
- 数据安全风险监测和预警管理流程
- 脱硫脱硝安全培训课件
- 2025-2030中国川式调料行业市场发展分析及前景趋势与投资研究报告
- 医院医疗质量与安全管理委员会会议记录
- 2025年成人高考《语文》强化训练:经典题型专项试题试卷
- 2025年芜湖鸠兹水务有限公司下属子公司招聘笔试参考题库含答案解析
- 建筑工地消防安全责任制模板
- 小儿哮喘支气管哮喘中医临床诊疗方案
- 医疗器械经营质量管理制度及工作程序-完整版
- 应急药箱清单及检查表
评论
0/150
提交评论