棋类对弈人工智能算法研究与国际象棋软件设计.pdfVIP

棋类对弈人工智能算法研究与国际象棋软件设计.pdf

  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文档。上传文档
查看更多
上海理工大学 计算机工程学院 本科优秀毕业论文 (设计) 棋类对弈人工智能算法研究与国际象棋软件设计 信息与计算科学02 级 陈人杰 指导教师: 陈家琪 教 授 (一) 内容简介 这个研究的目的是编写一个棋类对弈程序,例如国际象棋。棋类对弈程序的 设计需要运用到人工智能这方面的算法,其中最核心的就是 Alpha-Beta 算法。棋 类人工智能算法研究已对游戏以及军事方面带来了巨大的作用。 关键词:棋类对弈程序;人工智能;Alpha-Beta 算法。 (二) 设计思想 采用的数据结构有两种——数组棋盘和位棋盘,其中数组棋盘还可分成三个 方案,加上位棋盘一共四个方案。 方案一:表示棋盘的方案。 用一维数组或二维数组表示棋盘的结构,非常适合用于五子棋、围棋、黑 棋这类不区分棋子种类的棋类游戏。其特点是局面表现能力强,便于评价局面的 好坏。但是对于象棋等有兵种区分的游戏而言,每次都要扫描整个棋盘,不便于 了解某些特定棋子的位置。 方案二:表示棋子的方案。 用数组表示棋子的信息,只适用于棋子有不同种类的棋类游戏,如象棋和斗 兽棋。 类棋用 种方案可以节省空间,但是靠 样的结构局面的具体情况很难 了解,不利用于评价局面。优点也十分明显,可以十分简单地找出某些特定棋子 的位置,而不需要像棋盘方案那样搜索整个数组。 方案三:棋盘棋子相联系的方案。 既然上述两种方案对于象棋类游戏各有缺陷,那么将二者一起使用在一定程 度上可以达到最优,但必须花费更大的空间。棋盘数组与棋子数组共同使用的方 案具有上述两者的优点。 方案四:位棋盘。 海理工大学计算机工程学院 第1 页 共3 页 本科优秀毕业论文 (设计) 海理工大学计算机工程学院 陈人杰:棋类对弈人工智能算法研究与国际象棋软件设计 上述三个方案虽然不同,但是用的都是数组,可以算作一个分类。而位棋盘 不同,位棋盘不采用数组来表示棋盘或棋子,而是用一个64 位整型数来表示棋盘, 适用于8 ×8 的棋类游戏,如国际象棋和黑 棋。一个使用位棋盘的程序中通常有 一组位棋盘, 些位棋盘记录棋盘的不同信息。位棋盘的变化由位运算获 。因 此位棋盘可能是运算速度最快的方案。但目前 32 位机占主流,以64 位整型数表 示的位棋盘的发挥受到限制。 (三) 计算方式 无论棋盘局面的数据结构采用哪种方案,棋类程序人工智能的算法是基本类 似的。棋类游戏的进行过程可以看成一棵树,而计算机下棋是通过搜索 棵树的 子树,在子树的叶子结点通过调用评价函数来找到最好着法。(仅仅是评价函数认 为最好。)即使是搜索子树,所花费的时间也相当多,因此采用了一些算法使搜索 速度大幅提高。 一、Alpha-Beta 算法 树的某一结点的评价值足够好,当余下的兄弟结点对上一层的局面评价值没 有影响的情况下,直接返回该结点当前 评价值,将余下的兄弟结点裁剪。该算 法是无害的,对整个树的搜索结构毫无改变,并加快了速度。但是该算法对着法 的次序十分敏感。 二、着法排序 既然Alpha-Beta 算法对着法敏感,那么就应该进行着法排序将好的着法放在 前面从而提高剪枝的效率。主要采用的是历史启发、杀手启发以及吃子启发等算 法。另外,排序的方法对速度也有很大的影响。 三、空着裁剪 如果一方让对方连下两步(自己不走,即空着),对方都不能挽回局面的话, 显然之后就没有必要再搜索了。此时就应该裁剪。该算法大幅增强了Alpha-Beta 的剪枝效率,但也使搜索的错误率有所提高,是有害裁剪。 四、哈希置换表 棋类对局中有许多殊途同归的局面, 些局面没有必要重复搜索,只要记录 之前搜索过的评价值,下次遇到有时可以直接使用该值进行置换。记录 些局面 的评价值用的数据结构是哈希表,由于局面的数量大,所以必须找出一个高效的 搜索记录的方法,而哈希表由于索引与内容相联系,成为首选。 五、其他算法 除此上述叙述的几个主要算法之外,还有静态搜索这一辅助算法,主要解决 象棋类程序中出现的问题。另外着法预处理与着法生成也是棋类对弈程序中要解 决的问题。

文档评论(0)

勤劳的小厮 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档