首页 > 其他分享 >强化学习代码实战-02马尔科夫决策(贝尔曼方程矩阵)

强化学习代码实战-02马尔科夫决策(贝尔曼方程矩阵)

时间:2022-11-08 22:46:44浏览次数:45  
标签:02 0.0 0.5 value 矩阵 马尔科夫 贝尔曼 np

import numpy as np

# 状态转移概率矩阵
P = np.array([
    [0.9, 0.1, 0.0, 0.0, 0.0, 0.0],
    [0.5, 0.0, 0.5, 0.0, 0.0, 0.0],
    [0.0, 0.0, 0.0, 0.6, 0.0, 0.4],
    [0.0, 0.0, 0.0, 0.0, 0.3, 0.7],
    [0.0, 0.2, 0.3, 0.5, 0.0, 0.0],
    [0.0, 0.0, 0.0, 0.0, 0.0, 1.0],
])
# 到达每一个状态的奖励
R = np.array([-1, -2, -2, 10, 1, 0])
P, R

# 给定一个序列,计算回报
def value_by_chain(chain):
    V = 0
    for i, e in enumerate(chain):
        V += 0.5 ** i * R[e]
    return V

# 梯度下降法,迭代计算贝尔曼矩阵
def get_bellman():
    # 初始化values
    value = np.ones(6)
    
    for _ in range(100000):
        for i in range(6):
            # 反复迭代,收敛至贝尔曼方程矩阵
            value[i] = R[i] + 0.5 * P[i].dot(value)
    return value
get_bellman()

 

标签:02,0.0,0.5,value,矩阵,马尔科夫,贝尔曼,np
From: https://www.cnblogs.com/demo-deng/p/16871493.html

相关文章

  • 洛谷题单【入门1】顺序结构-B2002 Hello,World!
    题目描述编写一个能够输出 Hello,World! 的程序,这个程序常常作为一个初学者接触一门新的编程语言所写的第一个程序,也经常用来测试开发、编译环境是否能够正常工作。......
  • 2022.11.8(软件工程y实验一)
    1)回顾你过去将近3年的学习经历当初你报考的时候,是真正喜欢计算机这个专业吗?你现在后悔选择了这个专业吗?你认为你现在最喜欢的领域是什么(可以是计算机的也可以是其它领......
  • 2022.11.8
    ###csp模拟##出错点t1:for(intj=st;j*p[i]<=r;j++){if(vv[j*p[i]-l])continue;//不减l就超了!vv[j*p[i]-l]=p[i];} 没有考虑......
  • The 2020 ICPC Asia Shenyang Regional Programming Contest
    VP题目列表D.JourneytoUn'GoroF.KoboldsandCatacombsG.TheWitchwoodH.TheBoomsdayProjectI.RiseofShadowsJ.DescentofDragonsK.S......
  • 3182-2020-3-3-java
    找首位相同的最短字串看作是找收尾相同的最短子串这怕不是一个二维dp吧设dp[i][j]表示以i字符开始,j字符结束的最长子串长度最直接的,对于字符串中的每一个字符向后遍历......
  • CSP-S 2022 题解
    A假期计划若\(u\)转车不超过\(k\)次可以到达\(v\),相当于\(u\leadstov\)的最短路长度不超过\(k+1\)。对于每个点\(u\),我们首先预处理满足如下条件的点\(v\)......
  • i.MX8MP M核开发环境02-搭建编译、调试、运行环境
    一、VSCODE+IAR集成开发环境(windows)1.1安装VSCODE插件1.2配置相关插件1.3VSCODE其他配置1.5IAR快速修改工程名称二、ARMGCC编译工具(Ubuntu)三、运行、调......
  • #yyds干货盘点#【愚公系列】2022年11月 微信小程序-导航(功能页)
    前言functional-page-navigator组件:是一个非常强大的组件,用于跳转插件的功能页,主要的参数如下:属性类型默认值必填说明最低版本versionstringrelease否......
  • 强化学习代码实战-02马尔科夫决策(蒙特卡洛方法)
    importnumpyasnpimportrandom#状态转移概率矩阵#很显然,状态4(第5行)就是重点了,要进入状态4,只能从状态2,3进入(状态2,3对于完成此项任务价值很大)P=np.array......
  • 【2022-11-08】Git使用
    一、Git介绍#Git简介Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很......