![v2-682ca927e1877e3ad2fcd5290272a59b_1440w.jpg?source=172ae18b](http://img-03.proxy.5ce.com/view/image?&type=2&guid=5a52ee22-bd2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-682ca927e1877e3ad2fcd5290272a59b_1440w.jpg?source=172ae18b)
![v2-60a81d0cc3832cf9f313404cc9010d5e_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=5a52ee22-bd2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-60a81d0cc3832cf9f313404cc9010d5e_b.jpg)
首先回顾一下Q-learning的算法:
初始化Q表,
进入大循环(遍历每一个episode):
随机选择一个初始化的s
进入小循环(遍历一个eposide的每一个状态s):
使用我们事先规定的策略选择一个a,
之后执行a,并且从环境得到即时奖励r,并且进入下一步状态
使用我们的更新公式对q表进行更新update = self.lr * (q_target - q_predict)
更新q表以后,我们将下一步状态s转换为当前的状态s
直到我们的q表收敛,大循环和小循环都结束了。
![v2-94ffcb2c51c88d3a7b38ab5a72e21cdb_b.png](http://img-03.proxy.5ce.com/view/image?&type=2&guid=5a52ee22-bd2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-94ffcb2c51c88d3a7b38ab5a72e21cdb_b.png)
我们看一下代码的目录结构:
maze_env.py:其中是对于强化学习运行环境的书写&#