基于西洋跳棋博弈程序研究.docVIP

基于西洋跳棋博弈程序研究.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于西洋跳棋博弈程序研究

基于西洋跳棋博弈程序研究   摘要:为了提高计算机博弈水平,以西洋跳棋为研究对象设计博弈程序,采用Min-Max搜索算法实现对博弈树的搜索,根据α-β剪枝算法研究博弈树的估值深度,设计了搜索深度可以剪枝的博弈模型,该博弈模型解决了博弈程序布局方式、估值深度和搜索耗时等问题,提高了程序搜索效率和博弈性能,博弈程序在全国大学生博弈比赛中获得二等奖,在实际中得到了检验和应用,比赛结果表明了该博弈模型是可行和有效的。   关键词:计算机博弈;深度;搜索;布局;博弈树   DOI:10.15938/j.jhust.2016.03.005   中图分类号:TP311 文献标志码:A 文章编号:1007-2683(2016)03-0024-05   0引言   当前计算机博弈正越来越受到欢迎,它所具有的复杂性和挑战性吸引了许多学生和学者前去研究,西洋跳棋也称为国际跳棋,目前64格西洋跳棋已被研究完善,100格西洋跳棋其复杂性和难度都有所提升,布局和估值深度是当前主要的问题,搜索效率也是没有完全解决的难点,因此,人们更多地专注于100格西洋跳棋算法上的研究,100格西洋跳棋双方子力较多,布局变化万千,走法更是多种多样,本文致力于研究布局、估值和搜索,运用博弈树理论、极大一极小值搜索、虚拟静态估值等方法设计一种比较完善方案提高博弈水平,   1西洋跳棋的规则与棋盘   本文中提到的西洋跳棋是指100格西洋跳棋。   1.1基本规则   西洋跳棋规则相对比较复杂,棋盘是100格,上面有50个格可供棋子行走,如图1所示。对弈双方各有20颗普通棋子,当对方普通棋子走到自己方底线时就成为王子。在行棋过程中普通棋子只能向前走,当棋子具备连杀条件时必须连杀,当局面存在能吃掉对方棋子时必须吃子;王子可以向任意方向移动,比普通棋子更具有攻击力和防御力。当一方棋子被吃完或者没有可以移动的棋子时该方就输了。   1.2棋盘表示   西洋跳棋棋盘在程序中的常用表示方法有两种:一是二维数组表示棋盘,二是用比特棋盘。其中二维数组表示棋盘简单直观,易于访问,操作简单,比特棋盘访问效率高于数组棋盘,但是综合考虑各自优缺点后,本文选用10×10二维数组表示棋盘。   如图1所示,共有10×10个方格,故用10×10的(int型)二维数组表示,其中:0表示空白(无棋子),1表示黑棋,2表示黑王,-1表示白棋,-2表示白王,当普通棋子成王后,其棋子图形会由圆形变成正方形以区分普通棋子与王,即黑王用一个黑色正方形表示,白王用一个白色正方形表示。   2西洋跳棋的走法生成   走法生成用专门的走法生成函数表示,生成函数包含西洋跳棋基本规则,行棋时必须严格遵循这些规则,它是程序正确博弈的保证。走法生成函数本身不产生任何行棋信息,它只负责按规则行棋。当布局函数、估值函数和搜索函数配合完成后会产生最优走法的相关信息,然后把这些函数传递给走法生成函数,最后由走法生成函数行棋,如图2所示。   2.1布局   布局是走法生成的关键部分,特别是开局决定着棋局后续发展的好坏。西洋跳棋棋子数量较多,布局时可以运用大量战术配合行棋规则,在博弈中往往可以反败为胜,使博弈时战斗激烈,精彩纷呈。布局既要考虑双方子力的差别,又要考虑当前这一步棋走完后对整个棋局的影响。布局可以采用虚拟走法,把每一颗能走棋子所有能走的方式都模拟走一遍,对走完后的局面做出评判,从所有能走方式中选取最优方式。布局时需要考虑的因素很多,要对局势整体把握,综合考虑,可运用的战术多种多样。例如布局可以利用能杀子时必须杀子规则来设置陷阱,牺牲一颗棋子换取对方多颗棋子,布局深度是决定棋局胜败的一个重要因素,行棋时要考虑棋局的未来发展。西洋跳棋是一种具有深度搜索的棋种,一步行棋往往能决定局势优劣甚至成败,估值深度可采用追踪方式,对能够移动的棋子各种行走轨迹追踪到底,分析该步行棋走后对后续局面造成什么影响。布局过程通过布局函数完成,完整的布局过程如图3所示。   3.2估值   在行棋过程中行棋者需要时刻掌握棋局的发展,掌握行棋方处于优势还是劣势,从而根据局势的优劣布局,估值可以分为静态估值和动态估值,估值方式采用估值函数评分,每个函数中有评分标准且相互之间不影响,分数可正可负可为零,棋子模拟行棋后调用估值函数评出相应的分数,估值时先把我方每一颗能走的棋子和能行走的方式都模拟走出来,再调用静态估值函数和动态估值函数给该模拟行棋估分并记录分数与行棋方式,找出所有方式中最高的分数,再比较所有能行走方式棋子中分数最高的棋子分数和行棋方式,最后生成相应的走法。估值过程如图4所示。   2.2.1静态估值   静态估值时要考虑行棋过程中的多种特性,但估值深度有限,需要动态估值共同配合完成整个估值过程。   1)

文档评论(0)

130****9768 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档