强化学习实践一 迭代法评估44方格世界下的随机策略
本篇用代码演示《强化学习》第三讲中的示例——方格世界,即用动态规划算法通过迭代计算来评估44方格世界中的一个随机策略。
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File : RL_practice1.py
@Time : 2021/11/11 21:30:11
@Version : 1.0
@Contact : 841121040@qq.com
@License : (C)Copyright 2017-2018, Liugroup-NLPR-CASIA
@Desc : None
'''
# here put the import lib
#强化学习实践一 迭代法评估4*4方格世界下的随机策略
#本篇用代码演示《强化学习》第三讲中的示例——方格世界,即用动态规划算法通过迭代计算来评估4*4方格世界中的一个随机策略。
"""
状态空间 S:[公式]为非终止状态;[公式],[公式]终止状态,图中灰色方格所示两个位置;
行为空间 A:{n, e, s, w} 对于任何非终止状态可以有向北、东、南、西移动四个行为;
转移概率 P:任何试图离开方格世界的动作其位置将不会发生改变,其余条件下将100%地转移到动作指向的位置;
即时奖励 R:任何在非终止状态间的转移得到的即时奖励均为-1,进入终止状态即时奖励为0;
衰减系数 γ:1;
当前策略π:个体采用随机行动策略,在任何一个非终止状态下有均等的几率往任意可能的方向移动,即π(n|•) = π(e|•) = π(s|•) = π(w|•) = 1/4。
问题:评估在这个方格世界里给定的策略。
该问题等同于:求解该方格世界在给定策略下的(状态)价值函数,也就是求解在给定策略下,该方格世界里每一个状态的价值。
"""
states = [i for i in range(16)] #0-15 #声明状态
values = [0 for _ in range(16)] #声明状态价值,并初始化各状态价值为0
#print(values)
actions = ["n", "e", "s", "w"] #声明行为空间 北 东 南 西
ds_actions = {
"n":-4,"e":1,"s":4,"w":-1