https://github.com/a1024053774/RL_Boot/blob/master/Hands-on_Learning_RL/Chapter04/Dynamic_Programming.ipynb

4.1 简介

动态规划(dynamic programming)能够高效解决一些经典问题,例如背包问题和最短路径规划。

基于动态规划的强化学习算法主要有两种:

<aside> 💡

基于动态规划的这两种强化学习算法要求事先知道环境的状态转移函数和奖励函数,也就是需要知道整个马尔可夫决策过程。

4.2 悬崖漫步环境

有一个 4×12 的网格世界,每一个网格表示一个状态。

智能体的起点是左下角的状态,目标是右下角的状态,

智能体在每一个状态都可以采取 4 种动作:上、下、左、右。

如果智能体采取动作后触碰到边界墙壁则状态不发生改变,否则就会相应到达下一个状态。

环境中有一段悬崖,智能体掉入悬崖或到达目标状态都会结束动作并回到起点,也就是说掉入悬崖或者达到目标状态是终止状态。

智能体每走一步的奖励是 −1,掉入悬崖的奖励是 −100。

4.3 策略迭代算法

策略迭代是策略评估和策略提升不断循环交替,直至最后得到最优策略的过程。

4.3.1 策略评估

策略评估这一过程用来计算一个策略的状态价值函数。