强化学习学习总结(二)——QLearning算法更新
一、QLearning算法思维
二、QLearning算法更新思维
1.导入模块
from maze_env import Maze #环境模块
from RL_brain import QLearningTable #思考模块
2.更新迭代
def update():
#---------------------------------------------------------------------------------
#Reapeat(episode):学习100次
for episode in range(100):
#----------------------------------------------------------------------------------
# 初始化 state 的观测值;并开始内循环
observation = env.reset()
while True:
# 更新可视化环境
env.render()
#----------------------------------------------------------------------------------
# 1°Action
action = RL.choose_action(str(observation))
# 2°获得反馈S'(下一步观测值)和R(当前步奖励)和done (是否是掉下地狱或者升上天堂)
observation_, reward, done = env.step(action)
# 3°更新Q表:RL 从这个序列 (state, action, reward, state_) 中学习
RL.learn(str(observation), action, reward, str(observation_))
# 4°S'→state的观测值
observation = observation_
#------------------------------------------------------------------------------------
# 如果掉下地狱或者升上天堂, 这回合就结束了
if done:
break
# 结束游戏并关闭窗口
print('game over')
env.destroy()
if __name__ == "__main__":
# 定义环境 env 和 RL 方式
env = Maze()
RL = QLearningTable(actions=list(range(env.n_actions)))
# 开始可视化环境 env
env.after(100, update)
env.mainloop()