2026b

# rlSARSAAgent


强化学习 SARSA 智能体

函数库: TyReinforcementLearning

# 语法

agent = rlSARSAAgent(models, agentOptions)
agent = rlSARSAAgent(critic, agentOptions)

# 说明

agent = rlSARSAAgent(models, agentOptions)使用指定智能体模型来创建一个 SARSA 智能体,并通过 agentOptions 设置智能体属性。


agent = rlSARSAAgent(critic, agentOptions)使用指定评价者来创建一个 SARSA 智能体,并通过 agentOptions 设置智能体属性。

SARSA(State-Action-Reward-State-Action) 是一种无模型、在线、基于价值的强化学习算法,它基于环境状态、动作、奖励以及下一个环境状态和动作的组合来进行策略的更新和优化。

SARSA 算法的核心目标是通过与环境的交互学习到最优策略,使智能体能够在给定状态下选择使长期累积奖励最大化的动作。具体而言,SARSA 算法使用 Q 值函数来估计每对环境状态-动作的价值。在训练的每个时间步中,SARSA 根据环境状态和动作计算当前 Q 值,并使用下一个环境状态和动作来更新 Q 值。

SARSA 是一种重要且常用的强化学习算法,适用于许多问题领域。通过不断迭代和更新 Q 值函数,SARSA 算法可以帮助智能体学会如何在给定环境中做出最优决策。

# 示例

使用指定智能体模型创建 SARSA 智能体

创建环境接口。对于此示例,使用“CliffWalking-v0”环境,包含 48 个状态和 4 个可选动作。

using TyReinforcementLearning
env = BuildEnv("CliffWalking-v0");

由于状态空间和动作空间均为离散且低维,因此使用表格来模拟 Q 值函数。

创建基于环境状态个数与动作个数的 Q 表格,并基于 Q 表格搭建智能体模型。

models = rlSARSAModels(
    Qtable=zeros(StateDims(env), ActionDims(env))
);

创建智能体选项。

option = rlSARSAAgentOptions(
    stateNum=StateDims(env),
    actionNum=ActionDims(env)
);

使用智能体模型与智能体选项创建智能体。

agent = rlSARSAAgent(models,option)
rlSARSAAgent([0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0; … ; 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0], 0.05, 0.9, 48, 4, 0.1, 0.001, 0.01, 1000, TyReinforcementLearning.original_rewards, rlTrainResult(Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], -Inf, nothing), 0, 0)
使用指定评价者创建 SARSA 智能体

创建环境接口。对于此示例,使用“CliffWalking-v0”环境,包含 48 个状态和 4 个可选动作。

using TyReinforcementLearning
env = BuildEnv("CliffWalking-v0");

由于状态空间和动作空间均为离散且低维,因此使用表格来模拟 Q 值函数。

创建基于环境状态个数与动作个数的 Q 表格,并基于 Q 表格创建评价者。

critic = rlVectorQValueFunction(
  table=zeros(StateDims(env), 
  ActionDims(env)), 
  optimizer=0.05
);

创建智能体选项。

option = rlSARSAAgentOptions(
    stateNum=StateDims(env),
    actionNum=ActionDims(env)
);

使用评价者与智能体选项创建智能体。

agent = rlSARSAAgent(critic,option)
rlSARSAAgent([0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0; … ; 0.0 0.0 0.0 0.0; 0.0 0.0 0.0 0.0], 0.05, 0.9, 48, 4, 0.1, 0.001, 0.01, 1000, TyReinforcementLearning.original_rewards, rlTrainResult(Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], Float64[], -Inf, nothing), 0, 0)

# 输入参数

models-智能体模型
结构体

智能体模型,指定为rlSARSAModels对象,用作 SARSA 智能体的策略。在本函数中包括了值函数与学习率,用于指导智能体对环境状态-动作对进行价值评估并选择输出动作。

critic-评价者
结构体

强化学习评价者 critic,指定为rlVectorQValueFunction对象。其值函数为二维表格,优化器为浮点数。

agentOptions-智能体选项
结构体

智能体选项,指定为rlSARSAAgentOptions对象。

# 输出参数

agent-智能体
结构体

输出一个可以训练的强化学习 SARSA 智能体。

# 另请参阅

rlSARSAModels | rlVectorQValueFunction | rlSARSAAgentOptions | BuildEnv | StateDims | ActionDims