强化学习原理python篇03——贝尔曼最优公式

本文介绍了使用Python实现强化学习中贝尔曼最优公式的方法,通过网格世界案例详细展示了如何求解状态值和行动值,以及利用Contractionmappingtheorem进行迭代优化策略的过程。最终通过迭代100次得到最优策略和状态值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章全篇参考赵世钰老师的教材 Mathmatical-Foundation-of-Reinforcement-Learning Optimal State Values and Bellman Optimality Equation章节,请各位结合阅读,本合集只专注于数学概念的代码实现。

例子

在这里插入图片描述
对于网格世界这样一个例子,其贝尔曼公式中的R和P为

R = np.array([-1, 1, 1, 1]).reshape(-1, 1)
P = np.array(
    [
        [0, 1, 0, 0],
        [0, 0, 0, 1],
        [0, 0, 0, 1],
        [0, 0, 0, 1],
    ])

求解状态值

给定 γ = 0.9 \gamma=0.9 γ=0.9,利用上一节的解析解求解公式得到状态值

closed_form_solution(R, P, 0.9)
array([[ 8.],
       [10.],
       [10.],
       [10.]])

求解行动值

q π ( s 1 ; a 1 ) = − 1 + γ v π ( s 1 ) = 6.2 q π ( s 1 ; a 2 ) = − 1 + γ v π ( s 2 ) = 8 q π ( s 1 ; a 3 ) = 0 + γ v π ( s 3 ) = 9 q π ( s 1 ; a 4 ) = − 1 + γ v π ( s 1 ) = 6.2 q π ( s 1 ; a 5 ) = 0 + γ v π ( s 1 ) = 7.2 \begin{align*} q_π(s_1; a_1) =& −1 + γv_π(s_1) = 6.2\\ q_π(s_1; a_2) =& −1 + γv_π(s_2) = 8\\ q_π(s_1; a_3) =& 0 + γv_π(s_3) = 9\\ q_π(s_1; a_4) =& −1 + γv_π(s_1) = 6.2\\ q_π(s_1; a_5) =& 0 + γv_π(s_1) = 7.2 \end{align*} qπ(s1;a1)=qπ(s1;a2)=qπ(s1;a3)=qπ(s1;a4)=qπ(s1;a5)=1+γvπ(s1)=6.21+γvπ(s2)=80+γvπ(s3)=91+γvπ(s1)=6.20+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值