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

一、说明

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

        在有限马尔可夫决策过程 (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.mzph.cn/news/6004.shtml

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

相关文章

内存函数及其模拟实现

身体扛不住的时候&#xff0c;意志会带你杀出重围 文章目录 一、memcpy函数 函数介绍 模拟实现 二、memmove函数 函数介绍 模拟实现 三、memset函数 函数介绍 模拟实现 大家好&#xff0c;我是纪宁。这篇文章给大家介绍C语言中常见的内存处理函数。 一、memcpy函数 …

20.matlab数据分析极限(matlab程序)

1.简述 计算极限 MATLAB提供计算极限的limit函数。在其最基本的形式中&#xff0c;limit函数将表达式作为参数&#xff0c;并在独立变量为零时找到表达式的极限。 例如&#xff0c;要计算函数f(x)(x^3 5)/(x^4 7)的极限&#xff0c;因为x趋向于零。 syms xlimit((x^3 5)/…

day42-servlet下拉查询/单例模式

0目录 1.Servlet实现下拉查询&#xff08;两表&#xff09; 2.单例模式 1.实战 1.1 创建工程&#xff0c;准备环境... 1.2 接口 1.3 重写方法 1.4 servlet 1.5 list.jsp list.jsp详解 2.单例模式 2.1 饿汉模式&#xff1a;在程序加载时直接创建对象&#…

学习系统编程No.32【线程互斥实战】

引言&#xff1a; 北京时间&#xff1a;2023/7/19/15:22&#xff0c;昨天更新完博客&#xff0c;和舍友下了一会棋&#xff0c;快乐就是这么简单&#xff0c;哈哈哈&#xff01;总体来说&#xff0c;摆烂程度得到一定的改善&#xff0c;想要达到以前的水准&#xff0c;需要一定…

UTM 4.3 发布:在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS

UTM 4.3 发布&#xff1a;在 macOS 上优雅的使用 QEMU 虚拟化 Windows、Linux 和 macOS 在 iOS 中虚拟化 Windows、Linux 和 Unix 请访问原文链接&#xff1a;https://sysin.org/blog/utm-4/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xf…

C语言:杨氏矩阵中查找某数(时间复杂度小于O(N))

题目&#xff1a; 有一个数字矩阵&#xff08;二维数组&#xff09;&#xff0c; 矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c; 请编写程序在这样的矩阵中查找某个数字是否存在&#xff0c; 要求&#xff1a;时间复杂度小于O(N)。 思路&#xff1…

《零基础入门学习Python》第057讲:论一只爬虫的自我修养5:正则表达式

如果你在课后有勤加练习&#xff0c;那么你对于字符串的查找应该是已经深恶痛绝了&#xff0c;你发现下载一个网页是很容易的&#xff0c;但是要在网页中查找到你需要的内容&#xff0c;那就是困难的&#xff0c;你发现字符串查找并没有你想象的那么简单&#xff0c;并不是说直…

(已解决)RuntimeError: Java gateway process exited before sending its port number

今天用Pycharm远程使用pysaprk解释器时&#xff0c;跑代码出现了这个错误&#xff1a; RuntimeError: Java gateway process exited before sending its port number 找了好多博客都没解决问题&#xff0c;有说重装spark的&#xff0c;有说本地配Java_home的&#xff0c;后面我…

leetcode 47. 全排列 II

2023.7.23 这道题是上一题全排列 的一个升级版。 唯一区别就是需要增加一个树层去重的操作&#xff0c;因为数组nums中允许有重复的元素了&#xff0c;而上一题没有重复元素。 下面看代码&#xff1a; class Solution { public:vector<vector<int>> ans;vector<…

如何评测一个大语言模型?

编者按&#xff1a;大型语言模型&#xff08;Large language models, LLMs&#xff09;因其在学术界和工业界展现出前所未有的性能而备受青睐。随着 LLMs 在研究和实际应用中被广泛使用&#xff0c;对其进行有效评测变得愈发重要。近期已有多篇论文围绕大模型的评测进行研究&am…

RocketMQ教程-(4)-领域模型-消费者分组ConsumerGroup

定义​ 消费者分组是 Apache RocketMQ 系统中承载多个消费行为一致的消费者的负载均衡分组。 和消费者不同&#xff0c;消费者分组并不是运行实体&#xff0c;而是一个逻辑资源。在 Apache RocketMQ 中&#xff0c;通过消费者分组内初始化多个消费者实现消费性能的水平扩展以…

【云原生】Docker网络及Cgroup资源控制

一、Docker网络 1.docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。…

微信小程序——页面跳转方法和场景用法总结

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

如何理解spring cloud 和 spring cloud Alibaba

Spring Cloud是一个基于Spring Framework构建的用于开发和构建分布式系统的开源框架。它提供了一系列的工具和组件&#xff0c;用于帮助开发者快速构建、部署和管理微服务架构。Spring Cloud提供了包括服务发现、配置管理、负载均衡、断路器等在内的众多功能。 Spring Cloud A…

【JVM】JVM执行流程 JVM类加载 垃圾回收机制等

目录 &#x1f337;1、JVM是什么&#xff1f; &#x1f337;2、JVM的执行流程&#xff08;能够描述数据区5部分&#xff09; &#x1f337;3、JVM类加载过程 &#x1f337;4、双亲委派机制&#xff1a;描述类加载的过程 问题1&#xff1a;类加载器 问题2&#xff1a;什么…

支付宝原生小程序组件与父级传递数据(微信小程序基本一样)

1. 声明组件 在对应的目录下,右击点击 新建小程序,之后会生成对应的文件 2. 子组件 Component({data: {colorList: [#165FF6, #3D16F6,

一元多项式的表示及相加

实现思路&#xff1a; 通过链表实现&#xff0c;会更为简单直观。用链表中的每个结点表示多项式中的每一项&#xff0c;多项式每一项都是由数据域&#xff08;包含系数和指数&#xff09;和指针域构成的&#xff0c;所以在定义表示结点的结构体时&#xff0c;可如下所示进行定义…

FFMPEG android mac 编译 支持DASH/OPENSSL问题汇总

一 下载源码 FFMPEG https://github.com/FFmpeg/FFmpeg/tree/release/4.3 二 编写脚本 支持https 就必须添加open SSL 的编译 具体可以查看我的另一个关于open SSL 的 然后我们配置的一些路径 涉及 ndk 的一定要查看你用的ndk 版本 是否存在这些路径这是第一步 然后如果支…

python爬虫入门

基础回顾 使用函数, 先导入, 直接点方法名使用 import math m math.log10(100) print(m)python 交互模式 input输入示例 age int(input("请输入年龄")) age 1 print(age)if else 的使用 和java一样, 只是不加括号, else if 阉割成了 elif 与或非 java : &am…

No3: 学习过程中故障成长积累

文章目录 故障积累1、编码错误导致 故障积累1、编码错误导致