强化学习中状态价值函数和动作价值函数的理解

news/2024/5/19 1:39:53 标签: 强化学习

考虑这样的一个选路径问题

 从s点出发,有0.6的概率到a点,0.4的概率到b点,sa路径的回报是1,sb路径的回报是2,后面同理,箭头下面的选择这条路的概率,上面的数字是这条路的回报。目的地是g点。

从s到g一共有3中方式,这三种方式,即在策略\pi下(策略指的就是不同动作的概率,强化学习过程就是让能获得更大奖励的动作的概率增大)的三个轨迹,这三个轨迹的回报分别是6、10、6。

轨迹的回报期望即0.6*6+0.4*0.3*10+0.4*0.7*6=6.48(图片里漏了个6),即为状态s的价值函数v(s)。

同理v(a)=5、v(b)=5.2

状态价值函数的表达式为

状态s可以采取两个动作,动作a1往a走,动作a2往b走,

动作价值函数Q(s, a1) = 选择该动作得到的回报 + 该动作到达的下一个状态的状态价值函数

即Q(s, a1)=1+v(a)=6    Q(s, a2)=2+v(b)=7.2

s的价值函数与a1、a2两个动作的动作价值函数的关系如下:
状态价值函数 = 动作1概率 * 动作1的动作价值函数 + 动作2概率 * 动作2的动作价值函数 + 动作i概率 * 动作i的动作价值函数

v(s) = 0.6 * 6 + 0.4 * 7.2 = 6.48


http://www.niftyadmin.cn/n/1685302.html

相关文章

蓝桥杯-【安慰奶牛】-最小生成树问题-【C++】

安慰奶牛 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路。道路被用来连接N个牧场,牧场被连续地编号为1到N。每一个牧场都是一个奶牛的家。FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性。你…

python opencv 直线检测

先创建一个“点”类和一个“直线”类 class Endpoint:def __init__(self, x0.0, y0.0):self.x xself.y y from endpoint import Endpointclass Line:def __init__(self, p1, p2):self.p1 p1self.p2 p2self.k (p1.y - p2.y) / (p1.x - p2.x)self.b p1.y - self.k * p1.x…

内点法(interior point method)求解二次规划,附python代码

内点法介绍这篇博文写的很好https://blog.csdn.net/dymodi/article/details/46441783,在这篇文章的基础上,本文给出障碍函数法代码和一个算例。 障碍函数内点法的主要思想是:把不等式约束放进目标函数里。以下面的问题为例 不等式约束放进目…

python多线程数据交互

一个服务器和一个客户端进行数据通信,服务器对客户端发送过来的数据进行处理计算,将计算结果返还给客户端。客户端和服务器使用udp通信。 客户端文件 import socket import timeHOST 127.0.0.1 PORT 5118 s socket.socket(socket.AF_INET, socket.S…

DNS、DHCP专业解释、dnsmasq

1、概述 域名系统(Domain Name System, DNS)是因特网的一项基础服务。它作为将域名和IP 地址相互映射的一个分布式数据库,能够使人通过域名来更方便地访问互联网中的主机。 动态主机配置协议(Dynamic Host Configurat…

TCP/IP 网络编程(五)

** 一、TCP/IP 协议族常用协议 ** 1、IP 定义了 TCP/IP 的地址,寻址方法,以及路由规则。 IP 地址由两部分组成,即网络号和主机号。故一个完整的 IPv4 地址往往表示为 192.168.0.1/24 或 192.168.0.1/255.255.255.0 这种形式。 2、IPv6 提供…

通过QGridLayout在Widget中嵌套Widget

创建一个layout,layout可以嵌套layout,可以设置widget在layout中的尺寸大小,把里层widget放进layout,再把layout放进外层的widget dxfWnd new DxfWnd(ui->centralwidget); // 自定义的窗口,继承自QWidgetlayout…

继承QGraphicsObject自定义图元

QGraphicsObject继承自 QObject 和 QGraphicsItem,使用 QObject 的信号/槽和属性机制扩展了 QGraphicsItem。 创建自定义图元时,最重要的是重写 boundingRect() 和 paint函数 创建自定义图元的头文件 #ifndef MYGRAPHICSOBJECT_H #define MYGRAPHICSO…