MathorCup竞赛优秀论文.docx
- 文档编号:288389
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:37
- 大小:748.44KB
MathorCup竞赛优秀论文.docx
《MathorCup竞赛优秀论文.docx》由会员分享,可在线阅读,更多相关《MathorCup竞赛优秀论文.docx(37页珍藏版)》请在冰豆网上搜索。
MathorCup竞赛优秀论文
MathorCup竞赛优秀论文
评委一评分,签名及备注
队号:
10302
评委三评分,签名及备注
评委二评分,签名及备注
选题:
A:
2048
评委四评分,签名及备注
题目:
基于MonteCarlo局面评估和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;MonteCarlo;UTC;概率论
基于MonteCarlo局面评估和UCT博弈树搜索的2048
1.问题提出
2048是最近一款非常火爆的益智游戏,很多网友自称“一旦玩上它就根本停不下来”。
2048游戏的规则很简单:
每次控制所有方块向同一个方向运动,两个相同数字的方块撞在一起之后合并成为他们的和,每次操作之后会在空白的方格处随机生成一个2或者4,最终得到一个“2048”的方块就算胜利了。
如果16个格子全部填满并且相邻的格子都不相同也就是无法移动的话,那么游戏就会结束。
本文将建立数学模型,解答下列问题:
1.如何才能达到2048,给出一个通用的模型,并采用完成游戏所需移动次数和成功概率两个指标来验证模型的有效性;
2.得到2048之后,游戏还可以继续玩,那么最大能达到多大的数值呢?
如果将方格扩展到N*N个,能达到的最大数是多少?
2.问题分析
本文首先基于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,这时又是满格的情况,如果合并过的数再次进行和并又再次产生一个空位,那么以此类推用过可以产生15次空格,那么,这15有同时增加了15次4,通过这些新加入的4,数值会进一步的增加。
3.模型的假设
1)Alpha-Beta有比Minimax搜索算法更加准确的评估函数才能保证那些优秀的节点不被过早的剪枝;
2)博弈树较小而可以被完全展开,博弈树叶子节点的价值可以通过胜负关系来确定,搜索的结果就是最优解;
3)博弈树很大而不能被完全展开时,博弈树叶子节点的价值可以通过静态评估函数计算出来,当静态评估函数较为准确时,就可以得到相应的近似最优解;
4.符号说明
D:
2048中块数的最大数值
N:
无数字块数
I(x):
minimax的最小值
Fi(x):
定义在
上的实值函数
:
第
台机器到目前为止的平均收益
:
第
台机器被测试的次数
:
所有机器目前被测试的总次数
5.型建立与求解
5.1.问题一
5.1.1Random-Max-Trees算法
Random-Max-Trees是从Minimax算法改变而来。
只是加了一个条件,双方都是非理性的条件下,本质还是Minimax。
很重要的。
下面通过比较来进一步了解Random-Max-Trees算法与Alpha-beta剪枝算法的关系。
A.对于一个Min节点,若能估计出其倒推值的上确界Beta,并且这个Beta值不大于Min的父节点(Max节点)的估计倒推值的下确界Alpha,即Alpha
Beta,则就不必再扩展该Min节点的其余子节点了,因为这些节点的估值对Min父节点的倒推值已无任何影响了,这一过程称为Alpha剪枝。
B.对于一个Max节点,若能估计出其倒推值的下确界Alpha,并且这个Alpha值不小于Max的父节点(Min节点)的估计倒推值的上确界Beta,即Alpha
Beta,则就不必再扩展该Max节点的其余子节点了,因为这些节点的估值对Max父节点的倒推值已无任何影响了。
这一过程称为Beta剪枝。
C.一个Max节点的Alpha值等于其后继节点当前最大的最终倒推值,一个Min节点的Beta值等于其后继节点当前最小的最终倒推值
图1-a图1-b
采用Alpha-beta剪枝,可以在相同时间内加大Random-Max-Trees的搜索深度,因此可以获得更好的效果。
5.1.2.问题一模型的建立与求解
1)本论文对2048游戏进行抽象化表述:
我方:
(即游戏玩家)每次可以选择上、下、左、右四个行棋策略中的一种(某些格局会少于四种,因为有些方向不可走)。
行棋后方块按照既定逻辑移动及合并,格局转换完成。
对方:
(计算机)在当前任意空格子里放置一个方块,方块的数值可以是“2”或“4”。
放置新方块后,格局转换完成。
胜利条件:
出现某个方块的数值为“2048”。
失败条件:
格子全满,且无法向四个方向中任何一个方向移动(均不能触发合并)。
这样分析,于是2048游戏就可化成建立一个模型解决信息对称的双人对弈问题。
2)评价当前格局的价值
在2048中,除了终局外,中间格局并无非常明显的价值评价指标,因此需要
用一些启发式的指标来评价格局。
那些分数高的“好”格局是容易引向胜利的格局,而分低的“坏”格局是容易引向失败的格局。
本文采用了如下几个启发式指标,如下:
解释:
(1)单调性
单调性指方块从左到右、从上到下均遵从递增或递减。
一般来说,越单调的格局越好。
(2)平滑性
是指每个方块与其直接相邻方块数值的差,其中差越小越平滑。
例如2旁边是4就比2旁边是128平滑。
一般认为越平滑的格局越好。
(3)空格数
这个很好理解,因为一般来说,空格子越少对玩家越不利。
所以我们认为空格越多的格局越好。
(4)孤立空格数
这个指标评价空格被分开的程度,空格越分散则格局越差。
(5)对方选择的剪枝
在这个程序中,除了采用Alpha-beta剪枝外,在Min节点还采用了另一种剪枝,即只考虑对方走出让格局最差的那一步(而实际2048中计算机的选择是随机的),而不是搜索全部对方可能的走法。
这是因为对方所有可能的选择为“空格数×2”,如果全部搜索的话会严重限制搜索深度。
3.可以找实验玩家获得数据,再进行因子分析,根据这五种因素对到达2048步数的影响确定权重。
5.1.3.问题一模型的改进
5.1.4.1蒙特卡罗算法
蒙特卡罗(MonteCarlo)方法也称为随机模拟方法,是一种最优有限的搜索方法。
它的基本思想是,为了求解数学、物理、工程技术以及生产管理等方面的问题,首先建立一个概率模型或随机过程,使它的参数等于问题的解:
然后通过对模型或过程的观察或抽样试验来计算所求参数的统计特征,最后给出所求解的近似值。
在应用蒙特卡罗方法解决2048问题的过程中,大体上有如下几个内容:
1)对求解的问题建立简单而又便于实现的概率统计模型,使所求的解恰好是所建立模型的概率分布或数学期望。
2)根据概率统计模型的特点和计算实践的需要,尽量改进模型,以便减小方差和降低费用,提高计算效率。
3)建立对随机变量的抽样方法,其中包括建立产生伪随机数的方法和建立对所遇到的分布产生随机变量的随机抽样方法。
4)给出获得所求解的统计估计值及其方差或标准误差的方法。
5.1.4.2UCT算法(UCBfortreesearch)
UCT又名UCBforTreeSearch,是上限信心界(Upperconfidencebound,UCB)在TreeSearch上的应用。
UCB策略是为了解决相互独立且收益率不同的因子,获得尽可能大的回报的最佳策略。
大致上来说,每一次操作UCB会根据每一个因子目前的平均收益值,加上一个额外的参数,得出本次操作此因子的UCB值,然后根据此值,挑选出拥有最大UCB值的因子,作为本次操作所要选择的因子。
其中,所谓额外参数,会随每一台因子被选择的次数增加而相对减少,其目的在于让选择因子时,不过分拘泥于旧有的表现,而可以适度地探索其他因子。
UCB公式的一般型式:
在实践中,检定效果较好的一个UCB公式表示如下:
是第
台机器到目前为止的平均收益,
是第
台机器被测试的次数,
是所有机器目前被测试的总次数。
TreeSearch开始时,UCT会建立一棵Tree,然后:
1)从根节点开始
2)利用UCB公式计算每个子节点的UCB值,选择UCB值最高的子节点
3)若此子节点并非叶节点(从未拜访过的节点),则由此节点开始,重复
(2)
4)直到遇到叶节点,则计算叶节点的收益值,并依此更新根节点到此一节点路径上的所有收益值
5)由
(1)开始重复,直到时间结束,或达到某一预设次数
6)由根节点的所有子节点中,选择平均收益值最高者,作为最佳节点,此一节点,就是UCT的结果。
5.1.4.3改进的模型
其中
代表第
个因子,
表示第
个因子目
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MathorCup 竞赛 优秀论文