本文尝试解析Python实现的Policy Iteration算法,代码来自Github某大神的库–
Github地址。其实现代码解决了下图中方块行走的问题,即控制红色方块,走到蓝色球的位置上算通关,碰到绿色三角要减分。
算法描述
Policy Iteration直译成中文是策略迭代,言下之意就是通过不停的更新策略使策略达到最优解。Policy Iteration算法的主要步骤分为2步,先是执行Policy Evaluation(策略评估),然后执行Policy Improve(策略改进),然后通过循环以上两个步骤得出最优解。整个过程中涉及到的概念有:
代理(agent)
即受控制的物件,在本例子中是红色方块。
状态(state)
即应用场景的当前状态,在这个问题中指的是红色方块的当前位置坐标,如上图的状态为(0,0)。
策略(policy)
当前状态选择了某种action即是一种策略。此处代码中self.policy_table记录了所有状态下的策略。
动作(action)
从字面意思就知道是一个操作,在此处可以是上下左右移动。本例子的action设置:
POSSIBLE_ACTIONS = [0, 1, 2, 3] # up, down, left, right
ACTIONS = [(-1, 0), (