机器学习之Grid World的Monte Carlo算法解析

这篇博客分析了GitHub开源项目中Grid World环境下的Monte Carlo算法。Grid World是一个n*n的棋盘游戏,目标是使红色方块避开障碍到达终点。文章介绍了蒙特卡罗方法的历史和应用,并详细解释了算法的实现过程,特别是如何通过更新value_table来逼近最优解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

同样是来自于Github开源项目的代码,这次尝试分析其Grid World的Monte Carlo算法。
Github地址:https://github.com/rlcode/reinforcement-learning/tree/master/1-grid-world/3-monte-carlo

Grid World

Grid World是该开源项目用于检验算法的一个测试环境,是由n*n个方块组成的棋盘,棋盘上放置红色方块为起点,绿色菱形为障碍,蓝色圆形为终点,红色方块可被控制上下左右移动。算法的目标就是将红色方块以最短的距离(不碰到障碍物)达到蓝色圆形处。其示意图如下:
这里写图片描述

Monte Carlo

以下引用自百度百科:

蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡罗方法就已经存在。1777年,法国数学家布丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。这被认为是蒙特卡罗方法的起源。
蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。蒙特·卡罗方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。

算法实现

本例子的实现代码由两个文件组成:environment.py和mc_agent.py。其中environment.py主要是进行图形绘制及模拟环境反馈,由于此处我们重点分析的是Monte Carlo算法,所以我们主要还是看mc_agent.py文件内的代码。

入口代码

if __name__ == "__main__":
    env = Env()
    agent = MCAgent(actions=list(range(env.n_actions)))

    for episode in range(1000):
        state = env.reset()
        action = agent.get_action(s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番茄大圣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值