1.Q-learning:
Q-learning算法的主要步骤如下:
-
初始化Q值表格(Q-table):创建一个二维数组,其中行表示状态,列表示动作,初始值可以为零或者随机值。
-
选择动作(Action Selection):根据当前状态(State),使用某种策略来选择动作(Action)。常见的策略有 ε-greedy 策略,即以 ε 的概率随机选择动作,以 1-ε 的概率选择具有最大Q值的动作。
-
执行动作(Action Execution):根据选择的动作,让智能体执行该动作,从当前状态转移到下一个状态,并获取环境的反馈,包括奖励(Reward)和下一个状态(Next State)。
-
更新Q值(Update Q-values):根据当前状态、执行的动作、获得的奖励以及下一个状态,使用Q-learning更新公式更新Q值表格中对应的Q值:
-
迭代训练(Iterative Training):重复执行上述步骤,直到达到预设的停止条件,比如达到最大迭代次数、Q值收敛、或者达到一定的性能要求。
-
策略提取(Policy Extraction):在训练完成后,基于学习到的Q值表格,可以通过选择具有最大Q值的动作作为最优策略,用于在实际应用中做出动作选择。
-
测试和评估(Testing and Evaluation):使用学习到的最优策略对环境进行测试和评估,评估其在真实环境中的性能。
Q-learning算法的核心思想是通过不断地尝试和反馈来学习最优策略,使得智能体在环境中能够获得最大的长期奖励。
2.Sarsa
SARSA(State-Action-Reward-State-Action)算法是一种基于状态-动作对的强化学习算法,它与Q-learning类似,但在更新Q值时采用了更加贴近实际的策略。具体步骤如下:
-
初始化Q值表格(Q-table):
创建一个二维数组,其中行表示状态,列表示动作,初始值可以为零或者随机值。 -
选择动作(Action Selection):
根据当前状态(State),使用某种策略来选择动作(Action)。常见的策略有 ε-greedy 策略,即以 ε 的概率随机选择动作,以 1-ε 的概率选择具有最大Q值的动作。 -
执行动作(Action Execution):
根据选择的动作,让智能体执行该动作,从当前状态转移到下一个状态,并获取环境的反馈,包括奖励(Reward)和下一个状态(Next State)。 -
选择下一个动作(Select Next Action):
在下一个状态,根据当前策略再次选择动作。这里需要注意,与Q-learning不同的是,SARSA算法会根据当前策略在下一个状态选择动作,而不是直接选