我正在尝试 PyBrains 迷宫示例
我的设置是:
envmatrix = [[...]]
env = Maze(envmatrix, (1, 8))
task = MDPMazeTask(env)
table = ActionValueTable(states_nr, actions_nr)
table.initialize(0.)
learner = Q()
agent = LearningAgent(table, learner)
experiment = Experiment(task, agent)
for i in range(1000):
experiment.doInteractions(N)
agent.learn()
agent.reset()
右下角 (1, 8) 为吸收状态
我在 mdp.py 中添加了额外的惩罚状态 (1, 7):
def getReward(self):
""" compute and return the current reward (i.e. corresponding to the last action performed) """
if self.env.goal == self.env.perseus:
self.env.reset()
reward = 1
elif self.env.perseus == (1,7):
reward = -1000
else:
reward = 0
return reward
现在,我不明白,经过 1000 次运行和每次运行期间的 200 次交互后,代理如何认为我的惩罚状态是好的状态(您可以看到正方形是白色的)
我想看看最终运行后每个州和政策的价值。我怎么做?我发现这一行table.params.reshape(81,4).max(1).reshape(9,9)
返回了一些值,但我不确定这些值是否对应于值函数的值