马尔可夫决策-悬崖寻路python实现
案例分析
本节考虑Gym库中的悬崖寻路问题(CliffWalking-v0)。悬崖寻路问题是这样一种回合制问题:在一个4×12的网格中,智能体最开始在左下角的网格,希望移动到右下角的网格。智能体每次可以在上、下、左、右这4个方向中移动一步,每移动一步会惩罚一个单位的奖励。但是,移动有以下限制。
·智能体不能移出网格。如果智能体想执行某个动作移出网格,那么就让本步智能体不移动。但是这个操作依然会惩罚一个单位的奖励。
·如果智能体将要到达最下一排网格(即开始网格和目标网格之间的10个网格),智能体会立即回到开始网格,并惩罚100个单位的奖励。这10个网格可被视为“悬崖”。
当智能体移动到终点时,回合结束,回合总奖励为各步奖励之。
要点概括
·在完全可观测的离散时间智能体/环境接口中引入概率和Markov性,可以得到Markov决策过程。
·在Markov决策过程中, S \mathcal{S} S是状态空间(包括终止状态 s 终 止 s_{终止} s终止的状态空间为 S + \mathcal{S}^+ S+), A \mathcal{A} A是动作空间, R \mathcal{R} R是奖励空间,p是动力。 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s′,r∣s,a)表示从状态s和动作a到状态s’和奖励r的转移概率。π是策略。π(a|s)表示在状态s决定执行动作a的概率。
·回报是未来奖励的和,奖励按折扣因子γ进行折扣。
·对于一个策略π,在某个状态s下的期望回报称为状态价值 v π ( s ) v_π(s) vπ(s),在某个状态动作对(s,a)下的期望回报称为动作价值 q π ( s , a ) q_π(s,a) q