《MathorCup竞赛优秀论文基于MonteCarlo局面评估和UCT博弈树搜索的2048》.docVIP

《MathorCup竞赛优秀论文基于MonteCarlo局面评估和UCT博弈树搜索的2048》.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文档。上传文档
查看更多
《MathorCup竞赛优秀论文基于MonteCarlo局面评估和UCT博弈树搜索的2048》

评委一评分,签名及备注 队号: 10302 评委三评分,签名及备注 评委二评分,签名及备注 选题: A:2048 评委四评分,签名及备注 题目:基于Monte Carlo局面评估和UCT博弈树搜索的2048 摘要 本文首先提出Random-Max-Trees算法来实现人工智能的2048。此算法是通过静态评估函数来求得最优解。但是在实现的过程中出现冗余的现象,当移动方格步数过多的时候,好的评估函数却很难找到,使Random-Max-Trees算法效率降低。随后本论文采用Alpha-Beta算法,是前者的一种改进,在搜索结点数一样的情况下,可以使搜索深度达到原来的两倍。在实现的过程中发现Alpha-Beta严重依赖于着法的寻找顺序。只有当程序挑最好的子节来当先搜索,才会接近于实际分枝因子的平方根,也是该算法最好的状态。但是在首先搜索最坏的子节时,Beta截断不会发生,此时该算法就如同Random-Max-Trees一样,效率非常低,也失去Alpha-Beta的优势,也无法试图通过面的搜索来弥补策略上的不足。 本文采用蒙特卡洛评估对以上模型进行了改进。它通过对当前局面下的每个的可选点进行大量的模拟来得出相应的胜负的统计特性,在简单情况下,胜率较高的点就可以认为是较好的点予以选择。由于UCT算法能不断根据之前的结果调整策略,选择优先评估哪一个可下点。所以在蒙特卡洛德基础上运用UCT算法提高收敛速度。可求得概率为100%。 对于第二问,采用归纳法以及概率论量化数值,当方格为时,最大能达到,如果将方格扩展到个,能达到的最大数为。最后对模型进行评价。 本论文算法是采用JAVA、C++以及MATLAB实现。 关键字:Random-Max-Trees;Alpha-beta;Monte Carlo;UTC;概率论 基于Monte Carlo局面评估和UCT博弈树搜索的2048 问题提出 2048是最近一款非常火爆的益智游戏,很多网友自称“一旦玩上它就根本停不下来”。2048游戏的规则很简单:每次控制所有方块向同一个方向运动,两个相同数字的方块撞在一起之后合并成为他们的和,每次操作之后会在空白的方格处随机生成一个2或者4,最终得到一个“2048”的方块就算胜利了。如果16个格子全部填满并且相邻的格子都不相同也就是无法移动的话,那么游戏就会结束。 本文将建立数学模型,解答下列问题: 1. 如何才能达到2048,给出一个通用的模型,并采用完成游戏所需移动次数和成功概率两个指标来验证模型的有效性; 2. 得到2048之后,游戏还可以继续玩,那么最大能达到多大的数值呢?如果将方格扩展到N*N个,能达到的最大数是多少? 问题分析 本文首先基于Random-Max-Trees和Alpha-beta剪枝算法来实现人工智能(AI)的2048。本文认为可以把2048游戏看成是一场人类和计算机的博弈,人类控制所有方块向同一个方向移动并合并,计算机则在空白处随机放置一个“2”或“4”的方块。但是在AI的环境下,博弈双方都是计算机,双方都不理性,所以在AI的环境下,选用更加保守的Random-Max-Trees博弈策略比选用Mini-Max-Tree的更加适当。如果把当前格局作为博弈树的父节点,把下一步所有可能的走法所造成的格局作为树的一个子节点,如果继续使用Random-Max-Trees算法,则此算法的效率很不理想,会造成许多不必要的步骤。因为每一个子节后面还有子节,可能的情况很多循环往复,直到2048为止,但是并不是所有的节点都必须搜索完毕,有些节点是不必要的。为了解决这一问题,本文可以采用Alpha-beta剪枝算法。 对于第一问为实现2048的这种情况,蒙特卡洛评估是一个很好的解决方法,它通过对当前局面下的每个的可选点进行大量的模拟来得出相应的胜负的统计特性,在简单情况下,胜率较高的点就可以认为是较好的点予以选择。UCT在蒙特卡洛评估算法的基础上很大的提高了收敛速度,UCT能不断根据之前的结果调整策略,选择优先评估哪一个可下点,基于此策略从而也可以得到第二问的答案。 对于第二问,如何计算出最大值是有条件的,对有随机值的问题,我们需要量化数值,如果考虑随机那么就有不确定性,这会使我们无法接近最大值,所以在最开始就直接规定好,取4来作为加数,因为这是累计的题目,4比2大,所以在有限的范围内,4的总和肯定比2的总和大。规定好数值,开始计算最大值。最大值是2的倍数,通过玩2048已经知道相同的数可以合并形成更大的数,合并一个数需要有两个数的空间,通过这一规律我们可以知道当格子都排满的情况下,还是有可能进行数字的合并的,如果可以进行合并的话,那就又增加一个4,这时又是满格的情况,如果合并过的数再次进行和并又

文档评论(0)

weizhuidaomengx + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档