强化学习中策略的迭代

一、策略迭代

        一旦使用vπ改善了策略π,产生了更好的策略π0,我们就可以计算vπ0并再次对其进行改进,产生更好的π00。因此,我们可以获得一系列单调改善的策略和值函数:

        其中E−→表示策略评估,I−→表示策略改进。每个策略都保证比前一个策略有严格改进(除非它已经是最佳的)。因为有限MDP只有有限数量的策略,所以这个过程必须在有限次迭代中收敛到最优策略和最优值函数。

        这种方法称为策略迭代。完整的算法如图1所示。请注意,每次策略评估本身都是迭代计算,都是从上一个策略的值函数开始的。这通常会导致策略评估的收敛速度大大提高(可能是因为值函数从一个策略到下一个策略变化不大)。

        这种寻找最优策略的方法称为策略迭代。完整的算法如图1所示。请注意,每次策略评估本身都是迭代计算,都是从上一个策略的值函数开始的。这通常会导致策略评估的收敛速度大大提高(可能是因为值函数从一个策略到下一个策略变化不大)。

        策略迭代通常在出人意料的少量迭代后就能收敛。网格世界的示例说明了这一点。底部左边的图显示了等概率随机策略的值函数,底部右边的图显示了针对该值函数的贪婪策略。策略改进理论保证了我们这些策略优于原始的随机策略。然而,在这种情况下,这些策略不仅是更好的,而且是最佳的,以最少的步骤到达终止状态。在这个例子中,策略迭代只需一次迭代就能找到最优策略。

图1

图1中,针对v∗的政策迭代(使用迭代策略评估)算法存在一个不易察觉的错误,即如果策略在两个或更多个同样好的策略之间持续切换,该算法可能永远无法终止。可以通过添加额外的标志来修复此错误,但这会使伪代码变得非常难看。

二、典型示例

        Jack经营着一家全国范围的汽车租赁公司的两个门店。每天,每个门店都会有一定数量的顾客前来租车。如果Jack手头有可用的汽车,他会将车出租出去,并获得该全国性公司提供的10美元信用。如果他在该门店没有汽车可用,那么这笔生意就泡汤了。汽车在归还后的第二天就可以出租。为了确保汽车在需要的地方可用,Jack可以在一晚之间将汽车从这两个地点之间进行调换,每次移动的费用为2美元。我们假设每个地点请求和归还的汽车数量是泊松随机变量,这意味着其概率是 ,其中λ是期望值。假设第一个和第二个门店的请求期望值λ分别为3和4,归还期望值分别为3和2。为了简化问题,我们假设每个地点最多只能停放20辆汽车(超出数量的汽车将被退还给全国性公司,从而从问题中消失),并且每晚最多可以从一个地点移动5辆汽车到另一个地点。我们将贴现率γ设置为0.9,并将此问题表述为一个持续的有限MDP,其中时间步长为天,状态为每天结束时每个地点的汽车数量,行动是在一夜之间两个地点之间移动的汽车数量的净差额。图2显示了从永不移动任何汽车的策略开始的政策迭代找到的策略序列。

图2

        图2显示了政策迭代在Jack的汽车租赁问题上找到的政策序列,以及最终的状态值函数。前五幅图展示了每天结束时每个地点的汽车数量,从第一个地点到第二个地点的汽车数量(负数表示从第二个地点转移到第一个地点的汽车数量)。每个连续的政策都是对前一个政策的严格改进,最后一个政策是最佳的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/182059.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业通配符SSL证书的特点

企业通配符SSL证书是一种数字证书,其可以用于保护多个企业网站,对网站传输信息进行加密服务。这种证书通常适用于拥有多个子域名或二级域名的企事业单位。今天就随SSL盾小编了解企业通配符SSL证书的相关信息。 1. 保护所有域名和子域名:企业通…

linux 启动引导找不到内核修复

问题现象 选中内核按e 看到引导内核信息 挂载ISO映像进入救援模式,查看boot目录 与 引导文件内容不一致 再次重启引导系统,按e 修改内核引导项与boot目录一致, crtl - x 继续执行 登录系统 mount /dev/sdm1 /mnt 挂载vfat 引导目录 纠…

CorelDRAW2024好不好用?怎么下载

cdr是CorelDRAW的简称,一款专注排版和矢量图形编辑的平面设计软件。这款软件的设计界面精微细致、简洁易懂。功能尤其强大,图标设计,印刷排版,服装设计等都可以胜任。还有多种模板使得设计相当的轻松,今天简单介绍一下…

C语言查看各数据类型所占大小

编译器&#xff1a;VC2010 #include<stdio.h> int main() {printf("%d\n",sizeof(char));printf("%d\n",sizeof(short));printf("%d\n",sizeof(int));printf("%d\n",sizeof(long));printf("%d\n",sizeof(long long))…

【Python语言】集合的使用方法总结

目录 1、集合基本知识&#xff1a; 2、定义 2.1 定义集合变量 2.2 定义空集合 3、集合的常用操作 3.1 定义集合 3.2 添加新元素 3.3 移除元素 3.4 从集合中随机取出元素 3.5 清空集合 3.6 取两个集合的差集 3.7 消除两个集合的差集 3.8 两个集合合并 3.9 统计集合…

软件外包开发质量控制方法

在软件外包开发项目中&#xff0c;质量控制是确保交付的软件符合预期质量标准的关键步骤。以下是一些常用的软件外包开发质量控制方法&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 需求明确&#x…

