资源预览内容
第1页 / 共33页
第2页 / 共33页
第3页 / 共33页
第4页 / 共33页
第5页 / 共33页
第6页 / 共33页
第7页 / 共33页
第8页 / 共33页
第9页 / 共33页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
首届机器博弈学术研讨会专题报告计算机博弈引擎协议和博弈程序比赛黄晨http:/www.elephantbase.net/mailto: webmasterelephantbase.net计算机博弈引擎协议和博弈程序比赛Date1首届机器博弈学术研讨会专题报告报告内容 1. 国际象棋引擎协议历史2. 博弈引擎协议3. 博弈程序自动比赛4. UCCI引擎协议和UCCI引擎联赛1. 国际象棋引擎协议历史Date2首届机器博弈学术研讨会专题报告 国际象棋引擎协议历史1.1 从 MANIAC 到“深蓝”1. 国际象棋引擎协议历史c. Ken Tompson 和他设计的 Bellea. 最早机器下棋的构想(1769年)b. 第一台会下棋MANIAC(1950年)Date3首届机器博弈学术研讨会专题报告1. 国际象棋引擎协议历史d. “深蓝”的两位设计师 Hans Berliner 和许峰雄e. Ken Thompson 和 Gary Kasparov1.1 从 MANIAC 到“深蓝”Date4首届机器博弈学术研讨会专题报告1.2 GNU Chess 和 XBoard1. 国际象棋引擎协议历史f. WinBoardg. WinBoard 的作者 Tim Mannh. Crafty 的作者 Robert Hyatt Crafty 是国际象棋程序的教科书Date5首届机器博弈学术研讨会专题报告1. 国际象棋引擎协议历史1.3 WinBoard、ChessBase 和 UCI并存的格局 XBoard/WinBoard协议 - 最早、用得最多的开放引擎协议1986年,GNU Chess诞生,有了文本界面的概念;1991年,XBoard诞生,支持Xboard的文本界面;1993年,Xboard在Windows下的版本WinBoard诞生,WinBoard协议形成体系。截止至2006年7月,支持WinBoard的程序共有312个(WBEC Ridderkerk)。 ChessBase协议 - ChessBase系列国际象棋程序的专用引擎协议1998年,由Fritz首创,支持Junior、Hiarcs、Shredder、NIMZO等程序;2002年,由于Shredder创立UCI的原因,ChessBase开始全面支持UCI。目前支持5个商业引擎(Fritz、Junior、Hiarcs、NIMZO和Zap!Chess)和9个免费引擎(大都改自开放源程序的WinBoard引擎) UCI/Chess960协议 - 新兴的开放引擎协议,与WinBoard相抗衡2000年,Shredder创立UCI协议;2002年,ChessBase开始全面支持UCI;截止至2006年7月,支持UCI的程序共有89个(其中65个也支持WinBoard)。(WBEC Ridderkerk的统计数据,不包括克隆程序,如Toga II。)Date6首届机器博弈学术研讨会专题报告1.4 WBEC Ridderkerk 和 PolyGlot WBEC Ridderkerk - 规模最大的国际象棋引擎联赛组织2001年,WBEC Ridderkerk开始对WinBoard引擎进行测试;冠军引擎:Gandalf(第1期)、Ruffian(第2、3期)、DeepSjeng(第4、6期)、 (第5期没有举行顶级组联赛)、The King(第7期)。 PolyGlot - 使 UCI 引擎和 WinBoard 引擎同台竞技2004年,UCI到WinBoard的适配器PolyGlot诞生;同年UCI引擎都加入了WBEC Ridderkerk联赛的行列;冠军引擎:Shredder(第8、9、10期)、Fruit(第11期)、Rybka(第12期);最近几期的冠军全部被UCI引擎包揽。1. 国际象棋引擎协议历史Date7首届机器博弈学术研讨会专题报告报告内容1. 国际象棋引擎协议历史 2. 博弈引擎协议3. 博弈程序自动比赛4. UCCI引擎协议和UCCI引擎联赛2. 博弈引擎协议Date8首届机器博弈学术研讨会专题报告 博弈引擎协议2.1 界面、引擎和“界面-引擎协议” 界面(GUI) -可视化操作模块 引擎 - 智能核心模块 界面-引擎协议(简称引擎协议) - 界面和引擎耦合方式(通讯方式) 针对一个界面(符合某一协议的),可以设计出水平更高的引擎 针对一个引擎(符合某一协议的),可以设计出功能更强大的界面 引擎协议的意义在于:使博弈软件的设计者更专著于某一模块(要么是界面,要么是引擎)的设计。2. 博弈引擎协议Date9首届机器博弈学术研讨会专题报告2. 博弈引擎协议2.2 博弈引擎协议的技术特点A. 通讯方式 B. 工作方式同步和异步 C. 语法指令和反馈 D. 后台思考 E. 认输和提和 F. 禁止着法 G. 历史着法Date10首届机器博弈学术研讨会专题报告管道管道界面程序引擎程序句柄句柄句柄句柄指令反馈指令反馈stdinstdout标准输入/输出通道的通讯方式A. 通讯方式 ChessBase等非开放的引擎协议:类似DLL的API函数程序库; WinBoard、UCI等开放的引擎协议:通过标准输入/输出通道实现通讯;标准输入/输出通道的优点:a. 有利于引擎和界面的跨平台发展;b. 单一的引擎或单一的界面有实现商业化的可能。 界面程序向引擎程序传送的信息称为“指令”; 引擎程序向界面程序传诵的信息称为“反馈”。2. 博弈引擎协议Date11首届机器博弈学术研讨会专题报告界面棋局进程引擎棋局进程着法着法着法着法思考思考界面棋局进程引擎 局面着法局面着法思考思考同步方式异步方式B. 工作方式同步和异步 同步方式:界面和引擎采用同样的棋局进程。优点:通讯简单; 缺点:a. 引擎重复了界面的棋局进程处理,b. 要应对“不同步”的情况。 异步方式:引擎没有棋局进程,而只是针对一系列局面进行思考,给出着法。优点:a. 无需处理棋局进程,b. 不存在“不同步”的情况;缺点:a. 通讯量大,协议内容繁多,b. 要解决历史着法引起的重复局面问题。2. 博弈引擎协议Date12首届机器博弈学术研讨会专题报告C. 语法指令和反馈 指令和反馈的要求:i. 文本方式和行方式,ii. 界面和引擎都随时待命,iii. 语法规范(类似于DOS/UNIX的控制台命令); 引擎的状态:i. 等待状态,ii. 思考状态; 语法说明书和示例:指令用红色表示,反馈用蓝色表示。ucci id name ElephantEye Demo option usemillisec type check default false option usebook type check default true ucciok setoption usemillisec true setoption usebook false position fen rnbakabnr/9/1c5c1/p1p1p1p1p/9/9/P1P1P1P1P/1C5C1/9/RNBAKABNR w - - 0 1 go time 300000 increment 0 info depth 6 score 4 pv b0c2 b9c7 c3c4 h9i7 c2d4 h7e7 info nodes 5000000 time 5000 stop bestmove b0c2 ponder b9c7 quit bye引导状态空闲状态思考状态空闲状态2. 博弈引擎协议Date13首届机器博弈学术研讨会专题报告D. 后台思考 同步方式:引擎自动控制,有“是否启用后台思考”的开关(easy/hard); 异步方式:由界面控制,有专门的处理后台思考的指令和反馈。后台思考的工作原理:猜测着法!i. 引擎提供猜测着法:bestmove ponder 和是主要变例的前两个着法。ii. 界面要求进行后台:go ponder iii. 对方着法与猜测着法一致后台思考命中:ponderhitiv. 后台思考没有命中:stop / go 2. 博弈引擎协议Date14首届机器博弈学术研讨会专题报告E. 认输和提和 人类棋手采用的提和规则:走棋的一方提和,不走棋的一方决定是否接受提和 ; 电脑的问题:是否“接受提和”是需要计算的,这样会打断“后台思考”! 适应电脑的提和规则:i. 走棋的一方可在走棋的同时提和;ii. 轮到对方走棋时,对方可以选择提和,也可以继续走棋; 异步方式引擎协议对认输和提和的规定:i.引擎认输:bestmove ponder resignii.界面不需要向引擎发出认输指令;iii.引擎提和: bestmove ponder drawiv.界面向引擎提和:go draw v.界面向引擎提和(后台思考命中):ponderhit drawvi.引擎拒绝提和: bestmove ponder vii. 引擎接受提和: bestmove ponder drawviii. 界面不需要向引擎发出接受提和的指令。2. 博弈引擎协议Date15首届机器博弈学术研讨会专题报告F. 禁止着法 长打中国象棋规则问题的疑难杂症! 人类棋手采用的做法:遇到争议,由裁判作出仲裁; 电脑可以采用的做法:如果不能正确判断,可由人类作出仲裁; 界面向引擎发出禁止着法的指令:banmoves 2. 博弈引擎协议6回合后红方没有禁着车二进一是禁着 界面要向引擎发送:banmoves h8h9Date16首届机器博弈学术研讨会专题报告G. 历史着法 问题引擎如何自动避免走出禁止着法?2回合后?红方没有禁着2回合后:车二进一不是禁着 6回合后:车二进一是禁着6回合后? 解决界面向引擎传达历史着法:position moves 例:position fen 4k4/9/5a3/4r4/9/9/9/9/9/5K1R1 w - - 0 1 moves h0h9 e9e8 2. 博弈引擎协议Date17首届机器博弈学术研讨会专题报告2.3 引擎协议适配器 实现两种不同的引擎协议之间的转换和通用 适配器的方向性从“引擎端协议”到“界面端协议”例如:WinBoard(引擎)到ChessBase(界面)的适配器WinBoard(引擎)到UCI(界面)的适配器WB2UCIUCI(引擎)到WinBoard(界面)的适配器PolyGlot浅红象棋(引擎)到UCCI(界面)的适配器QH2UCCIUCCI(引擎)到浅红象棋(界面)的适配器UCCI2QH2. 博弈引擎协议管道管道引擎协议适配器引擎程序指令反馈指令反馈stdinstdout管道管道界面程序指令反馈指令反馈stdinstdout协议 转换器引擎协议适配器的工作原理Date18首届机器博弈学术研讨会专题报告报告内容1. 国际象棋引擎协议历史2. 博弈引擎协议 3. 博弈程序自动比赛4. UCCI引擎协议和UCCI引擎联赛3. 博弈程序自动比赛Date19首届机器博弈学术研讨会专题报告3. 博弈程序自动比赛博弈程序自动比赛3.1 国际大赛普遍采用的方式手动比赛 ICGA 11th Computer Olympiad 14th World Computer-Chess Championship (WCCC) 2004年世界电脑象棋争霸赛/2005年世界电脑围棋争霸赛 全国首届计算机博弈锦标赛3.2 手动比赛带来的问题 比机器还是比程序? 电脑之间的比赛为什么要人来操作? 能否延长赛程?Date20首届机器博弈学术研讨会专题报告3. 博弈程序自动比赛3.3 民间赛事自动比赛 WinBoard Engine Competition (WBEC) - Ridderkerk, Netherlands Gomocup 电脑象棋(UCCI引擎)联赛3.4 自动比赛的优势和技术问题
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号