dqn走迷宫 matlab_Dqn学习(1)迷宫代码注释,DQN,注解,maze

这篇博客介绍了基于MATLAB的DQN算法在走迷宫问题上的应用。作者通过注释代码详细解释了如何创建迷宫、设置奖励系统以及使用Tkinter进行图形界面展示。博客内容包括Tkinter模块的使用、数组概念、迷宫环境的表示以及DQN代理的交互。此外,还讨论了不同类型的布局管理器在Tkinter中的应用。
摘要由CSDN通过智能技术生成

学习自莫烦python(b站搜得到),可以自行去GitHub去找源代码,这个只是用来方便我分类管理自己的博客才公开的。

sys.version_info.major :#查看版本号

import Tkinter as tk#重命名Tkinter,且后面调用时只能使用重命名后的名字

#注:Tkinter 是使用 python 进行窗口视窗设计的模块

NumPy是Python的一种开源的数值计算扩展

def=define 定义一个函数

init

# python中类的专有函数:构造函数,生成对象时调用

super(Maze, self).

init

() 调用super函数,解决构造方法中的初始值无法继承的问题

len() :返回对象(列表,数组,字符串)的长度或者项目个数;

canvas属于Tkinter模块下,函数意义是生成一个画布

bg=background 指定背景颜色

geometry属于Tkinter模块下,函数意义是指定主框体大小;

format函数格式化函数

range函数

函数原型:range(start, end, step)

注:start是可取的,end是不可取

x0, y0, x1, y1 = c, 0, c, MAZE_H * UNIT

self.canvas.create_line(x0, y0, x1, y1)

这两行代码主要实现的是画出一条直线,后面

()

中给的参数就是线段两点的坐标,两点确定一条直线吗。此处给的就是从坐标(c,0)到(c,MAZE_H * UNIT)画一条直线。

np.array=numpy.array 创建一个多维数组

python里一般数组用list就可以代替

list与array的区别:

1.list是python的内置数据类型,数组需要导入标准库才行,不属于内置类型。

2.list中的数据类不必相同的,而array的中的类型必须全部相同

Red rectangle: explorer.

Black rectangles: hells [reward = -1].

hell1[(85,45),(115,75)],hell2[(45,85),(75,115)]

Yellow bin circle: paradise [reward = +1].

reward[(85,85),(115,115)]

All other states: ground [reward = 0].

hell译为地狱,此处应该是陷阱的意思,对应Black rectangles

paradise译为天堂,此处应该是期望,对应Yellow bin circle

observation[(5,5),(35,35)]

tkinter 的布局管理 (被称作 layout managers 或 geometry managers).

tkinter 有三种布局管理方式: 1.pack 2.grid 3.place

x.pack将x添加进画布

update()方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中

X.update(key/value)

update() 方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中。

d.update(e)

将e中键-值对添加到字典d中,e可能是字典,也可能是键-值对序列,无返回值。

time.sleep(t)让程序休眠t秒,为了使多次移动变得可视

canvas.delete(x)删除画布中的x

canvas.coords获取某个对象在画布的坐标,返回一个数组(两个坐标,左上角的坐标和右下角的两个坐标)

move移动一个坐标,

move(x,x1,y1),其中x为所要移动的对象,x1为横坐标移动到x1,y1为纵坐标移动到y1

elif x in y 即x是否在y中

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MATLAB强化学习DQN(深度Q网络)代码是一种实现深度强化学习的方法,通常用于解决控制问题和决策问题。DQN通过结合深度神经网络和Q学习算法来实现对环境的学习和决策。以下是MATLAB中实现DQN算法的简要代码示例: 首先,需要定义一个深度神经网络模型来拟合Q值函数。可以使用MATLAB的Neural Network Toolbox来构建一个适合于解决强化学习问题的神经网络模型,例如多层感知器(MLP)或卷积神经网络(CNN)。 其次,需要定义Q学习算法的参数,包括学习率、贪心策略的选择、回放缓冲区的大小等。 然后,需要定义DQN算法的训练过程。在每一步中,Agent(智能体)根据当前的状态选择动作,并观察环境返回的奖励和下一个状态。Agent将这些信息存储到回放缓冲区中,并周期性地从中随机抽样一批数据用于训练神经网络。 最后,可以使用训练好的DQN模型来进行决策。Agent在每个时间步根据当前状态使用训练好的神经网络模型来选择动作,并与环境交互。 需要注意的是,以上只是一个简要的示例,实际的DQN代码可能还涉及到一些具体问题的处理,比如环境的建模、奖励函数的设计、超参数的调优等。另外,为了更好地理解DQN算法的原理和代码实现,建议阅读相关的文献和资料,例如DeepMind团队的原始论文《Playing Atari with Deep Reinforcement Learning》以及MATLAB官方提供的强化学习工具箱的文档和示例代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值