【第28例】IPD体系进阶 | 需求管理:需求实现过程

目录 简介 内容详解 CSDN学院相关推荐 作者简介 简介 继续 IPD 体系中的需求管理相关的专题。 先来看看整个需求管理涉及的过程内容: 需求管理流程主要包含五个阶段: 需求收集; 需求分析; 需求分发/分配;

构建数字孪生的四大挑战

如果不能解决由数字孪生带来的开发难题&#xff0c;那么企业就无法享受这种技术便利。 数字孪生已经成为企业当前面对的一大机遇&#xff0c;其核心在于利用虚拟副本中的分析数据对未来业务事件开展预测。这不仅能够大大降低决策难度&#xff0c;同时也有助于提升决策效果。 然…

“利用义乌购API揭秘跨境贸易商机:一键获取海量优质商品列表!“

义乌购API可以根据关键词取商品列表。通过调用义乌购API的item_search接口&#xff0c;传入关键词参数&#xff0c;可以获取到符合该关键词的商品列表。 以下是使用义乌购API根据关键词取商品列表的步骤&#xff1a; 注册义乌购开发者账号并获取授权码和密钥。在代码中导入义…

redis教程 二 redis客户端Jedis使用

文章目录 Redis的Java客户端-JedisJedis快速入门创建工程&#xff1a;引入依赖&#xff1a;建立连接测试&#xff1a;释放资源Jedis连接池创建Jedis的连接池改造原始代码 Redis的Java客户端-SpringDataRedis快速入门导入pom坐标配置文件测试代码 数据序列化器StringRedisTempla…

【CIO人物展】黄淮学院副CIO周鹏:构建数智化平台赋能学校高质量发展

周鹏 本文由黄淮学院副CIO周鹏投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 黄淮学院是2004年经教育部批准成立的一所省属全日制普通本科高校。学校位于素有“豫州之腹地、天下之最中”之美…

【Python】批量下载素材酷视频资源

【需求】 做视频精彩需要用到梗图视频等,但是素材酷上面的视频没有搜索功能,每次用起来还要去下载也很麻烦,下载只能一个一个下载也很麻烦,下要搞一个能够批量下载的功能,然后把下载的资源全部放进万兴喵影编辑器的云空间,这样就可以做到随做随查随用了。 【效果】 目…

springboot 连接西门子plc,读取对应的值,并修改到数据库

springboot 连接西门子plc&#xff0c;读取对应的值&#xff0c;并修改到数据库 需求&#xff1a;服务器连接plc&#xff0c;读取数据&#xff0c;之后写入到数据库&#xff0c;但是要求速度很快&#xff0c;而且plc中命令对应的值是不断变化的&#xff0c;这个变化&#xff0c…

深度学习框架TensorFlow.NET环境搭建1(C#)

测试环境 visual studio 2017 window10 64位 测试步骤如下&#xff1a; 1 新建.net framework控制台项目&#xff0c;工程名称为TensorFlowNetDemo&#xff0c;.net framework的版本选4.7.2&#xff0c;如下图&#xff1a; 2 分别安装TensorFlow.NET包(先装)和SciSharp.…

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite&#xff08;sql&#xff09;是一款开源轻量级的数据库软件&#xff0c;不需要server&#xff0c;可以集成在其他软件中&#xff0c;非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite&#xff08;Qt自带驱动&#xff09;。 二、下载和配置 2.1 SQLite下载…

Docker Compose安装milvus向量数据库单机版-milvus基本操作

目录 安装Ubuntu 22.04 LTS在power shell启动milvus容器安装docker desktop下载yaml文件启动milvus容器Milvus管理软件Attu python连接milvus配置下载wget示例导入必要的模块和类与Milvus数据库建立连接创建名为"hello_milvus"的Milvus数据表插入数据创建索引基于向量…

7.spark sql编程

概述 spark 版本为 3.2.4&#xff0c;注意 RDD 转 DataFrame 的代码出现的问题及解决方案 本文目标如下&#xff1a; RDD ,Datasets,DataFrames 之间的区别入门 SparkSession创建 DataFramesDataFrame 操作编程方式运行 sql 查询创建 DatasetsDataFrames 与 RDDs 互相转换 使用…

动态规划(Dynamic Programming)—— Java解释

一、基本思想 动态规划(Dynamic Programming)算法的核心思想是&#xff1a;将大问题划分为小问题进行解决&#xff0c;并将子问题的求解结果存储起来避免重复求解&#xff0c;从而一步步获取最优解的处理算法。 动态规划算法与分治算法类似&#xff0c;其基本思想也是将待求解…

计算机毕设 基于大数据的社交平台数据爬虫舆情分析可视化系统

文章目录 0 前言1 课题背景2 实现效果**实现功能****可视化统计****web模块界面展示**3 LDA模型 4 情感分析方法**预处理**特征提取特征选择分类器选择实验 5 部分核心代码6 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕…

在 Python 中使用 Selenium 按文本查找元素

我们将通过示例介绍在Python中使用selenium通过文本查找元素的方法。 在 Python 中使用 Selenium 按文本查找元素 软件测试是检查应用程序是否满足用户需求的技术。 该技术有助于使应用程序成为无错误的应用程序。 软件测试可以手动完成&#xff0c;也可以通过某些软件完成。…