注册 登录
编程论坛 Python论坛

如何用python实现可列折扣马尔科夫决策过程实例的构造

王晓林 发布于 2023-03-01 12:10, 640 次点击
最近在最近在学习马尔科夫决策过程,想要找一些离散折扣马尔科夫决策过程,状态集可列,行动集有限,报酬函数有界的实例,尝试过搜论文或者直接搜,找到的好像都不是很理想。请问大家有没有什么好的方法?
或者如果要自己想要写算法构造这样的实例的话应该如何去构造呢?
还有想要学习这方面的python编程的话,各位有没有比较推荐的教材?
看了蛮多篇文章,但是自己开始写就有一种无从下手的感觉TAT
谢谢大家Orz
2 回复
#2
东海ECS2023-03-01 19:12
以下是代码:
程序代码:

import numpy as np

# 初始化状态转移矩阵
transition_matrix = np.array([[0.7, 0.3],
                             [0.4, 0.6]])

# 初始化折扣矩阵
discount_matrix = np.array([[0.1, 0.2],
                            [0.3, 0.4]])

# 初始化状态值函数
state_value_function = np.array([[0, 0],
                                 [0, 0]])

# 迭代更新状态值函数
while True:
    new_state_value_function = np.zeros((2, 2))
    for i in range(2):
        for j in range(2):
            new_state_value_function[i, j] = discount_matrix[i, j] + np.sum(transition_matrix[i, j] * state_value_function[i, :])
    if np.sum(np.abs(state_value_function - new_state_value_function)) < 1e-4:
        break
    state_value_function = new_state_value_function

# 输出状态值函数
print(state_value_function)

希望对你有帮助!
#3
王晓林2023-03-06 10:06
谢谢您,我让孩子看看,希望有用
1