关于q-learning算法,可参照以下博客,我只是复现作者的算法,如有错误,请私信改正。
A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)_peghoty-CSDN博客
import numpy as np
import pandas as pd
class QL:
def __init__(self, actions, gamma=0.8, e_greedy=0.9):
self.actions = actions
self.gamma = gamma
self.e_greedy = e_greedy
self.q_table = pd.DataFrame(columns=actions, dtype=np.float64) #行为状态,列是动作,这里简化了,同时也是下一个状态
def choose_action(self, state):
self.check_state(state)
if(np.random.uniform(0, 1)<self.e_greedy):
action_list = self.q_table.loc[state, :] # 取出当前state的行
action = action_list[action_list == action_list.max()].index #找最大值的动作,可能有多个,比如刚开始都是0.

本文介绍了如何使用Python实现Q-learning算法,通过复现A Painless Q-learning Tutorial的内容,详细探讨了该算法的实现过程。文章旨在帮助读者理解并掌握Q-learning在机器学习中的应用。
最低0.47元/天 解锁文章


被折叠的 条评论
为什么被折叠?



