1 / 55
文档名称:

MathorCup竞赛优秀论文.doc

格式:doc   大小:4,051KB   页数:55页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

MathorCup竞赛优秀论文.doc

上传人:AIOPIO 2021/1/30 文件大小:3.96 MB

下载得到文件列表

MathorCup竞赛优秀论文.doc

文档介绍

文档介绍:评委一评分,签名及备注
队号:
10302
评委三评分,签名及备注
评委二评分,签名及备注
选题:
A:2048
评委四评分,签名及备注
题目:基于Monte Carlo局面评估和UCT博弈树搜索的2048
摘要
  本文首先提出Random-Max-Trees算法来实现人工智能的2048。此算法是通过静态评估函数来求得最优解。但是在实现的过程中出现冗余的现象,当移动方格步数过多的时候,好的评估函数却很难找到,使Random-Max—Trees算法效率降低。随后本论文采用Alpha-Beta算法,是前者的一种改进,在搜索结点数一样的情况下,可以使搜索深度达到原来的两倍。在实现的过程中发现Alpha-,才会接近于实际分枝因子的平方根,也是该算法最好的状态。但是在首先搜索最坏的子节时,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的环境下,选用更加保守的Random—Max-Trees博弈策略比选用Mini-Max-,把下一步所有可能的走法所造成的格局作为树的一个子节点,如果继续使用Random-Max-Trees算法,则此算法的效率很不理想,会造成许多不必要的步骤。因为每一个子节后面还有子节,可能的情况很多循环往复,直到2048为止,但是并不是所有的节点都必须搜索完毕,有些节点是不必要的。为了解决这一问题,本文可以采用
Alpha—beta剪枝算法。 
对于第一问为实现2048的这种情况,蒙特卡洛评估是一个很好的解决方法,它通过对当前局面下的每个的可选点进行大量的模拟来得出相应的胜负的统计特性,在简单情况下,胜率较高的点就可以认为是较好的点予以选择。UCT在蒙特卡洛评估算法的基础上很大的提高了收敛速度,UCT能不断根据之前的结果调整策略,选择优先评估哪一个可下点,基于此策略从而也可以得到第二问的答案。
对于第二问,如何计算出最大值是有条件的,对有随机值的问题,我们需要量化数值,如果考虑随机那么就有不确定性,这会使我们无法接近最大值,所以在最开始就直接规定好,取4来作为加数,因为这是累计的题目,4比2大,所以在有限的范围内,,开始计算最大值。最大值是2的倍数,通过玩2048已经知道相同的数可以合并形成更大的数,合并一个数需要有两个数的空间,通过这一规律我们可以知道当格子都排满的情况下,还是有可能进行数字的合并的,如果可以进