【数学建模】为什么存在最优策略?

news2024/11/24 19:34:31

一、说明

        在进行优化回归过程,首先要看看是否存在最优策略?

        在有限马尔可夫决策过程 (MDP) 中,最优策略被定义为同时最大化所有状态值的策略¹。换句话说,如果存在最优策略,则最大化状态 值的策略与最大化状态 s' 值的策略相同² 但为什么要有这样的政策呢?

        萨顿和巴托关于强化学习的著名入门书¹认为最优策略的存在是理所当然的,而这个问题没有得到解答。我很难相信他们并能够继续阅读!

        在本文中,我将证明有限 MDP ³ 中存在最优策略。

二、符号和定义

2.1 马尔可夫决策过程和政策

        有限 MDP 的特征在于一组有限的状态(通常用曲线 S 表示),每个状态的一组有限动作(通常用曲线 A 表示),以及立即奖励值 和下一个状态 s' 的概率分布,给定当前状态 s 和当前选择的动作 a,表示为 p(s', r|s,a)。

        给定当前状态 s,策略π是状态 s 上可能操作的概率分布,表示为 π(a|s)。 然后,给定一个策略,代理可以在环境中导航(即从一个状态转到另一个状态)并通过每个转换获得奖励。

        我们用大写字母显示随机变量,用小写字母显示它们的值。时间用下标添加到每个变量中。然后,给定策略和 MDP,并给定初始状态(时间 t=1s,对于任何 T > 1,状态、操作和奖励值的联合分布为

  

2.2 值和贝尔曼方程

        给定策略π和折扣因子 0 ≤ γ < 1,每个状态的值定义为

        以及每对状态和操作的值为

        很容易证明状态和动作-状态对的值可以用递归方式编写

        这些方程组被称为贝尔曼方程。

        我们稍后将使用以下事实:

等式 1.作为函数状态操作值的状态值。

  

2.3 最佳策略

        策略π*是最佳策略,当且仅当我们有

        对于任何状态和任何其他策略π。

三、贝尔曼最优性方程

        我们用曲线 S 显示所有可能状态的集合,用曲线 A 显示状态 s 处所有可能动作的集合。我们用δ表示克罗内克三角洲,并用以下定理开始本节。

        证明注释:我们在证明的第一行中使用了方程 1,然后反复使用了状态和动作对的值 (s*, a*) 大于或等于状态 s* 的值的事实。

        定理 1 指出,就策略π而言,只要有一对状态和操作 (s*, a*) 的值大于状态 s* 的值,那么就所有状态而言,就会有另一个策略π优于或等于(就状态值而言)π。因此,如果存在最优策略 π*,则对于任何状态 s,其值应满足

  等式 2.贝尔曼最优方程的紧凑形式。

                

        其中弯曲的 A(s) 代表状态 s 处所有可能动作的集合——人们可以很容易地通过矛盾来证明这个陈述。 使用贝尔曼方程,我们可以将方程2展开为:

等式 3.贝尔曼最优性方程的展开形式。

        这组非线性方程(与状态数一样多)被称为“贝尔曼最优方程”。因此,如果存在最优策略,则其值应满足这组方程⁴。

        因此,要证明最优策略的存在,必须证明以下两个陈述:

  1. 贝尔曼最优方程的集合有解,并且
  2. 其其中一个解决方案的值大于或等于所有状态下其他解决方案的值。

四、解决方案的存在和独特性

在本节中,我们证明了贝尔曼最优方程的集合具有唯一的解。通过这样做,我们同时证明了上述两个陈述。

4.1 贝尔曼最优运算符

        给定一组状态上的值,我们将值的向量定义为

        它只是一个实值向量,其元素等于不同状态的值。然后,我们将“贝尔曼最优算子”T定义为映射

        运算符 T 获取一个值向量并将其映射到另一个值向量。使用这种新符号,很容易看出等式 2 和 3 等价于

等式 4.贝尔曼最优性方程作为贝尔曼最优性算子的不动点。

        这一观察意味着贝尔曼最优性方程的解与贝尔曼最优性算子的不动点s 相同。因此,为了证明贝尔曼最优方程解的存在性和唯一性,可以证明贝尔曼最优性算子具有唯一的不动点。

        为此,我们需要引入另一个概念和另一个定理。

4.2 收缩映射和巴拿赫不动点定理

        考虑一个度量空间 (M,d),即 M 是一个集合,d 是在此集合上定义的度量,用于计算 M ⁵ 中每两个元素的距离。 映射 T:M → M 是一个收缩映射,如果存在 0 ≤ k < 1,对于 M 中的任何 x 和 y,我们有

直观地说,收缩映射使点彼此更近。图 1 显示了在两个点上重复应用收缩映射的图示。

图1.收缩映射图示和巴拿赫不动点定理的陈述

        我们对收缩映射感兴趣的原因是以下著名的定理,称为巴拿赫不动点定理。

证明注释: 定理的证明并不难,但我不把它包括在本文中,因为这个定理是众所周知的,证明可以很容易地在其他地方找到,例如见这里。

该定理背后的整个思想如图 1 所示:映射后所有点彼此靠近,因此,通过重复映射,所有点都收敛到一个点,即 T 的唯一不动点。

因此,为了证明贝尔曼最优性方程解的存在性和唯一性,足以证明存在一个度量,其中贝尔曼最优性算子是收缩映射。

4.3 贝尔曼最优算子是无穷范数中的收缩映射

        对于任何一对值向量 V 和 V',它们的无穷范数定义为

        在本节中,我们要证明贝尔曼最优性算子是这个范数中的收缩映射。为此,我们首先需要以下引理。

证明注释: 虽然引理不是平凡的,但它的证明并不困难,只需要基本的技术。我有一些乐趣证明它,并认为将其证明作为感兴趣的读者的练习可能会很好⁶。

现在,有了引理,我们终于可以进入我们的主定理了。

证明注释: 为了从证明的第 2 行到第 3 行,我们使用引理,从第 4 行转到第 5 行,我们使用绝对值函数的凸性。其余的都很简单。

因此,贝尔曼最优性算子具有唯一的不动点⁷,而贝尔曼最优性方程具有唯一的解。很容易证明,任何关于贝尔曼最优方程解的贪婪策略都具有等于该解的值。因此,存在最优策略!

五、结论

        我们证明了(1)最优策略的值应该满足贝尔曼最优方程。然后,我们证明了(2)贝尔曼最优方程的解是贝尔曼最优性算子的不动点。通过证明(3)贝尔曼最优算子是无穷范数中的收缩映射,并使用(4)巴拿赫不动点定理,我们证明了(5)贝尔曼最优算子具有唯一的不动点。因此,(6)存在同时最大化所有州价值的政策。

参考和引用:

 有限MDP最优策略存在的证明 :

阿里雷扎·莫迪尔沙内奇

Why does the optimal policy exist? | by Alireza Modirshanechi | Towards Data Science

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PyTorch常用代码段汇总

本文是PyTorch常用代码段合集&#xff0c;涵盖基本配置、张量处理、模型定义与操作、数据处理、模型训练与测试等5个方面&#xff0c;还给出了多个值得注意的Tips&#xff0c;内容非常全面。 PyTorch最好的资料是官方文档。本文是PyTorch常用代码段&#xff0c;在参考资料[1](张…

【AutoSAR 架构介绍】

AutoSAR简介 AUTOSAR是Automotive Open System Architecture&#xff08;汽车开放系统架构&#xff09;的首字母缩写&#xff0c;是一家致力于制定汽车电子软件标准的联盟。 AUTOSAR是由全球汽车制造商、部件供应商及其他电子、半导体和软件系统公司联合建立&#xff0c;各成…

ubuntu 静态IP设置

ubuntu 静态IP设置&#xff1a; 1.输入&#xff1a; sudo vim /etc/netplan/01-network-manager-all.yaml Let NetworkManager manage all devices on this system network: ethernets: ens33: dhcp4: no addresses: [192.168.1.119/24] gateway4: 192.168.1.1 nameservers: …

代码随想录额外题目| 数组02 ●189旋转数组 ●724寻找数组中心索引

#189旋转数组 很快写出来但是用了个新数组&#xff0c;不好 void rotate(vector<int>& nums, int k) {vector<int> res(nums.size(),0);for(int i0;i<nums.size();i){int newiik;if(newi>nums.size()-1) newinewi%nums.size();res[newi]nums[i];}numsr…

结构型设计模式之桥接模式【设计模式系列】

系列文章目录 C技能系列 Linux通信架构系列 C高性能优化编程系列 深入理解软件架构设计系列 高级C并发线程编程 设计模式系列 期待你的关注哦&#xff01;&#xff01;&#xff01; 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everythi…

Vue3状态管理库Pinia——核心概念(Store、State、Getter、Action)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

行为型模式 - 迭代器模式

概述 定义&#xff1a; 提供一个对象来顺序访问聚合对象中的一系列数据&#xff0c;而不暴露聚合对象的内部表示。 结构 迭代器模式主要包含以下角色&#xff1a; 抽象聚合&#xff08;Aggregate&#xff09;角色&#xff1a;定义存储、添加、删除聚合元素以及创建迭代器对象…

Mind+积木编程控制小水泵给宠物喂水

前期用scratch&#xff0c;带着小朋友做了大鱼吃小鱼、桌面弹球、小学生计算器3个作品&#xff0c;小朋友收获不小。关键是小家伙感兴趣&#xff0c;做出来后给家人炫耀了一圈后&#xff0c;兴趣大增&#xff0c;嚷嚷着要做更好玩的。 最近&#xff0c;娃妈从抖音上买了个小猫喝…

JMeter 配置环境变量步骤

通过给 JMeter 配置环境变量&#xff0c;可以快捷的打开 JMeter&#xff1a; 打开终端。执行 jmeter。 配置环境变量的方法如下。 Mac 和 Linux 系统 1、在 ~/.bashrc 中加如下内容&#xff1a; export JMETER_HOMEJMeter所在目录 export PATH$JAVA_HOME/bin:$PATH:.:$JME…

pytorch安装GPU版本 (Cuda12.1)教程: Windows、Mac和Linux系统下GPU版PyTorch(CUDA 12.1)快速安装

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

【单调栈 +前缀和】AcWing 4738. 快乐子数组

原题链接 原题链接 相关算法概念介绍 前缀和&#xff08;Prefix Sum&#xff09; 前缀和是指将数组中从开头位置到当前位置的所有元素累加得到的新数组。通常&#xff0c;我们使用一个额外的数组来保存这些累加和&#xff0c;这个数组被称为前缀和数组。对于原始数组A&…

Appium+python自动化(十七)- - Monkey

1、Monkey简介 在Android的官方自动化测试领域有一只非常著名的“猴子”叫Monkey&#xff0c;这只“猴子”一旦启动&#xff0c;就会让被测的Android应用程序像猴子一样活蹦乱跳&#xff0c;到处乱跑。人们常用这只“猴子”来对被测程序进行压力测试&#xff0c;检查和评估被测…

快速排序QuickSort

目录 1.Hoare法 2.挖坑法 3.前后指针法 4.快排分治 5.关于快排 6.关于快排的优化 7.总体实现 总结&#xff1a; 快速排序是Hoare于1962年提出的一种二叉树结构的交换排序方法 其基本思想为&#xff1a;任取待排序元素序列中的某元素作为基准值&#xff0c;按照该排序码…

《5.linux驱动开发-第2部分-5.2.字符设备驱动基础》5.2.5.用开发板来调试模块

1. 首先 开发板 可以运行 Uboot 2. Ubuntu 安装好了 t f t p(启动内核zImage) 和 NFS &#xff08;挂载 根文件系统&#xff09; 3. 提前 制作好了 根文件系统&#xff08;2022年做的&#xff0c;早就忘记 怎么做了&#xff09; 4.内核 需要设置 nfs 作为根文件系统 启动…

聊聊spring-cloud的负载均衡

聊聊spring-cloud的负载均衡 1. 选择合适的负载均衡算法2. 合理设置超时时间3. 缓存服务实例列表4. 使用断路器5. 使用缓存Spring Cloud负载均衡组件对比RibbonLoadBalancerWebClient对比 总结 在微服务架构中&#xff0c;负载均衡是非常重要的一个环节&#xff0c;可以有效地提…

ES6基础知识三:对象新增了哪些扩展?

一、属性的简写 ES6中&#xff0c;当对象键名与对应值名相等的时候&#xff0c;可以进行简写 const baz {foo:foo}// 等同于 const baz {foo}方法也能够进行简写 const o {method() {return "Hello!";} };// 等同于const o {method: function() {return "…

C# List 详解四

目录 18.FindLast(Predicate) 19.FindLastIndex(Int32, Int32, Predicate) 20.FindLastIndex(Int32, Predicate) 21.FindLastIndex(Predicate) 22.ForEach(Action) 23.GetEnumerator() 24.GetHashCode() 25.GetRange(Int32, Int32) C#…

协作实现时序数据高效流转链路 | 7.20 IoTDB X RocketMQ 技术沙龙线上直播回顾

7 月 20 日&#xff0c;IoTDB X RocketMQ 技术沙龙线上直播圆满结束。工业物联网时序数据库研发商天谋科技、云原生事件流平台 Apache RocketMQ 社区的四位技术专家&#xff0c;针对实时数据接入、多样数据处理与系统的高扩展、高可靠特性的数据流转处理平台实现难点&#xff0…

计算机服务器被devos勒索病毒攻击怎么解决,数据库解密恢复方式

科学技术的发展为企业的生产运行提供了极大的便利性&#xff0c;但随之而来的网络安全也应该引起人们的重视。近期&#xff0c;我们收到很多企业的求助&#xff0c;企业的计算机服务器内的数据库被devos后缀勒索病毒攻击&#xff0c;导致企业许多工作无法正常运行。Devos后缀勒…

89、简述RabbitMQ的架构设计

简述RabbitMQ的架构设计 BrokerQueueExchangeRoutingKeyBinding信道架构设计图 Broker RabbitMQ的服务节点 Queue 队列&#xff0c;是RabbitMQ的内部对象&#xff0c;用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列&#xff0c;消费者从队列中获取消息…