第八篇:强化学习值迭代及代码实现

news/2025/2/1 23:48:00/

你好,我是郭震(zhenguo)

前几天我们学习强化学习策略迭代,今天,强化学习第8篇:强化学习值迭代

值迭代是强化学习另一种求解方法,用于找到马尔可夫决策过程(MDP)中的最优值函数。

值迭代

值迭代可以总结为如下几点:

  • 值迭代通过不断迭代更新值函数来逼近最优值函数,从而确定最优策略。

  • 值迭代的关键是在每次迭代中更新值函数。

  • 对于每个状态,通过考虑所有可能的动作和下一个状态,选择能够使值最大化的动作,并计算更新后的值函数。

  • 迭代更新值函数,更新公式也是贝尔曼方程,和策略迭代值函数更新公式一样。

  • 值迭代需要进行多次迭代,直到值函数收敛为止。收敛时,值函数不再发生显著变化。

可以看到:值迭代是比策略迭代更为简单的一种迭代方法。

代码实现

值迭代,求迷宫问题,完整代码。

只使用numpy

import numpy as np

定义迷宫地图,在迷宫地图中,不同的数字代表不同的含义:

  • 0:表示可以通过的空格,即可行走的路径。

  • -1:表示墙壁或障碍物,表示不能通过的障碍物区域。

  • 1:表示目标位置,即终点位置。

其中,0代表可行走的路径,-1代表障碍物或墙壁,1代表迷宫的终点位置。这些数值用于描述迷宫的不同区域,以帮助算法进行路径搜索和价值计算。如下所示:

2858824ed9ac59c541813316e0e3804d.png
# 定义迷宫地图
maze = np.array([[0, 0, 0, 0],[0, -1, 0, -1],[0, 0, 0, 0],[-1, 0, -1, 1]
])

定义参数

# 定义参数
gamma = 0.9  # 折扣因子
epsilon = 1e-6  # 收敛阈值

初始值函数

# 初始化值函数
V = np.zeros(maze.shape)

进行值迭代

# 进行值迭代
while True:delta = 0for i in range(maze.shape[0]):for j in range(maze.shape[1]):if maze[i, j] == -1 or maze[i, j] == 1:continue# 计算当前状态的最大价值max_value = float("-inf")for action in [(0, 1), (0, -1), (1, 0), (-1, 0)]:ni, nj = i + action[0], j + action[1]if ni >= 0 and ni < maze.shape[0] and nj >= 0 and nj < maze.shape[1] and maze[ni, nj] != -1:max_value = max(max_value, gamma * V[ni, nj])# 更新值函数new_value = maze[i, j] + max_valuedelta = max(delta, abs(new_value - V[i, j]))V[i, j] = new_valueif delta < epsilon:break# 打印最优值函数
print("最优值函数:")
print(V)

这里面的核心代码就是求解贝尔曼方程:

d8dc27c9e96d90ebd2ad4ef3376f89f6.png

其中, 表示状态  的值函数,即按照某个策略获得的预期回报。 表示选择能够使得值最大化的动作 。 表示对所有可能的下一个状态  和奖励  进行求和。 表示在状态  下执行动作  后转移到状态  且获得奖励  的概率。 是折扣因子,用于平衡当前和未来的奖励。

在上述代码中,首先定义了迷宫地图,并设置了折扣因子和收敛阈值。然后,通过值迭代算法逐步更新值函数,直到值函数的变化小于收敛阈值为止。最后,打印出最优的值函数。

感谢你的点赞和转发,让我更新更有动力


http://www.ppmy.cn/news/237118.html

相关文章

MegEngine 使用小技巧:用 mperf 进行安卓 opencl 算子的 roofline 分析

前言 roofline 分析是一种简单评估当前计算任务对当前平台计算/访存能力的利用情况的方法&#xff0c;可以帮助分析算子的优化方向和优化潜力。mperf 实现了安卓 mali/adreno 两种 gpu 平台的 roofline 分析能力&#xff0c;下面以 mali 平台为例&#xff0c;简单介绍一下操作步…

我们世界中的10个算法

下面的图表展示了我们日常生活中最常用的算法。它们被应用在互联网搜索引擎、社交网络、WiFi、手机甚至卫星等各个领域。 1.排序算法 排序算法用于将一组数据按照特定的顺序进行排列。它们被广泛应用于各种场景&#xff0c;如搜索引擎中的搜索结果排序、数据分析中的数据整理和…

为了搞懂ERP,我连问 ChatGPT 30个问题,通透!

我对ERP有很多的疑问&#xff0c;这次向ChatGPT请教&#xff0c;连问30个问题&#xff0c;瞬间觉得通透了很多&#xff0c;以下是我的问题和ChatGPT的回复&#xff0c;分为概念篇、架构篇和生态篇三部分&#xff0c;希望能带给你新的启示。 一、概念篇 1、ERP是什么&#xff1f…

Mac mini M1 2K显示器

近期入手了mac mini m1&#xff0c;显示器是小米 27寸 165hz&#xff0c; 本以为mac mini不支持2k&#xff0c;不想到接入后完美支持&#xff5e; 甚至只用了HDMI 1.4的线缆 微软无线键鼠也完美支持&#xff0c;赞&#xff5e; 减少空间占用的技巧&#xff1a; mac app都是…

MacBook Pro(13 英寸,2011 年末)A1278 老机器换了 好几个版本的系统,一直没有隔空投送,请高手指点!

MacBook Pro&#xff08;13 英寸&#xff0c;2011 年末&#xff09;A1278 老机器换了 好几个版本的系统&#xff0c;之前OS X 10.11 El Capitan没太注意&#xff0c;换Mac OS High Sierra后&#xff0c;有隔空投送的界面&#xff0c;但一直找不到iphone或ipad&#xff0c;觉得可…

宇视10寸人脸门禁一体机全局接线图

配置说明&#xff1a; 10寸人脸门禁一体机接口图 门禁一体机室内机门禁电源控制器EG系列IC/身份证读卡器接线图 门禁一体机室内机EG系列IC/身份证读卡器接线图 门禁一体机室内机EC系列IC/身份证阅读器接线图 门禁一体机安全模块室内机EG系列IC/身份证读卡器接线图 双门禁一体机…

MacBook Air M2无需虚拟屏启用Hidpi+任意缩放(22年9月)

1、下载BetterDisplay最新版 Release v1.3.0-beta waydabber/BetterDisplay GitHub 选择最下面的DMG文件下载 2、启动&#xff0c;选择最下面的设置点开 3、在General中选择自启动&#xff08;后面成功后其实可以再取消掉&#xff09;&#xff0c;在Display一项中把这几项全…

2010 27寸 imac 升级固态_新iMac拆解证实 自行加装SSD难如登天

苹果前天发布的一系列新机中&#xff0c;一体机iMac虽然没有在外观设计上进行修改&#xff0c;但无论整体配置还是具体细节都实现了全面升级。其中值得注意的是&#xff0c;27寸iMac首次允许用户定制SSD固态硬盘HDD机械硬盘的双硬盘配置。 256GB SSD做系统盘&#xff0c;1TB HD…