没有合适的资源?快使用搜索试试~ 我知道了~
基于 Monte-Carlo 随机模拟算法的 2048 游戏 AI 1
需积分: 0 0 下载量 4 浏览量
2022-08-03
22:24:12
上传
评论
收藏 1.53MB PDF 举报
温馨提示
试读
24页
摘要2048 是近期网络上流行的一款规则简单的益智游戏。它容易上手,但是想要获胜也很不容易。本文分析 2048 的游戏过程并完成了求胜 AI 的设计。首先,本文
资源详情
资源评论
资源推荐
评委一评分,签名及备注
队号:
10376
评委三评分,签名及备注
评委二评分,签名及备注
选题:
A
评委四评分,签名及备注
题目:基于 Monte-Carlo 随机模拟算法的 2048 游戏 AI
摘要
2048 是近期网络上流行的一款规则简单的益智游戏。它容易上手,但是想要
获胜也很不容易。本文分析 2048 的游戏过程并完成了求胜 AI 的设计。
首先,本文建立了游戏的博弈模型,分析了其双方的决策集合,游戏的博弈
树和决策分支。 本文从理论上分析了良好的决策在博弈树上确定的路径应使得
“在此决策前提下,之后进行随机决策,最后能到达 2048”这一事件的概率不断
增大。
本文基于游戏本身性质,引入一个简单的估价指标——盘面数值之和,来衡
量“从给定游戏局面出发,到达 2048”这一事件的概率。本文在几个特殊局面下
评估了这指标的一些倾向性。
其后,本文利用 Monte-Carlo 随机模拟算法,在某个决策分支点,对四个方
向移动得到的新局面多次独立模拟一定步数的随机操作,得到一定步数后游戏格
局估价指标的期望值的估计;比较其大小,由此确定此决策分支点应做出的决策。
本文利用 matlab 编程实现 AI,并基于不同的取样值、模拟步数的胜率指标对其
进行了评价。
最后,本文分析了 4*4 盘面和 N*N 盘面理论上能够得到的最大数值,对于
N*N 盘面,这个数值是
。
关键字:博弈模型,估价指标,Monte-Carlo 随机模拟
更多数学建模资料请关注微店店铺“数学建模学习交流”
https://k.weidian.com/RHO6PSpA
1
基于 Monte-Carlo 随机模拟算法的 2048 游戏 AI
1. 问题重述
2048 是近期风靡网络的一款游戏,它的规则很简单:在 4*4 方格盘中有数
字方块,他们均为 2 的正整数次幂。每次控制所有数字方块向同一方向移动,两
个相同数字的方块碰撞时会合并为他们的和,每次操作之后在空白处随机生成一
个 2 或者 4。得到数字 2048 则胜利,格子都被填满且相邻格子都不同——即无
法向任何方向移动,则失败。
针对游戏 2048 建立数学模型,并使用完成游戏所需移动次数和获胜概率两
个指标来评估算法的表现。同时,讨论 4*4 方格盘下,得到 2048 之后,继续进
行游戏所可能达到的最大数值,并将其推广至 N*N 方格盘。
2. 假设与符号说明
2.1 假设
2.1.1)2048 游戏原作者做出的设定、规则和胜负判定在每次操作中都被玩
家和系统遵从。主要包括以下三点:
- 玩家每次操作向一个方向移动数字方块。
- 系统移动方块穿过空格直到它碰到其他方块为止。
- 系统每次移动中只能合并一次方块,不能连续合并。
举例来说,列[0,2,2,4]在一次右移操作后变成[0,0,4,4],而不是[0,
0,0,8];形成后者需要两次右移操作。
2.1.2)玩家每次操作后,系统生成新数字方块的位置随机取。在玩家第一次
操作前,系统首先在空白方格盘上随机生成一个 2 或 4。系统每次生成 4 的
概率为 10%,生成 2 的概率为 90%。(依据 2048 源代码)
2.1.3)忽略伪随机数种子及其内在局限性、规律性对计算机随机模拟程度的
影响。即当本文中提到任何“随机”概念时,均指不可预测的真正意义上的
随机。
2.2 符号说明
表 1-参变量符号说明
名称
含义
第 k+1 次操作前的格局,详见问题分析部分。
游戏结束时的最终格局。
第 k+1 次滑动操作,为向右滑动。相似地其他方向参见下标。详见
问题分析部分。
第 k+1 次滑动操作后生成随机数字方格的生成操作,详见问题分
析。
进行 Monte-Carlo 模拟的样本容量。
进行 Monte-Carlo 模拟的运行深度。
对格局
的估价函数。
2
(续表 1)
游戏结束时格局中存在的最大数。
游戏结束所耗费的用户滑动操作次数。
一局游戏耗费的现实时间,用来评价我们算法下计算机的思考时
间。
游戏的阶,指方格盘的行列数。
N 阶游戏能拼出的数的最大理论值。
3. 问题分析
3.1 问题的抽象表述分析:
我们引入几个概念来抽象地表述一局游戏。
3.1.1)格局 -
:表示第 k+1 次操作前的方格盘情况。当 k=0 时,
表示
游戏的初始情况。对于 的游戏来说,
是一个四行四列的矩阵;为了我
们讲述和计算机运算的便利,令
中的值为实际方格盘中的数值取以 2 为底
的对数。且规定空格在
中对应的值为零。
若用
表示实际方格盘矩阵:
举例来说,对于如图所示的真实格局:
,我们有格局:
图 1 – 一个真实格局的例子
3
3.1.2)滑动操作 -
:表示第 k+1 次操作。
四种滑动操作代表的滑动方向由下标可以直观地看出。操作都是映射,第 k+1
次滑动操作映射处理的量为格局矩阵
,输出的量为格局矩阵
。
3.1.3)生成操作 -
:表示第 k+1 次操作后系统生成二和四的过程。
相似地,它也为映射,输出的量为格局矩阵
。
以上两种操作构成了游戏的主要部分,仍然对于格局
:
图 2 – 矩阵操作例子
3.2 双人博弈分析
我们发现,游戏具有如下特征:1)计算机和玩家按一定顺序采取行动。2)
计算机和玩家每一次行动所面对的选择的集合是有限集合。3)游戏在一定条件
满足时终止。
基于上述特征,我们将游戏归于一个双人动态博弈问题[1]。每一回合玩家
和系统分别做出一个决策;给定当前格局
或
双方的决策集合分别为:
4
以图一的格局为例,以
为上端节点,所产生的深度为 2 的局部博弈树为:
图 3 – 游戏决策树
要找到最优解,可以基于博弈内部设定来构造评价一个格局好坏的估价函数。
在每个决策分支点处向下进行一定深度的搜索,遍及深度内所有的可能情况;在
上述决策分支点选择估价函数取值最大的解。
考虑到优秀的估价函数构造的难度;搜索深度增大时庞大的解的空间;计算
机一方决策的随机性,本文中我们将不采用这种传统的算法来解决此问题。
4. 模型建立
4.1 制胜决策的概率模型[2]
为了得到 2048,我们需要在决策树的分支点处做出“正确”的决策。我们基
于 Monte-Carlo 随机模拟来实现决策。
仍然考虑图一的格局
以及以它为起始点生成的决策树图三,假设我们从
此时开始抛硬币来随机决定执行的每一步滑动操作,则在所有可能的结束状态中,
总归有能够达到 2048 的路线。这一概率值是确定的,记为
。
记事件
为“通过随机决策,从格局
到达含有 2048 的最终格局”,有:
下移
。。。
上移
(3,
1)
(4,
4)
上移
下移
左移
右移
(4,
2)
(4,
3)
(4,
1)
(3,
4)
左移
。。。
右移
剩余23页未读,继续阅读
Crazyanti
- 粉丝: 16
- 资源: 303
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0